summaryrefslogtreecommitdiff
path: root/libddekit/ddekit/timer.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2012-02-25 17:41:26 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2012-02-25 17:41:26 +0100
commit89f8067dd732fe402c3c5f8380bb5649fe02d1a4 (patch)
tree26c49685853b85c409d96ab6b547e6eee7b6e5e5 /libddekit/ddekit/timer.h
parent816140d6c6cd5f369dc8d92031128279d0c44fd2 (diff)
parent29af9988d7213fcccf11011159261b94af4f1bee (diff)
Merge branch 'master' of git.debian.org:/git/pkg-hurd/hurd
Conflicts: debian/changelog
Diffstat (limited to 'libddekit/ddekit/timer.h')
-rw-r--r--libddekit/ddekit/timer.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/libddekit/ddekit/timer.h b/libddekit/ddekit/timer.h
new file mode 100644
index 00000000..387f2078
--- /dev/null
+++ b/libddekit/ddekit/timer.h
@@ -0,0 +1,59 @@
+#ifndef _ddekit_timer_h
+#define _ddekit_timer_h
+
+#include "ddekit/thread.h"
+
+#define jiffies (fetch_jiffies())
+#define HZ 100
+
+enum
+{
+ DDEKIT_INVALID_TIMER_ID = -1,
+};
+
+/** \defgroup DDEKit_timer
+ *
+ * Timer subsystem
+ *
+ * DDEKit provides a generic timer implementation that enables users
+ * to execute a function with some arguments after a certain period
+ * of time. DDEKit therefore starts a timer thread that executes these
+ * functions and keeps track of the currently running timers.
+ */
+
+/** Add a timer event. After the absolute timeout has expired, function fn
+ * is called with args as arguments.
+ *
+ * \ingroup DDEKit_timer
+ *
+ * \return >=0 valid timer ID
+ * \return < 0 error
+ */
+int ddekit_add_timer(void (*fn)(void *), void *args, unsigned long timeout);
+
+/** Delete timer with the corresponding timer id.
+ *
+ * \ingroup DDEKit_timer
+ */
+int ddekit_del_timer(int timer);
+
+/** Check whether a timer is pending
+ *
+ * \ingroup DDEKit_timer
+ *
+ * Linux needs this.
+ */
+int ddekit_timer_pending(int timer);
+
+/** Initialization function, startup timer thread
+ *
+ * \ingroup DDEKit_timer
+ */
+void ddekit_init_timers(void);
+
+/** Get the timer thread.
+ */
+ddekit_thread_t *ddekit_get_timer_thread(void);
+extern unsigned long fetch_jiffies (void);
+
+#endif