summaryrefslogtreecommitdiff
path: root/code/ecp/posix/time.c
blob: c7a238a40e64210f4b5b280c826fa4f36ded96c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <unistd.h>
#include <sys/time.h>

#include <core.h>

static ecp_cts_t t_abstime_ms(ecp_cts_t msec) {
    struct timeval tv;
    ecp_cts_t ms_now;
    
    gettimeofday(&tv, NULL);
    ms_now = tv.tv_sec * 1000 + tv.tv_usec / 1000;
    return ms_now + msec;
}

static void t_sleep_ms(ecp_cts_t msec) {
    usleep(msec*1000);
}

int ecp_time_init(ECPTimeIface *t) {
    t->init = 1;
    t->abstime_ms = t_abstime_ms;
    t->sleep_ms = t_sleep_ms;
    return 0;
}