158166Selan #ifndef time_h
258166Selan 
358166Selan extern "C" {
458166Selan 
558166Selan #ifdef __time_h_recursive
658166Selan #include_next <time.h>
758166Selan #else
858166Selan #define __time_h_recursive
958166Selan 
1058166Selan #include <_G_config.h>
1158166Selan 
1258166Selan // A clean way to use and/or define time_t might allow removal of this crud.
1358166Selan #ifndef __sys_time_h_recursive
1458166Selan #define time __hide_time
1558166Selan #define clock __hide_clock
1658166Selan #define difftime __hide_difftime
1758166Selan #define gmtime __hide_gmtime
1858166Selan #define localtime __hide_localtime
1958166Selan #define ctime __hide_ctime
2058166Selan #define asctime __hide_asctime
2158166Selan #define strftime __hide_strftime
2258166Selan #endif
2358166Selan #define mktime __hide_mktime
2458166Selan #define tzset __hide_tzset
2558166Selan #define tzsetwall __hide_tzsetwall
2658166Selan #define getitimer __hide_getitimer
2758166Selan #define setitimer __hide_setitimer
2858166Selan #define gettimeofday __hide_gettimeofday
2958166Selan #define settimeofday __hide_settimeofday
3058166Selan 
3158166Selan #ifdef VMS
3258166Selan 	struct  unix_time
3358166Selan 	{
3458166Selan 		long int	tv_sec;
3558166Selan 		long int	tv_usec;
3658166Selan 	};
3758166Selan 
3858166Selan 	struct rusage
3958166Selan 	{
4058166Selan 		struct unix_time	ru_utime;
4158166Selan 	};
4258166Selan 
4358166Selan #define RUSAGE_SELF 0		//define it, it will be unused
4458166Selan #else
4558166Selan #ifdef hpux
4658166Selan #define _INCLUDE_POSIX_SOURCE
4758166Selan #endif
4858166Selan 
4958166Selan #include_next <time.h>
5058166Selan #endif
5158166Selan #undef __time_h_recursive
5258166Selan 
5358166Selan #define time_h 1
5458166Selan 
5558166Selan #undef time
5658166Selan #undef clock
5758166Selan #undef difftime
5858166Selan #undef gmtime
5958166Selan #undef localtime
6058166Selan #undef asctime
6158166Selan #undef ctime
6258166Selan #undef mktime
6358166Selan #undef strftime
6458166Selan #undef tzset
6558166Selan #undef tzsetwall
6658166Selan #undef getitimer
6758166Selan #undef setitimer
6858166Selan #undef gettimeofday
6958166Selan #undef settimeofday
7058166Selan 
7158166Selan extern char* asctime _G_ARGS((const struct tm*));
7258166Selan extern char* ctime _G_ARGS((const _G_time_t*));
7358166Selan double difftime _G_ARGS((_G_time_t, _G_time_t));
7458166Selan extern struct tm* gmtime _G_ARGS((const _G_time_t*));
7558166Selan extern struct tm* localtime _G_ARGS((const _G_time_t*));
7658166Selan extern _G_time_t mktime(struct tm*);
7758166Selan extern _G_size_t strftime _G_ARGS((char*,_G_size_t,const char*,const struct tm*));
7858166Selan extern void tzset();
7958166Selan extern void tzsetwall();
8058166Selan 
8158166Selan extern int getitimer(int, struct itimerval*);
8258166Selan extern int setitimer _G_ARGS((int, const struct itimerval*,struct itimerval*));
8358166Selan extern int gettimeofday(struct timeval*, struct timezone*);
8458166Selan extern int settimeofday _G_ARGS((const struct timeval*,const struct timezone*));
8558166Selan extern int stime _G_ARGS((const _G_time_t*));
8658166Selan extern int dysize(int);
8758166Selan 
8858166Selan #if defined(___AIX__)
8958166Selan int clock (void);
9058166Selan #elif defined(hpux)
9158166Selan unsigned long      clock(void);
9258166Selan #else
9358166Selan long      clock(void);
9458166Selan #endif
9558166Selan _G_time_t      time(_G_time_t*);
9658166Selan unsigned  ualarm(unsigned, unsigned);
97*60384Selan void  	 usleep(unsigned);
98*60384Selan int      profil _G_ARGS((char *, int, int, int));
9958166Selan 
10058166Selan #endif
10158166Selan }
10258166Selan #endif
103