mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
kernel: initial timer abstraction
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
#ifndef _TIMER_H
|
||||
#define _TIMER_H
|
||||
|
||||
#include <time.h>
|
||||
#include <arch/context.h>
|
||||
|
||||
typedef struct timerentry_t {
|
||||
struct timerentry_t *next;
|
||||
time_t absolutetick;
|
||||
void *private;
|
||||
void (*func)(void *private, context_t* context);
|
||||
} timerentry_t;
|
||||
|
||||
typedef struct {
|
||||
time_t ticksperus;
|
||||
time_t tickcurrent;
|
||||
void (*arm)(time_t);
|
||||
time_t (*stop)();
|
||||
timerentry_t *queue;
|
||||
} timer_t;
|
||||
|
||||
void timer_isr(timer_t *timer, context_t *context);
|
||||
void timer_insert(timer_t *timer, timerentry_t *entry, time_t us);
|
||||
timer_t *timer_new(time_t ticksperus, void (*arm)(time_t), time_t (*stop)());
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user