1*58166Selan #ifndef time_h
2*58166Selan 
3*58166Selan extern "C" {
4*58166Selan 
5*58166Selan #ifdef __time_h_recursive
6*58166Selan #include_next <time.h>
7*58166Selan #else
8*58166Selan #define __time_h_recursive
9*58166Selan 
10*58166Selan #include <_G_config.h>
11*58166Selan 
12*58166Selan // A clean way to use and/or define time_t might allow removal of this crud.
13*58166Selan #ifndef __sys_time_h_recursive
14*58166Selan #define time __hide_time
15*58166Selan #define clock __hide_clock
16*58166Selan #define difftime __hide_difftime
17*58166Selan #define gmtime __hide_gmtime
18*58166Selan #define localtime __hide_localtime
19*58166Selan #define ctime __hide_ctime
20*58166Selan #define asctime __hide_asctime
21*58166Selan #define strftime __hide_strftime
22*58166Selan #endif
23*58166Selan #define mktime __hide_mktime
24*58166Selan #define tzset __hide_tzset
25*58166Selan #define tzsetwall __hide_tzsetwall
26*58166Selan #define getitimer __hide_getitimer
27*58166Selan #define setitimer __hide_setitimer
28*58166Selan #define gettimeofday __hide_gettimeofday
29*58166Selan #define settimeofday __hide_settimeofday
30*58166Selan 
31*58166Selan #ifdef VMS
32*58166Selan 	struct  unix_time
33*58166Selan 	{
34*58166Selan 		long int	tv_sec;
35*58166Selan 		long int	tv_usec;
36*58166Selan 	};
37*58166Selan 
38*58166Selan 	struct rusage
39*58166Selan 	{
40*58166Selan 		struct unix_time	ru_utime;
41*58166Selan 	};
42*58166Selan 
43*58166Selan #define RUSAGE_SELF 0		//define it, it will be unused
44*58166Selan #else
45*58166Selan #ifdef hpux
46*58166Selan #define _INCLUDE_POSIX_SOURCE
47*58166Selan #endif
48*58166Selan 
49*58166Selan #include_next <time.h>
50*58166Selan #endif
51*58166Selan #undef __time_h_recursive
52*58166Selan 
53*58166Selan #define time_h 1
54*58166Selan 
55*58166Selan #undef time
56*58166Selan #undef clock
57*58166Selan #undef difftime
58*58166Selan #undef gmtime
59*58166Selan #undef localtime
60*58166Selan #undef asctime
61*58166Selan #undef ctime
62*58166Selan #undef mktime
63*58166Selan #undef strftime
64*58166Selan #undef tzset
65*58166Selan #undef tzsetwall
66*58166Selan #undef getitimer
67*58166Selan #undef setitimer
68*58166Selan #undef gettimeofday
69*58166Selan #undef settimeofday
70*58166Selan 
71*58166Selan extern char* asctime _G_ARGS((const struct tm*));
72*58166Selan extern char* ctime _G_ARGS((const _G_time_t*));
73*58166Selan double difftime _G_ARGS((_G_time_t, _G_time_t));
74*58166Selan extern struct tm* gmtime _G_ARGS((const _G_time_t*));
75*58166Selan extern struct tm* localtime _G_ARGS((const _G_time_t*));
76*58166Selan extern _G_time_t mktime(struct tm*);
77*58166Selan extern _G_size_t strftime _G_ARGS((char*,_G_size_t,const char*,const struct tm*));
78*58166Selan extern void tzset();
79*58166Selan extern void tzsetwall();
80*58166Selan 
81*58166Selan extern int getitimer(int, struct itimerval*);
82*58166Selan extern int setitimer _G_ARGS((int, const struct itimerval*,struct itimerval*));
83*58166Selan extern int gettimeofday(struct timeval*, struct timezone*);
84*58166Selan extern int settimeofday _G_ARGS((const struct timeval*,const struct timezone*));
85*58166Selan extern int stime _G_ARGS((const _G_time_t*));
86*58166Selan extern int dysize(int);
87*58166Selan 
88*58166Selan #if defined(___AIX__)
89*58166Selan int clock (void);
90*58166Selan #elif defined(hpux)
91*58166Selan unsigned long      clock(void);
92*58166Selan #else
93*58166Selan long      clock(void);
94*58166Selan #endif
95*58166Selan _G_time_t      time(_G_time_t*);
96*58166Selan unsigned  ualarm(unsigned, unsigned);
97*58166Selan unsigned  usleep(unsigned);
98*58166Selan void      profil _G_ARGS((unsigned short*, _G_size_t, unsigned int, unsigned));
99*58166Selan 
100*58166Selan #endif
101*58166Selan }
102*58166Selan #endif
103