xref: /plan9/sys/include/ape/time.h (revision 2d069fea74dfcc83c6858e715bf74862cb64720a)
13e12c5d1SDavid du Colombier #ifndef __TIME_H
23e12c5d1SDavid du Colombier #define __TIME_H
33e12c5d1SDavid du Colombier #pragma lib "/$M/lib/ape/libap.a"
43e12c5d1SDavid du Colombier 
53e12c5d1SDavid du Colombier #include <stddef.h>
63e12c5d1SDavid du Colombier 
73e12c5d1SDavid du Colombier #define CLOCKS_PER_SEC 1000
83e12c5d1SDavid du Colombier 
93e12c5d1SDavid du Colombier /* obsolsecent, but required */
103e12c5d1SDavid du Colombier #define CLK_TCK CLOCKS_PER_SEC
113e12c5d1SDavid du Colombier 
123e12c5d1SDavid du Colombier #ifndef _CLOCK_T
133e12c5d1SDavid du Colombier #define _CLOCK_T
143e12c5d1SDavid du Colombier typedef long clock_t;
153e12c5d1SDavid du Colombier #endif
163e12c5d1SDavid du Colombier #ifndef _TIME_T
173e12c5d1SDavid du Colombier #define _TIME_T
183e12c5d1SDavid du Colombier typedef long time_t;
193e12c5d1SDavid du Colombier #endif
203e12c5d1SDavid du Colombier 
213e12c5d1SDavid du Colombier struct tm {
223e12c5d1SDavid du Colombier 	int	tm_sec;
233e12c5d1SDavid du Colombier 	int	tm_min;
243e12c5d1SDavid du Colombier 	int	tm_hour;
253e12c5d1SDavid du Colombier 	int	tm_mday;
263e12c5d1SDavid du Colombier 	int	tm_mon;
273e12c5d1SDavid du Colombier 	int	tm_year;
283e12c5d1SDavid du Colombier 	int	tm_wday;
293e12c5d1SDavid du Colombier 	int	tm_yday;
303e12c5d1SDavid du Colombier 	int	tm_isdst;
313e12c5d1SDavid du Colombier };
323e12c5d1SDavid du Colombier 
333e12c5d1SDavid du Colombier #ifdef __cplusplus
343e12c5d1SDavid du Colombier extern "C" {
353e12c5d1SDavid du Colombier #endif
363e12c5d1SDavid du Colombier 
373e12c5d1SDavid du Colombier extern clock_t clock(void);
383e12c5d1SDavid du Colombier extern double difftime(time_t, time_t);
393e12c5d1SDavid du Colombier extern time_t mktime(struct tm *);
403e12c5d1SDavid du Colombier extern time_t time(time_t *);
413e12c5d1SDavid du Colombier extern char *asctime(const struct tm *);
423e12c5d1SDavid du Colombier extern char *ctime(const time_t *);
433e12c5d1SDavid du Colombier extern struct tm *gmtime(const time_t *);
443e12c5d1SDavid du Colombier extern struct tm *localtime(const time_t *);
453e12c5d1SDavid du Colombier extern size_t strftime(char *, size_t, const char *, const struct tm *);
463e12c5d1SDavid du Colombier 
47*2d069feaSDavid du Colombier #ifdef _REENTRANT_SOURCE
48*2d069feaSDavid du Colombier extern struct tm *gmtime_r(const time_t *, struct tm *);
49*2d069feaSDavid du Colombier extern struct tm *localtime_r(const time_t *, struct tm *);
50*2d069feaSDavid du Colombier extern char *ctime_r(const time_t *, char *);
51*2d069feaSDavid du Colombier #endif
52*2d069feaSDavid du Colombier 
533e12c5d1SDavid du Colombier #ifdef _POSIX_SOURCE
543e12c5d1SDavid du Colombier extern void tzset(void);
553e12c5d1SDavid du Colombier #endif
563e12c5d1SDavid du Colombier 
573e12c5d1SDavid du Colombier #ifdef __cplusplus
583e12c5d1SDavid du Colombier }
593e12c5d1SDavid du Colombier #endif
603e12c5d1SDavid du Colombier 
613e12c5d1SDavid du Colombier #ifdef _POSIX_SOURCE
623e12c5d1SDavid du Colombier extern char *tzname[2];
633e12c5d1SDavid du Colombier #endif
643e12c5d1SDavid du Colombier 
653e12c5d1SDavid du Colombier #endif /* __TIME_H */
66