#ifdef ZIVUOS_PLATFORM_LINUX #include #include #include #include #include #include "zivuos/zv_types.h" #include "zivuos/zv_time.h" void zv_platform_init(void) { } zv_time_t __zv_platform_get_time_ms(void) { struct timespec current_time; clock_gettime(CLOCK_REALTIME, ¤t_time); time_t seconds = current_time.tv_sec; long nanoseconds = current_time.tv_nsec; long miliseconds = round(nanoseconds / 1000000); if (miliseconds > 999) { miliseconds = 0; ++seconds; } zv_time_t result = seconds * 1000; result += miliseconds; return result; } zv_ticks_t zv_platform_get_ticks(void) { struct timespec current_time; clock_gettime(CLOCK_REALTIME, ¤t_time); return current_time.tv_nsec; } zv_ticks_t __zv_platform_get_time_us(void) { return zv_platform_get_ticks() / 1000; } #endif