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