X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/f6ab9c9ababa2cf6e5c723b83ffb9362094054e8..8c06c883e7b13c115d5ff207f79d4b68fccd5ad6:/lunaix-os/hal/timer/hwtimer.c diff --git a/lunaix-os/hal/timer/hwtimer.c b/lunaix-os/hal/timer/hwtimer.c index 3a79ca1..91dca07 100644 --- a/lunaix-os/hal/timer/hwtimer.c +++ b/lunaix-os/hal/timer/hwtimer.c @@ -8,18 +8,21 @@ struct hwtimer* current_timer; ticks_t hwtimer_base_frequency() { + assert(current_timer); return current_timer->base_freq; } ticks_t hwtimer_current_systicks() { + assert(current_timer); return current_timer->systicks(); } ticks_t hwtimer_to_ticks(u32_t value, int unit) { + assert(current_timer); // in case system frequency is less than 1000Hz if (unit != TIME_MS) { return current_timer->running_freq * unit * value; @@ -55,7 +58,9 @@ hwtimer_init(u32_t hertz, void* tick_callback) current_timer = hwt_ctx; - struct device* timerdev = device_addsys(NULL, hwt_ctx, hwt_ctx->name); + struct device* timerdev = device_allocsys(NULL, hwt_ctx); timerdev->ops.exec_cmd = __hwtimer_ioctl; + + device_register(timerdev, &hwt_ctx->class, hwt_ctx->name); } \ No newline at end of file