xref: /third_party/mesa3d/src/c11/time.h (revision bf215546)
1/*
2 * Copyright 2022 Yonggang Luo
3 * SPDX-License-Identifier: MIT
4 *
5 * C11 <time.h> emulation library
6 */
7
8#ifndef C11_TIME_H_INCLUDED_
9#define C11_TIME_H_INCLUDED_
10
11#include <time.h>
12
13/*---------------------------- macros ---------------------------*/
14
15#ifndef TIME_UTC
16#define TIME_UTC 1
17#endif
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23/*---------------------------- types ----------------------------*/
24
25/*
26 * On MINGW `struct timespec` present but `timespec_get` may not present;
27 * On MSVC `struct timespec` and `timespec_get` present at the same time;
28 * So detecting `HAVE_STRUCT_TIMESPEC` in meson script dynamically.
29 */
30#ifndef HAVE_STRUCT_TIMESPEC
31struct timespec
32{
33    time_t tv_sec;  // Seconds - >= 0
34    long   tv_nsec; // Nanoseconds - [0, 999999999]
35};
36#endif
37
38/*-------------------------- functions --------------------------*/
39
40#ifndef HAVE_TIMESPEC_GET
41/*-------------------- 7.25.7 Time functions --------------------*/
42// 7.25.6.1
43int
44timespec_get(struct timespec *ts, int base);
45#endif
46
47#ifdef __cplusplus
48}
49#endif
50
51#endif /* C11_TIME_H_INCLUDED_ */
52