X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1fe5f5eb5378a47bf0f3451762743c162e40faad..6942ebae59c3904674dce6b67cd07c43a3bbe00d:/lunaix-os/kernel/time/clock.c?ds=sidebyside diff --git a/lunaix-os/kernel/time/clock.c b/lunaix-os/kernel/time/clock.c index 726e333..a5b9dd8 100644 --- a/lunaix-os/kernel/time/clock.c +++ b/lunaix-os/kernel/time/clock.c @@ -1,6 +1,5 @@ -#include -#include #include +#include #include #include @@ -20,12 +19,8 @@ __clock_read_datetime(struct twimap* map) clock_walltime(&dt); twimap_printf(map, "%.4d-%.2d-%.2d %.2d:%.2d:%.2d", - dt.year, - dt.month, - dt.day, - dt.hour, - dt.minute, - dt.second); + dt.year, dt.month, dt.day, + dt.hour, dt.minute, dt.second); } void @@ -51,12 +46,6 @@ clock_build_mapping() } EXPORT_TWIFS_PLUGIN(sys_clock, clock_build_mapping); -void -clock_init() -{ - hwrtc_init(); -} - time_t clock_unixtime() { @@ -68,12 +57,22 @@ clock_unixtime() time_t clock_systime() { + if (!systimer) { + return 0; + } + ticks_t t = hwtimer_current_systicks(); - return t / hwtimer_base_frequency(); + ticks_t tu = systimer->running_freq / 1000; + + if (unlikely(!tu)) { + return t; + } + + return t / (tu); } void clock_walltime(datetime_t* datetime) { - current_rtc->get_walltime(current_rtc, datetime); + sysrtc->ops->get_walltime(sysrtc, datetime); } \ No newline at end of file