xref: /reactos/sdk/include/ucrt/sys/timeb.h (revision e3e520d1)
1 //
2 // sys/timeb.h
3 //
4 //      Copyright (c) Microsoft Corporation. All rights reserved.
5 //
6 // The _ftime() family of functions
7 //
8 #pragma once
9 
10 #include <corecrt.h>
11 
12 #pragma warning(push)
13 #pragma warning(disable: _UCRT_DISABLED_WARNINGS)
14 _UCRT_DISABLE_CLANG_WARNINGS
15 
16 _CRT_BEGIN_C_HEADER
17 
18 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
19 //
20 // Types
21 //
22 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
23 struct __timeb32
24 {
25     __time32_t     time;
26     unsigned short millitm;
27     short          timezone;
28     short          dstflag;
29 };
30 
31 struct __timeb64
32 {
33     __time64_t     time;
34     unsigned short millitm;
35     short          timezone;
36     short          dstflag;
37 };
38 
39 #if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES  && !defined _CRT_NO_TIME_T
40     struct timeb
41     {
42         time_t         time;
43         unsigned short millitm;
44         short          timezone;
45         short          dstflag;
46     };
47 #endif
48 
49 
50 
51 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 //
53 // Functions
54 //
55 //-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 #ifdef _USE_32BIT_TIME_T
57     #define _timeb      __timeb32
58     #define _ftime      _ftime32
59     #define _ftime_s    _ftime32_s
60 #else
61     #define _timeb      __timeb64
62     #define _ftime      _ftime64
63     #define _ftime_s    _ftime64_s
64 #endif
65 
66 
67 
68 _CRT_INSECURE_DEPRECATE(_ftime32_s)
69 _ACRTIMP void __cdecl _ftime32(
70     _Out_ struct __timeb32* _Time
71     );
72 
73 _ACRTIMP errno_t __cdecl _ftime32_s(
74     _Out_ struct __timeb32* _Time
75     );
76 
77 _CRT_INSECURE_DEPRECATE(_ftime64_s)
78 _ACRTIMP void __cdecl _ftime64(
79     _Out_ struct __timeb64* _Time
80     );
81 
82 _ACRTIMP errno_t __cdecl _ftime64_s(
83     _Out_ struct __timeb64* _Time
84     );
85 
86 
87 
88 #if !defined RC_INVOKED && !defined __midl && defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES && !defined _CRT_NO_TIME_T
89 
90     #ifdef _USE_32BIT_TIME_T
91 
92         static __inline void __CRTDECL ftime(struct timeb* const _Tmb)
93         {
94             _STATIC_ASSERT(sizeof(struct timeb) == sizeof(struct __timeb32));
95             _ftime32((struct __timeb32*)_Tmb);
96         }
97 
98     #else
99 
100         static __inline void __CRTDECL ftime(struct timeb* const _Tmb)
101         {
102             _STATIC_ASSERT(sizeof(struct timeb) == sizeof(struct __timeb64));
103             _ftime64((struct __timeb64*)_Tmb);
104         }
105 
106     #endif
107 
108 #endif
109 
110 _CRT_END_C_HEADER
111 _UCRT_RESTORE_CLANG_WARNINGS
112 #pragma warning(pop) // _UCRT_DISABLED_WARNINGS
113