| #ifndef SYSROOT_TIME_H_ |
| #define SYSROOT_TIME_H_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <features.h> |
| |
| #include <bits/null.h> |
| |
| #define __NEED_size_t |
| #define __NEED_time_t |
| #define __NEED_clock_t |
| #define __NEED_struct_timespec |
| |
| #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ |
| defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| #define __NEED_clockid_t |
| #define __NEED_timer_t |
| #define __NEED_pid_t |
| #endif |
| |
| #include <bits/alltypes.h> |
| |
| #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) |
| #define __tm_gmtoff tm_gmtoff |
| #define __tm_zone tm_zone |
| #endif |
| |
| struct tm { |
| int tm_sec; |
| int tm_min; |
| int tm_hour; |
| int tm_mday; |
| int tm_mon; |
| int tm_year; |
| int tm_wday; |
| int tm_yday; |
| int tm_isdst; |
| long __tm_gmtoff; |
| const char* __tm_zone; |
| }; |
| |
| clock_t clock(void); |
| time_t time(time_t*); |
| double difftime(time_t, time_t); |
| time_t mktime(struct tm*); |
| size_t strftime(char* __restrict, size_t, const char* __restrict, const struct tm* __restrict); |
| struct tm* gmtime(const time_t*); |
| struct tm* localtime(const time_t*); |
| char* asctime(const struct tm*); |
| char* ctime(const time_t*); |
| int timespec_get(struct timespec*, int); |
| |
| #define CLOCKS_PER_SEC 1000000L |
| |
| #define TIME_UTC 1 |
| |
| #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \ |
| defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| |
| struct tm* gmtime_r(const time_t* __restrict, struct tm* __restrict); |
| struct tm* localtime_r(const time_t* __restrict, struct tm* __restrict); |
| char* asctime_r(const struct tm* __restrict, char* __restrict); |
| char* ctime_r(const time_t*, char*); |
| |
| void tzset(void); |
| |
| struct itimerspec { |
| struct timespec it_interval; |
| struct timespec it_value; |
| }; |
| |
| #define CLOCK_REALTIME 0 |
| #define CLOCK_MONOTONIC 1 |
| #define CLOCK_PROCESS_CPUTIME_ID 2 |
| #define CLOCK_THREAD_CPUTIME_ID 3 |
| #define CLOCK_MONOTONIC_RAW 4 |
| #define CLOCK_REALTIME_COARSE 5 |
| #define CLOCK_MONOTONIC_COARSE 6 |
| #define CLOCK_BOOTTIME 7 |
| #define CLOCK_REALTIME_ALARM 8 |
| #define CLOCK_BOOTTIME_ALARM 9 |
| #define CLOCK_SGI_CYCLE 10 |
| #define CLOCK_TAI 11 |
| |
| #define TIMER_ABSTIME 1 |
| |
| int nanosleep(const struct timespec*, struct timespec*); |
| int clock_getres(clockid_t, struct timespec*); |
| int clock_gettime(clockid_t, struct timespec*); |
| int clock_settime(clockid_t, const struct timespec*); |
| int clock_nanosleep(clockid_t, int, const struct timespec*, struct timespec*); |
| int clock_getcpuclockid(pid_t, clockid_t*); |
| |
| struct sigevent; |
| int timer_create(clockid_t, struct sigevent* __restrict, timer_t* __restrict); |
| int timer_delete(timer_t); |
| int timer_settime(timer_t, int, const struct itimerspec* __restrict, struct itimerspec* __restrict); |
| int timer_gettime(timer_t, struct itimerspec*); |
| int timer_getoverrun(timer_t); |
| |
| #endif |
| |
| #if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE) |
| char* strptime(const char* __restrict, const char* __restrict, struct tm* __restrict); |
| extern int daylight; |
| extern long timezone; |
| extern char* tzname[2]; |
| extern int getdate_err; |
| struct tm* getdate(const char*); |
| #endif |
| |
| #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| int stime(const time_t*); |
| time_t timegm(struct tm*); |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif // SYSROOT_TIME_H_ |