summaryrefslogtreecommitdiff
path: root/include/alarm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/alarm.h')
-rw-r--r--include/alarm.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/alarm.h b/include/alarm.h
new file mode 100644
index 0000000..38aaa01
--- /dev/null
+++ b/include/alarm.h
@@ -0,0 +1,33 @@
+#ifndef _ALARM_H_
+#define _ALARM_H_
+
+#include "linux_rbtree.h"
+#include "linux_list.h"
+
+#include <sys/time.h>
+
+struct alarm_block {
+ struct rb_node node;
+ struct list_head list;
+ struct timeval tv;
+ void *data;
+ void (*function)(struct alarm_block *a, void *data);
+};
+
+void init_alarm(struct alarm_block *t,
+ void *data,
+ void (*fcn)(struct alarm_block *a, void *data));
+
+void add_alarm(struct alarm_block *alarm, unsigned long sc, unsigned long usc);
+
+void del_alarm(struct alarm_block *alarm);
+
+int alarm_pending(struct alarm_block *alarm);
+
+struct timeval *
+get_next_alarm_run(struct timeval *next_alarm);
+
+struct timeval *
+do_alarm_run(struct timeval *next_alarm);
+
+#endif