| /* |
| * Time definitions |
| * |
| * Copyright 2000 Francois Gouget. |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| #ifndef __WINE_TIME_H |
| #define __WINE_TIME_H |
| |
| #include <crtdefs.h> |
| |
| #include <pshpack8.h> |
| |
| #ifndef _CLOCK_T_DEFINED |
| typedef __msvcrt_long clock_t; |
| #define _CLOCK_T_DEFINED |
| #endif |
| |
| #ifndef NULL |
| #ifdef __cplusplus |
| #define NULL 0 |
| #else |
| #define NULL ((void *)0) |
| #endif |
| #endif |
| |
| #ifndef CLOCKS_PER_SEC |
| #define CLOCKS_PER_SEC 1000 |
| #endif |
| |
| #ifndef _TM_DEFINED |
| #define _TM_DEFINED |
| struct tm { |
| int tm_sec; |
| int tm_min; |
| int tm_hour; |
| int tm_mday; |
| int tm_mon; |
| int tm_year; |
| int tm_wday; |
| int tm_yday; |
| int tm_isdst; |
| }; |
| #endif /* _TM_DEFINED */ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifdef __i386__ |
| #define _daylight (*__p__daylight()) |
| #define _dstbias (*__p__dstbias()) |
| #define _timezone (*__p__timezone()) |
| #define _tzname (__p__tzname()) |
| |
| int * __cdecl __p__daylight(void); |
| __msvcrt_long * __cdecl __p__dstbias(void); |
| __msvcrt_long * __cdecl __p__timezone(void); |
| char ** __cdecl __p__tzname(void); |
| #else |
| extern int _daylight; |
| extern __msvcrt_long _dstbias; |
| extern __msvcrt_long _timezone; |
| extern char *_tzname; |
| #endif |
| |
| #ifdef _USE_32BIT_TIME_T |
| #define _ctime32 ctime |
| #define _difftime32 difftime |
| #define _gmtime32 gmtime |
| #define _localtime32 localtime |
| #define _mktime32 mktime |
| #define _time32 time |
| #endif |
| |
| unsigned __cdecl _getsystime(struct tm*); |
| unsigned __cdecl _setsystime(struct tm*,unsigned); |
| char* __cdecl _strdate(char*); |
| errno_t __cdecl _strdate_s(char*,size_t); |
| char* __cdecl _strtime(char*); |
| errno_t __cdecl _strtime_s(char*,size_t); |
| void __cdecl _tzset(void); |
| |
| char* __cdecl asctime(const struct tm*); |
| clock_t __cdecl clock(void); |
| char* __cdecl _ctime32(const __time32_t*); |
| char* __cdecl _ctime64(const __time64_t*); |
| double __cdecl _difftime32(__time32_t,__time32_t); |
| double __cdecl _difftime64(__time64_t,__time64_t); |
| struct tm* __cdecl _gmtime32(const __time32_t*); |
| struct tm* __cdecl _gmtime64(const __time64_t*); |
| struct tm* __cdecl _localtime32(const __time32_t*); |
| errno_t __cdecl _localtime32_s(struct tm*, const __time64_t*); |
| struct tm* __cdecl _localtime64(const __time64_t*); |
| errno_t __cdecl _localtime64_s(struct tm*, const __time64_t*); |
| __time32_t __cdecl _mktime32(struct tm*); |
| __time64_t __cdecl _mktime64(struct tm*); |
| size_t __cdecl strftime(char*,size_t,const char*,const struct tm*); |
| __time32_t __cdecl _time32(__time32_t*); |
| __time64_t __cdecl _time64(__time64_t*); |
| |
| #ifndef _USE_32BIT_TIME_T |
| static inline char* ctime(const time_t *t) { return _ctime64(t); } |
| static inline double difftime(time_t t1, time_t t2) { return _difftime64(t1, t2); } |
| static inline struct tm* gmtime(const time_t *t) { return _gmtime64(t); } |
| static inline struct tm* localtime(const time_t *t) { return _localtime64(t); } |
| static inline time_t mktime(struct tm *tm) { return _mktime64(tm); } |
| static inline time_t time(time_t *t) { return _time64(t); } |
| #endif |
| |
| #ifndef _WTIME_DEFINED |
| #define _WTIME_DEFINED |
| |
| #ifdef _USE_32BIT_TIME_T |
| #define _wctime32 _wctime |
| #endif |
| |
| wchar_t* __cdecl _wasctime(const struct tm*); |
| size_t __cdecl wcsftime(wchar_t*,size_t,const wchar_t*,const struct tm*); |
| wchar_t* __cdecl _wctime32(const __time32_t*); |
| wchar_t* __cdecl _wctime64(const __time64_t*); |
| wchar_t* __cdecl _wstrdate(wchar_t*); |
| errno_t __cdecl _wstrdate_s(wchar_t*,size_t); |
| wchar_t* __cdecl _wstrtime(wchar_t*); |
| errno_t __cdecl _wstrtime_s(wchar_t*,size_t); |
| |
| #ifndef _USE_32BIT_TIME_T |
| static inline wchar_t* _wctime(const time_t *t) { return _wctime64(t); } |
| #endif |
| |
| #endif /* _WTIME_DEFINED */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #include <poppack.h> |
| |
| #endif /* __WINE_TIME_H */ |