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