| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #ifdef ZIVUOS_PLATFORM_LINUX
- #include <stdint.h>
- #include <stddef.h>
- #include <stdbool.h>
- #include <math.h>
- #include <time.h>
- #include "zivuos/zv_types.h"
- #include "zivuos/zv_time.h"
- void zv_platform_init(void) {
-
- }
- zv_time_t zv_platform_get_time(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
|