master
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _TIMEB_H_
7#define _TIMEB_H_
8
9#include <crtdefs.h>
10
11#ifndef _WIN32
12#error Only Win32 target is supported!
13#endif
14
15#pragma pack(push,_CRT_PACKING)
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21#ifndef _CRTIMP
22#define _CRTIMP __declspec(dllimport)
23#endif
24
25#ifdef _USE_32BIT_TIME_T
26#ifdef _WIN64
27#undef _USE_32BIT_TIME_T
28#endif
29#endif
30
31#ifndef _TIME32_T_DEFINED
32 typedef long __time32_t;
33#define _TIME32_T_DEFINED
34#endif
35
36#ifndef _TIME64_T_DEFINED
37 __MINGW_EXTENSION typedef __int64 __time64_t;
38#define _TIME64_T_DEFINED
39#endif
40
41#ifndef _TIME_T_DEFINED
42#ifdef _USE_32BIT_TIME_T
43 typedef __time32_t time_t;
44#else
45 typedef __time64_t time_t;
46#endif
47#define _TIME_T_DEFINED
48#endif
49
50#ifndef _TIMEB_DEFINED
51#define _TIMEB_DEFINED
52
53 struct __timeb32 {
54 __time32_t time;
55 unsigned short millitm;
56 short timezone;
57 short dstflag;
58 };
59
60#ifndef NO_OLDNAMES
61 struct timeb {
62 time_t time;
63 unsigned short millitm;
64 short timezone;
65 short dstflag;
66 };
67#endif
68
69 struct __timeb64 {
70 __time64_t time;
71 unsigned short millitm;
72 short timezone;
73 short dstflag;
74 };
75
76#endif
77
78 _CRTIMP void __cdecl _ftime64(struct __timeb64 *_Time);
79 _CRTIMP void __cdecl _ftime32(struct __timeb32 *_Time);
80
81#ifndef _USE_32BIT_TIME_T
82#define _timeb __timeb64
83#define _ftime _ftime64
84#else
85#define _timeb __timeb32
86#define _ftime _ftime32
87#endif
88
89struct _timespec32 {
90 __time32_t tv_sec;
91 long tv_nsec;
92};
93
94struct _timespec64 {
95 __time64_t tv_sec;
96 long tv_nsec;
97};
98
99#ifndef _TIMESPEC_DEFINED
100#define _TIMESPEC_DEFINED
101struct timespec {
102 time_t tv_sec; /* Seconds */
103 long tv_nsec; /* Nanoseconds */
104};
105
106struct itimerspec {
107 struct timespec it_interval; /* Timer period */
108 struct timespec it_value; /* Timer expiration */
109};
110#endif
111
112#if !defined (RC_INVOKED) && !defined (NO_OLDNAMES)
113#ifndef _USE_32BIT_TIME_T
114 void __cdecl ftime (struct timeb *) __MINGW_ASM_CALL(_ftime64);
115#else
116 void __cdecl ftime (struct timeb *) __MINGW_ASM_CALL(_ftime32);
117#endif /* _USE_32BIT_TIME_T */
118#endif
119
120#ifdef __cplusplus
121}
122#endif
123
124#pragma pack(pop)
125
126#include <sec_api/sys/timeb_s.h>
127#endif