Coverage Report

Created: 2023-09-23 17:42

/libfido2/openbsd-compat/time.h
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Public domain
3
 * sys/time.h compatibility shim
4
 */
5
6
#if defined(_MSC_VER) && (_MSC_VER >= 1900)
7
#include <../ucrt/time.h>
8
#elif defined(_MSC_VER) && (_MSC_VER < 1900)
9
#include <../include/time.h>
10
#else
11
#include <time.h>
12
#endif
13
14
#ifndef _COMPAT_TIME_H
15
#define _COMPAT_TIME_H
16
17
#ifndef CLOCK_MONOTONIC
18
#define CLOCK_MONOTONIC CLOCK_REALTIME
19
#endif
20
21
#ifndef CLOCK_REALTIME
22
#define CLOCK_REALTIME 0
23
#endif
24
25
#ifndef HAVE_CLOCK_GETTIME
26
typedef int clockid_t;
27
int clock_gettime(clockid_t, struct timespec *);
28
#endif
29
30
#ifdef HAVE_TIMESPECSUB
31
#include <sys/time.h>
32
#endif
33
34
#ifndef HAVE_TIMESPECSUB
35
#define timespecadd(tsp, usp, vsp)                                      \
36
        do {                                                            \
37
                (vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec;          \
38
                (vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec;       \
39
                if ((vsp)->tv_nsec >= 1000000000L) {                    \
40
                        (vsp)->tv_sec++;                                \
41
                        (vsp)->tv_nsec -= 1000000000L;                  \
42
                }                                                       \
43
        } while (0)
44
45
#define timespecsub(tsp, usp, vsp)                                      \
46
364k
        do {                                                               \
47
364k
                (vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec;          \
48
364k
                (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec;       \
49
364k
                if ((vsp)->tv_nsec < 0) {                               \
50
0
                        (vsp)->tv_sec--;                                \
51
0
                        (vsp)->tv_nsec += 1000000000L;                  \
52
0
                }                                                        \
53
364k
        } while (0)
54
55
#define timespeccmp(tsp, usp, cmp)                                      \
56
365k
        (((tsp)->tv_sec == (usp)->tv_sec) ?                              \
57
365k
            ((tsp)->tv_nsec cmp (usp)->tv_nsec) :                      \
58
365k
            ((tsp)->tv_sec cmp (usp)->tv_sec))
59
#endif
60
61
#endif /* _COMPAT_TIME_H */