4 * Copyright 2000 Francois Gouget.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
27 #ifndef _CLOCK_T_DEFINED
28 typedef __msvcrt_long
clock_t;
29 #define _CLOCK_T_DEFINED
36 #define NULL ((void *)0)
40 #ifndef CLOCKS_PER_SEC
41 #define CLOCKS_PER_SEC 1000
57 #endif /* _TM_DEFINED */
64 #define _daylight (*__p__daylight())
65 #define _dstbias (*__p__dstbias())
66 #define _timezone (*__p__timezone())
67 #define _tzname (__p__tzname())
69 int * __cdecl
__p__daylight(void);
70 __msvcrt_long
* __cdecl
__p__dstbias(void);
71 __msvcrt_long
* __cdecl
__p__timezone(void);
72 char ** __cdecl
__p__tzname(void);
75 extern __msvcrt_long _dstbias
;
76 extern __msvcrt_long _timezone
;
80 #ifdef _USE_32BIT_TIME_T
81 #define _ctime32 ctime
82 #define _difftime32 difftime
83 #define _gmtime32 gmtime
84 #define _localtime32 localtime
85 #define _mktime32 mktime
89 unsigned __cdecl
_getsystime(struct tm
*);
90 unsigned __cdecl
_setsystime(struct tm
*,unsigned);
91 char* __cdecl
_strdate(char*);
92 errno_t __cdecl
_strdate_s(char*,size_t);
93 char* __cdecl
_strtime(char*);
94 errno_t __cdecl
_strtime_s(char*,size_t);
95 void __cdecl
_tzset(void);
97 char* __cdecl
asctime(const struct tm
*);
98 clock_t __cdecl
clock(void);
99 char* __cdecl
_ctime32(const __time32_t
*);
100 char* __cdecl
_ctime64(const __time64_t
*);
101 double __cdecl
_difftime32(__time32_t
,__time32_t
);
102 double __cdecl
_difftime64(__time64_t
,__time64_t
);
103 struct tm
* __cdecl
_gmtime32(const __time32_t
*);
104 struct tm
* __cdecl
_gmtime64(const __time64_t
*);
105 struct tm
* __cdecl
_localtime32(const __time32_t
*);
106 errno_t __cdecl
_localtime32_s(struct tm
*, const __time64_t
*);
107 struct tm
* __cdecl
_localtime64(const __time64_t
*);
108 errno_t __cdecl
_localtime64_s(struct tm
*, const __time64_t
*);
109 __time32_t __cdecl
_mktime32(struct tm
*);
110 __time64_t __cdecl
_mktime64(struct tm
*);
111 size_t __cdecl
strftime(char*,size_t,const char*,const struct tm
*);
112 __time32_t __cdecl
_time32(__time32_t
*);
113 __time64_t __cdecl
_time64(__time64_t
*);
115 #ifndef _USE_32BIT_TIME_T
116 static inline char* ctime(const time_t *t
) { return _ctime64(t
); }
117 static inline double difftime(time_t t1
, time_t t2
) { return _difftime64(t1
, t2
); }
118 static inline struct tm
* gmtime(const time_t *t
) { return _gmtime64(t
); }
119 static inline struct tm
* localtime(const time_t *t
) { return _localtime64(t
); }
120 static inline time_t mktime(struct tm
*tm
) { return _mktime64(tm
); }
121 static inline time_t time(time_t *t
) { return _time64(t
); }
124 #ifndef _WTIME_DEFINED
125 #define _WTIME_DEFINED
127 #ifdef _USE_32BIT_TIME_T
128 #define _wctime32 _wctime
131 wchar_t* __cdecl
_wasctime(const struct tm
*);
132 size_t __cdecl
wcsftime(wchar_t*,size_t,const wchar_t*,const struct tm
*);
133 wchar_t* __cdecl
_wctime32(const __time32_t
*);
134 wchar_t* __cdecl
_wctime64(const __time64_t
*);
135 wchar_t* __cdecl
_wstrdate(wchar_t*);
136 errno_t __cdecl
_wstrdate_s(wchar_t*,size_t);
137 wchar_t* __cdecl
_wstrtime(wchar_t*);
138 errno_t __cdecl
_wstrtime_s(wchar_t*,size_t);
140 #ifndef _USE_32BIT_TIME_T
141 static inline wchar_t* _wctime(const time_t *t
) { return _wctime64(t
); }
144 #endif /* _WTIME_DEFINED */
152 #endif /* __WINE_TIME_H */