/* Copyright (C) 1986-2001 by Digital Mars. $Revision: 1.1.1.2 $ */ #if __SC__ || __RCC__ #pragma once #endif #ifndef __TIME_H #define __TIME_H 1 #if __cplusplus extern "C" { #endif /* Define _CRTAPI1 (for compatibility with the NT SDK) */ #ifndef _CRTAPI1 #define _CRTAPI1 __cdecl #endif /* Define _CRTAPI2 (for compatibility with the NT SDK) */ #ifndef _CRTAPI2 #define _CRTAPI2 __cdecl #endif /* Define CRTIMP */ #ifndef _CRTIMP #if defined(_WIN32) && defined(_DLL) #define _CRTIMP __declspec(dllimport) #else #define _CRTIMP #endif #endif #if _M_AMD64 typedef unsigned long long size_t; #else typedef unsigned size_t; #endif #ifndef __STDC__ #if !defined(_WCHAR_T_DEFINED) typedef unsigned short wchar_t; #define _WCHAR_T_DEFINED 1 #endif #endif #define CLOCKS_PER_SEC ((clock_t)1000) /* (clock_t / CLOCKS_PER_SEC) == seconds */ #if !__STDC__ #define CLK_TCK ((clock_t)1000) /* (clock_t / CLK_TCK) == seconds */ #endif #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif typedef long clock_t; #ifndef __TIME_T_DEFINED typedef long time_t; #define __TIME_T_DEFINED #endif #if __OS2__ && __INTSIZE == 4 #define __CLIB __stdcall #else #define __CLIB __cdecl #endif _CRTIMP extern int daylight; _CRTIMP extern long timezone; _CRTIMP extern long altzone; _CRTIMP extern char * const tzname[2]; #define _daylight daylight #define _timezone timezone #define _tzname tzname #ifndef _STRUCTTM_DEFINED #define _STRUCTTM_DEFINED 1 struct tm { int tm_sec, tm_min, // 0..59 tm_hour, // 0..23 tm_mday, // 1..31 tm_mon, // 0..11 tm_year, tm_wday, // 0..6, Sunday=0 tm_yday, // day of year as 0..365 tm_isdst; }; #endif #define _TIMEOFFSET 315558000 #if !__STDC__ #define TIMEOFFSET _TIMEOFFSET #endif clock_t __CLIB clock(void); time_t __CLIB time(time_t *); time_t __CLIB mktime(struct tm *); char * __CLIB asctime(const struct tm *); char * __CLIB ctime(const time_t *); struct tm * __CLIB localtime(const time_t *); struct tm * __CLIB gmtime(const time_t *); size_t __CLIB strftime(char *,size_t,const char *,const struct tm *); char * __CLIB _strdate(char *dstring); char * __CLIB _strtime(char *timestr); double __CLIB difftime(time_t t1,time_t t2); void __CLIB _tzset(void); #if !__STDC__ #if M_UNIX || M_XENIX #if !defined(_POSIX_SOURCE) struct timeval { long tv_sec; long tv_usec; }; struct timezone { int tz_minuteswest; int tz_dsttime; }; #define DST_NONE 0 #define DST_USA 1 #define DST_AUST 2 #define DST_WET 3 #define DST_MET 4 #define DST_EET 5 #define DST_CAN 6 #define DST_GB 7 #define DST_RUM 8 #define DST_TUR 9 #define DST_AUSTALT 10 #define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) #define timercmp(tvp, uvp, cmp) ((tvp)->tv_sec cmp (uvp)->tv_sec || \ (tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec) #define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 #define ITIMER_REAL 0 #define ITIMER_VIRTUAL 1 #define ITIMER_PROF 2 struct itimerval { struct timeval it_interval; struct timeval it_value; }; #if !defined(__STDC__) int __cdecl adjtime(struct timeval *, struct timeval *); int __cdecl getitimer(int, struct itimerval *); int __cdecl setitimer(int, struct itimerval *, struct itimerval *); #endif /* __STDC__ */ #endif /* !defined(_POSIX_SOURCE) */ struct tms { time_t tms_utime; /* user */ time_t tms_stime; /* system */ time_t tms_cutime; /* user children */ time_t tms_cstime; /* system children */ }; typedef struct { time_t tv_sec; long tv_nsec; } timestruc_t; clock_t __CLIB times(struct tms *); unsigned int __CLIB sleep(unsigned int); long int __CLIB nap(long int mS); #define usleep(s) (void)nap((s)/1000) #define msleep(s) (void)nap(s) #else /* M_UNIX || M_XENIX */ void __CLIB sleep(time_t); void __CLIB usleep(unsigned long); void __CLIB msleep(unsigned long); #endif /* M_UNIX || M_XENIX */ void __cdecl tzset(void); #endif /* !__STDC__ */ #ifdef __NT__ #ifndef __STDC__ wchar_t * __cdecl _wasctime(const struct tm *); wchar_t * __cdecl _wctime(const time_t *); size_t __cdecl wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *); wchar_t * __cdecl _wstrdate(wchar_t *); wchar_t * __cdecl _wstrtime(wchar_t *); #endif #endif #if __cplusplus } #endif #endif