X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/99f2ed669601a61f4f0210e0b481ff877cd9bea7..35a7d633d3f16c1e0539af6ca5d8e7482926cd93:/lunaix-os/kernel/time/timer.c?ds=sidebyside diff --git a/lunaix-os/kernel/time/timer.c b/lunaix-os/kernel/time/timer.c index b9d98af..12c8e7f 100644 --- a/lunaix-os/kernel/time/timer.c +++ b/lunaix-os/kernel/time/timer.c @@ -25,7 +25,7 @@ LOG_MODULE("TIMER"); static void timer_update(); -static volatile struct lx_timer_context* timer_ctx = NULL; +static DEFINE_LLIST(timers); static volatile u32_t sched_ticks = 0; static volatile u32_t sched_ticks_counter = 0; @@ -36,13 +36,6 @@ void timer_init_context() { timer_pile = cake_new_pile("timer", sizeof(struct lx_timer), 1, 0); - timer_ctx = - (struct lx_timer_context*)valloc(sizeof(struct lx_timer_context)); - - assert_msg(timer_ctx, "Fail to initialize timer contex"); - - timer_ctx->active_timers = (struct lx_timer*)cake_grab(timer_pile); - llist_init_head(&timer_ctx->active_timers->link); } void @@ -52,8 +45,6 @@ timer_init() hwtimer_init(SYS_TIMER_FREQUENCY_HZ, timer_update); - timer_ctx->base_frequency = hwtimer_base_frequency(); - sched_ticks = (SYS_TIMER_FREQUENCY_HZ * SCHED_TIME_SLICE) / 1000; sched_ticks_counter = 0; } @@ -92,7 +83,7 @@ timer_run(ticks_t ticks, void (*callback)(void*), void* payload, u8_t flags) timer->payload = payload; timer->flags = flags; - llist_append(&timer_ctx->active_timers->link, &timer->link); + llist_append(&timers, &timer->link); return timer; } @@ -101,9 +92,8 @@ static void timer_update() { struct lx_timer *pos, *n; - struct lx_timer* timer_list_head = timer_ctx->active_timers; - llist_for_each(pos, n, &timer_list_head->link, link) + llist_for_each(pos, n, &timers, link) { if (--(pos->counter)) { continue; @@ -127,9 +117,3 @@ timer_update() schedule(); } } - -struct lx_timer_context* -timer_context() -{ - return (struct lx_timer_context*)timer_ctx; -} \ No newline at end of file