kernel: initial timer abstraction

This commit is contained in:
Matheus
2023-04-23 16:48:58 -03:00
parent db487fdcd3
commit d18e0e332f
2 changed files with 99 additions and 0 deletions
+26
View File
@@ -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