1*cda5da8dSAndroid Build Coastguard Worker #ifndef _TIME_H 2*cda5da8dSAndroid Build Coastguard Worker #define _TIME_H 3*cda5da8dSAndroid Build Coastguard Worker 4*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus 5*cda5da8dSAndroid Build Coastguard Worker extern "C" { 6*cda5da8dSAndroid Build Coastguard Worker #endif 7*cda5da8dSAndroid Build Coastguard Worker 8*cda5da8dSAndroid Build Coastguard Worker #include <features.h> 9*cda5da8dSAndroid Build Coastguard Worker 10*cda5da8dSAndroid Build Coastguard Worker #if __cplusplus >= 201103L 11*cda5da8dSAndroid Build Coastguard Worker #define NULL nullptr 12*cda5da8dSAndroid Build Coastguard Worker #elif defined(__cplusplus) 13*cda5da8dSAndroid Build Coastguard Worker #define NULL 0L 14*cda5da8dSAndroid Build Coastguard Worker #else 15*cda5da8dSAndroid Build Coastguard Worker #define NULL ((void*)0) 16*cda5da8dSAndroid Build Coastguard Worker #endif 17*cda5da8dSAndroid Build Coastguard Worker 18*cda5da8dSAndroid Build Coastguard Worker 19*cda5da8dSAndroid Build Coastguard Worker #define __NEED_size_t 20*cda5da8dSAndroid Build Coastguard Worker #define __NEED_time_t 21*cda5da8dSAndroid Build Coastguard Worker #define __NEED_clock_t 22*cda5da8dSAndroid Build Coastguard Worker #define __NEED_struct_timespec 23*cda5da8dSAndroid Build Coastguard Worker 24*cda5da8dSAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 25*cda5da8dSAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 26*cda5da8dSAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 27*cda5da8dSAndroid Build Coastguard Worker #define __NEED_clockid_t 28*cda5da8dSAndroid Build Coastguard Worker #define __NEED_timer_t 29*cda5da8dSAndroid Build Coastguard Worker #define __NEED_pid_t 30*cda5da8dSAndroid Build Coastguard Worker #define __NEED_locale_t 31*cda5da8dSAndroid Build Coastguard Worker #endif 32*cda5da8dSAndroid Build Coastguard Worker 33*cda5da8dSAndroid Build Coastguard Worker #include <bits/alltypes.h> 34*cda5da8dSAndroid Build Coastguard Worker 35*cda5da8dSAndroid Build Coastguard Worker #if defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 36*cda5da8dSAndroid Build Coastguard Worker #define __tm_gmtoff tm_gmtoff 37*cda5da8dSAndroid Build Coastguard Worker #define __tm_zone tm_zone 38*cda5da8dSAndroid Build Coastguard Worker #endif 39*cda5da8dSAndroid Build Coastguard Worker 40*cda5da8dSAndroid Build Coastguard Worker struct tm { 41*cda5da8dSAndroid Build Coastguard Worker int tm_sec; 42*cda5da8dSAndroid Build Coastguard Worker int tm_min; 43*cda5da8dSAndroid Build Coastguard Worker int tm_hour; 44*cda5da8dSAndroid Build Coastguard Worker int tm_mday; 45*cda5da8dSAndroid Build Coastguard Worker int tm_mon; 46*cda5da8dSAndroid Build Coastguard Worker int tm_year; 47*cda5da8dSAndroid Build Coastguard Worker int tm_wday; 48*cda5da8dSAndroid Build Coastguard Worker int tm_yday; 49*cda5da8dSAndroid Build Coastguard Worker int tm_isdst; 50*cda5da8dSAndroid Build Coastguard Worker long __tm_gmtoff; 51*cda5da8dSAndroid Build Coastguard Worker const char *__tm_zone; 52*cda5da8dSAndroid Build Coastguard Worker }; 53*cda5da8dSAndroid Build Coastguard Worker 54*cda5da8dSAndroid Build Coastguard Worker clock_t clock (void); 55*cda5da8dSAndroid Build Coastguard Worker time_t time (time_t *); 56*cda5da8dSAndroid Build Coastguard Worker double difftime (time_t, time_t); 57*cda5da8dSAndroid Build Coastguard Worker time_t mktime (struct tm *); 58*cda5da8dSAndroid Build Coastguard Worker size_t strftime (char *__restrict, size_t, const char *__restrict, const struct tm *__restrict); 59*cda5da8dSAndroid Build Coastguard Worker struct tm *gmtime (const time_t *); 60*cda5da8dSAndroid Build Coastguard Worker struct tm *localtime (const time_t *); 61*cda5da8dSAndroid Build Coastguard Worker char *asctime (const struct tm *); 62*cda5da8dSAndroid Build Coastguard Worker char *ctime (const time_t *); 63*cda5da8dSAndroid Build Coastguard Worker int timespec_get(struct timespec *, int); 64*cda5da8dSAndroid Build Coastguard Worker 65*cda5da8dSAndroid Build Coastguard Worker #define CLOCKS_PER_SEC 1000000L 66*cda5da8dSAndroid Build Coastguard Worker 67*cda5da8dSAndroid Build Coastguard Worker #define TIME_UTC 1 68*cda5da8dSAndroid Build Coastguard Worker 69*cda5da8dSAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 70*cda5da8dSAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 71*cda5da8dSAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 72*cda5da8dSAndroid Build Coastguard Worker 73*cda5da8dSAndroid Build Coastguard Worker size_t strftime_l (char * __restrict, size_t, const char * __restrict, const struct tm * __restrict, locale_t); 74*cda5da8dSAndroid Build Coastguard Worker 75*cda5da8dSAndroid Build Coastguard Worker struct tm *gmtime_r (const time_t *__restrict, struct tm *__restrict); 76*cda5da8dSAndroid Build Coastguard Worker struct tm *localtime_r (const time_t *__restrict, struct tm *__restrict); 77*cda5da8dSAndroid Build Coastguard Worker char *asctime_r (const struct tm *__restrict, char *__restrict); 78*cda5da8dSAndroid Build Coastguard Worker char *ctime_r (const time_t *, char *); 79*cda5da8dSAndroid Build Coastguard Worker 80*cda5da8dSAndroid Build Coastguard Worker void tzset (void); 81*cda5da8dSAndroid Build Coastguard Worker 82*cda5da8dSAndroid Build Coastguard Worker struct itimerspec { 83*cda5da8dSAndroid Build Coastguard Worker struct timespec it_interval; 84*cda5da8dSAndroid Build Coastguard Worker struct timespec it_value; 85*cda5da8dSAndroid Build Coastguard Worker }; 86*cda5da8dSAndroid Build Coastguard Worker 87*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_REALTIME 0 88*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_MONOTONIC 1 89*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_PROCESS_CPUTIME_ID 2 90*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_THREAD_CPUTIME_ID 3 91*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_MONOTONIC_RAW 4 92*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_REALTIME_COARSE 5 93*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_MONOTONIC_COARSE 6 94*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_BOOTTIME 7 95*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_REALTIME_ALARM 8 96*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_BOOTTIME_ALARM 9 97*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_SGI_CYCLE 10 98*cda5da8dSAndroid Build Coastguard Worker #define CLOCK_TAI 11 99*cda5da8dSAndroid Build Coastguard Worker 100*cda5da8dSAndroid Build Coastguard Worker #define TIMER_ABSTIME 1 101*cda5da8dSAndroid Build Coastguard Worker 102*cda5da8dSAndroid Build Coastguard Worker int nanosleep (const struct timespec *, struct timespec *); 103*cda5da8dSAndroid Build Coastguard Worker int clock_getres (clockid_t, struct timespec *); 104*cda5da8dSAndroid Build Coastguard Worker int clock_gettime (clockid_t, struct timespec *); 105*cda5da8dSAndroid Build Coastguard Worker int clock_settime (clockid_t, const struct timespec *); 106*cda5da8dSAndroid Build Coastguard Worker int clock_nanosleep (clockid_t, int, const struct timespec *, struct timespec *); 107*cda5da8dSAndroid Build Coastguard Worker int clock_getcpuclockid (pid_t, clockid_t *); 108*cda5da8dSAndroid Build Coastguard Worker 109*cda5da8dSAndroid Build Coastguard Worker struct sigevent; 110*cda5da8dSAndroid Build Coastguard Worker int timer_create (clockid_t, struct sigevent *__restrict, timer_t *__restrict); 111*cda5da8dSAndroid Build Coastguard Worker int timer_delete (timer_t); 112*cda5da8dSAndroid Build Coastguard Worker int timer_settime (timer_t, int, const struct itimerspec *__restrict, struct itimerspec *__restrict); 113*cda5da8dSAndroid Build Coastguard Worker int timer_gettime (timer_t, struct itimerspec *); 114*cda5da8dSAndroid Build Coastguard Worker int timer_getoverrun (timer_t); 115*cda5da8dSAndroid Build Coastguard Worker 116*cda5da8dSAndroid Build Coastguard Worker extern char *tzname[2]; 117*cda5da8dSAndroid Build Coastguard Worker 118*cda5da8dSAndroid Build Coastguard Worker #endif 119*cda5da8dSAndroid Build Coastguard Worker 120*cda5da8dSAndroid Build Coastguard Worker 121*cda5da8dSAndroid Build Coastguard Worker #if defined(_XOPEN_SOURCE) || defined(_BSD_SOURCE) || defined(_GNU_SOURCE) 122*cda5da8dSAndroid Build Coastguard Worker char *strptime (const char *__restrict, const char *__restrict, struct tm *__restrict); 123*cda5da8dSAndroid Build Coastguard Worker extern int daylight; 124*cda5da8dSAndroid Build Coastguard Worker extern long timezone; 125*cda5da8dSAndroid Build Coastguard Worker extern int getdate_err; 126*cda5da8dSAndroid Build Coastguard Worker struct tm *getdate (const char *); 127*cda5da8dSAndroid Build Coastguard Worker #endif 128*cda5da8dSAndroid Build Coastguard Worker 129*cda5da8dSAndroid Build Coastguard Worker 130*cda5da8dSAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 131*cda5da8dSAndroid Build Coastguard Worker int stime(const time_t *); 132*cda5da8dSAndroid Build Coastguard Worker time_t timegm(struct tm *); 133*cda5da8dSAndroid Build Coastguard Worker #endif 134*cda5da8dSAndroid Build Coastguard Worker 135*cda5da8dSAndroid Build Coastguard Worker #if _REDIR_TIME64 136*cda5da8dSAndroid Build Coastguard Worker __REDIR(time, __time64); 137*cda5da8dSAndroid Build Coastguard Worker __REDIR(difftime, __difftime64); 138*cda5da8dSAndroid Build Coastguard Worker __REDIR(mktime, __mktime64); 139*cda5da8dSAndroid Build Coastguard Worker __REDIR(gmtime, __gmtime64); 140*cda5da8dSAndroid Build Coastguard Worker __REDIR(localtime, __localtime64); 141*cda5da8dSAndroid Build Coastguard Worker __REDIR(ctime, __ctime64); 142*cda5da8dSAndroid Build Coastguard Worker __REDIR(timespec_get, __timespec_get_time64); 143*cda5da8dSAndroid Build Coastguard Worker #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 144*cda5da8dSAndroid Build Coastguard Worker || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 145*cda5da8dSAndroid Build Coastguard Worker || defined(_BSD_SOURCE) 146*cda5da8dSAndroid Build Coastguard Worker __REDIR(gmtime_r, __gmtime64_r); 147*cda5da8dSAndroid Build Coastguard Worker __REDIR(localtime_r, __localtime64_r); 148*cda5da8dSAndroid Build Coastguard Worker __REDIR(ctime_r, __ctime64_r); 149*cda5da8dSAndroid Build Coastguard Worker __REDIR(nanosleep, __nanosleep_time64); 150*cda5da8dSAndroid Build Coastguard Worker __REDIR(clock_getres, __clock_getres_time64); 151*cda5da8dSAndroid Build Coastguard Worker __REDIR(clock_gettime, __clock_gettime64); 152*cda5da8dSAndroid Build Coastguard Worker __REDIR(clock_settime, __clock_settime64); 153*cda5da8dSAndroid Build Coastguard Worker __REDIR(clock_nanosleep, __clock_nanosleep_time64); 154*cda5da8dSAndroid Build Coastguard Worker __REDIR(timer_settime, __timer_settime64); 155*cda5da8dSAndroid Build Coastguard Worker __REDIR(timer_gettime, __timer_gettime64); 156*cda5da8dSAndroid Build Coastguard Worker #endif 157*cda5da8dSAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 158*cda5da8dSAndroid Build Coastguard Worker __REDIR(stime, __stime64); 159*cda5da8dSAndroid Build Coastguard Worker __REDIR(timegm, __timegm_time64); 160*cda5da8dSAndroid Build Coastguard Worker #endif 161*cda5da8dSAndroid Build Coastguard Worker #endif 162*cda5da8dSAndroid Build Coastguard Worker 163*cda5da8dSAndroid Build Coastguard Worker #ifdef __cplusplus 164*cda5da8dSAndroid Build Coastguard Worker } 165*cda5da8dSAndroid Build Coastguard Worker #endif 166*cda5da8dSAndroid Build Coastguard Worker 167*cda5da8dSAndroid Build Coastguard Worker 168*cda5da8dSAndroid Build Coastguard Worker #endif 169