2017-04-07 15:08:26 +00:00
|
|
|
#ifndef MM_TIMER_H_
|
|
|
|
#define MM_TIMER_H_
|
|
|
|
|
|
|
|
/*
|
|
|
|
* machinarium.
|
|
|
|
*
|
|
|
|
* cooperative multitasking engine.
|
|
|
|
*/
|
|
|
|
|
2017-04-10 12:11:06 +00:00
|
|
|
typedef struct mm_timer_t mm_timer_t;
|
2017-04-07 15:08:26 +00:00
|
|
|
|
2017-04-10 12:41:14 +00:00
|
|
|
typedef void (*mm_timer_callback_t)(mm_timer_t*);
|
2017-04-07 15:08:26 +00:00
|
|
|
|
|
|
|
struct mm_timer_t {
|
2017-04-10 12:41:14 +00:00
|
|
|
int active;
|
2017-04-07 15:36:11 +00:00
|
|
|
int timeout;
|
|
|
|
int seq;
|
2017-04-07 15:08:26 +00:00
|
|
|
mm_timer_callback_t callback;
|
|
|
|
void *arg;
|
|
|
|
};
|
|
|
|
|
2017-04-10 12:41:14 +00:00
|
|
|
static inline void
|
|
|
|
mm_timer_init(mm_timer_t *timer, mm_timer_callback_t cb, int interval)
|
|
|
|
{
|
|
|
|
timer->active = 0;
|
|
|
|
timer->timeout = interval;
|
|
|
|
timer->seq = 0;
|
|
|
|
timer->callback = cb;
|
|
|
|
timer->arg = NULL;
|
|
|
|
}
|
|
|
|
|
2017-04-07 15:08:26 +00:00
|
|
|
#endif
|