win64: use new headers from mingw
[tinycc/kirr.git] / win32 / include / sys / types.h
blob1b4a93caf3d5635633a899366c5396bfe991180d
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef _INC_TYPES
7 #define _INC_TYPES
9 #ifndef _WIN32
10 #error Only Win32 target is supported!
11 #endif
13 #include <_mingw.h>
15 #ifdef _USE_32BIT_TIME_T
16 #ifdef _WIN64
17 #undef _USE_32BIT_TIME_T
18 #endif
19 #else
20 #if _INTEGRAL_MAX_BITS < 64
21 #define _USE_32BIT_TIME_T
22 #endif
23 #endif
25 #ifndef _TIME32_T_DEFINED
26 #define _TIME32_T_DEFINED
27 typedef long __time32_t;
28 #endif
30 #ifndef _TIME64_T_DEFINED
31 #define _TIME64_T_DEFINED
32 #if _INTEGRAL_MAX_BITS >= 64
33 typedef __int64 __time64_t;
34 #endif
35 #endif
37 #ifndef _TIME_T_DEFINED
38 #define _TIME_T_DEFINED
39 #ifdef _USE_32BIT_TIME_T
40 typedef __time32_t time_t;
41 #else
42 typedef __time64_t time_t;
43 #endif
44 #endif
46 #ifndef _INO_T_DEFINED
47 #define _INO_T_DEFINED
48 typedef unsigned short _ino_t;
49 #ifndef NO_OLDNAMES
50 typedef unsigned short ino_t;
51 #endif
52 #endif
54 #ifndef _DEV_T_DEFINED
55 #define _DEV_T_DEFINED
56 typedef unsigned int _dev_t;
57 #ifndef NO_OLDNAMES
58 typedef unsigned int dev_t;
59 #endif
60 #endif
62 #ifndef _PID_T_
63 #define _PID_T_
64 #ifndef _WIN64
65 typedef int _pid_t;
66 #else
67 typedef __int64 _pid_t;
68 #endif
70 #ifndef NO_OLDNAMES
71 typedef _pid_t pid_t;
72 #endif
73 #endif /* Not _PID_T_ */
75 #ifndef _MODE_T_
76 #define _MODE_T_
77 typedef unsigned short _mode_t;
79 #ifndef NO_OLDNAMES
80 typedef _mode_t mode_t;
81 #endif
82 #endif /* Not _MODE_T_ */
84 #ifndef _OFF_T_DEFINED
85 #define _OFF_T_DEFINED
86 #ifndef _OFF_T_
87 #define _OFF_T_
88 typedef long _off_t;
89 #if !defined(NO_OLDNAMES) || defined(_POSIX)
90 typedef long off_t;
91 #endif
92 #endif
93 #endif
95 #ifndef _OFF64_T_DEFINED
96 #define _OFF64_T_DEFINED
97 typedef long long _off64_t;
98 #if !defined(NO_OLDNAMES) || defined(_POSIX)
99 typedef long long off64_t;
100 #endif
101 #endif
103 #ifndef _TIMESPEC_DEFINED
104 #define _TIMESPEC_DEFINED
105 struct timespec {
106 time_t tv_sec; /* Seconds */
107 long tv_nsec; /* Nanoseconds */
110 struct itimerspec {
111 struct timespec it_interval; /* Timer period */
112 struct timespec it_value; /* Timer expiration */
114 #endif
116 #endif