root / lab4 / .minix-src / include / ddekit / timer.h @ 14
History | View | Annotate | Download (1.14 KB)
1 | 13 | up20180614 | #ifndef _DDEKIT_TIMER_H
|
---|---|---|---|
2 | #define _DDEKIT_TIMER_H
|
||
3 | |||
4 | #include <ddekit/ddekit.h> |
||
5 | #include <ddekit/thread.h> |
||
6 | |||
7 | /** \defgroup DDEKit_timer
|
||
8 | *
|
||
9 | * Timer subsystem
|
||
10 | *
|
||
11 | * DDEKit provides a generic timer implementation that enables users
|
||
12 | * to execute a function with some arguments after a certain period
|
||
13 | * of time. DDEKit therefore starts a timer thread that executes these
|
||
14 | * functions and keeps track of the currently running timers.
|
||
15 | */
|
||
16 | |||
17 | /** Add a timer event. After the absolute timeout has expired, function fn
|
||
18 | * is called with args as arguments.
|
||
19 | *
|
||
20 | * \ingroup DDEKit_timer
|
||
21 | *
|
||
22 | * \return >=0 valid timer ID
|
||
23 | * \return < 0 error
|
||
24 | */
|
||
25 | int ddekit_add_timer(void (*fn)(void *), void *args, unsigned long |
||
26 | timeout); |
||
27 | |||
28 | /** Delete timer with the corresponding timer id.
|
||
29 | *
|
||
30 | * \ingroup DDEKit_timer
|
||
31 | */
|
||
32 | int ddekit_del_timer(int timer); |
||
33 | |||
34 | /** Check whether a timer is pending
|
||
35 | *
|
||
36 | * \ingroup DDEKit_timer
|
||
37 | *
|
||
38 | * Linux needs this.
|
||
39 | */
|
||
40 | int ddekit_timer_pending(int timer); |
||
41 | |||
42 | /** Initialization function, startup timer thread
|
||
43 | *
|
||
44 | * \ingroup DDEKit_timer
|
||
45 | */
|
||
46 | void ddekit_init_timers(void); |
||
47 | |||
48 | /** Get the timer thread.
|
||
49 | */
|
||
50 | ddekit_thread_t *ddekit_get_timer_thread(void);
|
||
51 | |||
52 | #endif |