mfplat: Read queue subscriber within the critical section.
[wine/zf.git] / include / msvcrt / time.h
blobc0db38ff7a3e46e0675b14ec479ea0b8af16378a
1 /*
2 * Time definitions
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
20 #ifndef __WINE_TIME_H
21 #define __WINE_TIME_H
23 #include <corecrt_wtime.h>
25 #include <pshpack8.h>
27 #ifndef _CLOCK_T_DEFINED
28 typedef __msvcrt_long clock_t;
29 #define _CLOCK_T_DEFINED
30 #endif
32 #ifndef CLOCKS_PER_SEC
33 #define CLOCKS_PER_SEC 1000
34 #endif
36 #ifdef __cplusplus
37 extern "C" {
38 #endif
40 #ifdef __i386__
41 #define _daylight (*__p__daylight())
42 #define _dstbias (*__p__dstbias())
43 #define _timezone (*__p__timezone())
44 #define _tzname (__p__tzname())
46 _ACRTIMP int * __cdecl __p__daylight(void);
47 _ACRTIMP __msvcrt_long * __cdecl __p__dstbias(void);
48 _ACRTIMP __msvcrt_long * __cdecl __p__timezone(void);
49 _ACRTIMP char ** __cdecl __p__tzname(void);
50 #else
51 extern int _daylight;
52 extern __msvcrt_long _dstbias;
53 extern __msvcrt_long _timezone;
54 extern char *_tzname;
55 #endif
57 #if !defined(_UCRT) && defined(_USE_32BIT_TIME_T)
58 #define _ctime32 ctime
59 #define _difftime32 difftime
60 #define _gmtime32 gmtime
61 #define _localtime32 localtime
62 #define _mktime32 mktime
63 #define _time32 time
64 #endif
66 _ACRTIMP unsigned __cdecl _getsystime(struct tm*);
67 _ACRTIMP unsigned __cdecl _setsystime(struct tm*,unsigned);
68 _ACRTIMP char* __cdecl _strdate(char*);
69 _ACRTIMP errno_t __cdecl _strdate_s(char*,size_t);
70 _ACRTIMP char* __cdecl _strtime(char*);
71 _ACRTIMP errno_t __cdecl _strtime_s(char*,size_t);
72 _ACRTIMP void __cdecl _tzset(void);
74 _ACRTIMP char* __cdecl asctime(const struct tm*);
75 _ACRTIMP clock_t __cdecl clock(void);
76 _ACRTIMP char* __cdecl _ctime32(const __time32_t*);
77 _ACRTIMP char* __cdecl _ctime64(const __time64_t*);
78 _ACRTIMP double __cdecl _difftime32(__time32_t,__time32_t);
79 _ACRTIMP double __cdecl _difftime64(__time64_t,__time64_t);
80 _ACRTIMP struct tm* __cdecl _gmtime32(const __time32_t*);
81 _ACRTIMP struct tm* __cdecl _gmtime64(const __time64_t*);
82 _ACRTIMP struct tm* __cdecl _localtime32(const __time32_t*);
83 _ACRTIMP errno_t __cdecl _localtime32_s(struct tm*, const __time32_t*);
84 _ACRTIMP struct tm* __cdecl _localtime64(const __time64_t*);
85 _ACRTIMP errno_t __cdecl _localtime64_s(struct tm*, const __time64_t*);
86 _ACRTIMP __time32_t __cdecl _mktime32(struct tm*);
87 _ACRTIMP __time64_t __cdecl _mktime64(struct tm*);
88 _ACRTIMP size_t __cdecl strftime(char*,size_t,const char*,const struct tm*);
89 _ACRTIMP __time32_t __cdecl _time32(__time32_t*);
90 _ACRTIMP __time64_t __cdecl _time64(__time64_t*);
92 #ifndef _USE_32BIT_TIME_T
93 static inline char* ctime(const time_t *t) { return _ctime64(t); }
94 static inline double difftime(time_t t1, time_t t2) { return _difftime64(t1, t2); }
95 static inline struct tm* gmtime(const time_t *t) { return _gmtime64(t); }
96 static inline struct tm* localtime(const time_t *t) { return _localtime64(t); }
97 static inline time_t mktime(struct tm *tm) { return _mktime64(tm); }
98 static inline time_t time(time_t *t) { return _time64(t); }
99 #elif defined(_UCRT)
100 static inline char* ctime(const time_t *t) { return _ctime32(t); }
101 static inline double difftime(time_t t1, time_t t2) { return _difftime32(t1, t2); }
102 static inline struct tm* gmtime(const time_t *t) { return _gmtime32(t); }
103 static inline struct tm* localtime(const time_t *t) { return _localtime32(t); }
104 static inline time_t mktime(struct tm *tm) { return _mktime32(tm); }
105 static inline time_t time(time_t *t) { return _time32(t); }
106 #endif
108 #ifdef __cplusplus
110 #endif
112 #include <poppack.h>
114 #endif /* __WINE_TIME_H */