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 _INC_TYPES
7 #define _INC_TYPES
8 
9 #ifndef _WIN32
10 #error Only Win32 target is supported!
11 #endif
12 
13 #include <crtdefs.h>
14 
15 #ifdef _USE_32BIT_TIME_T
16 #ifdef _WIN64
17 #undef _USE_32BIT_TIME_T
18 #endif
19 #endif
20 
21 #ifndef _TIME32_T_DEFINED
22 #define _TIME32_T_DEFINED
23 typedef long	__time32_t;
24 #endif
25 
26 #ifndef _TIME64_T_DEFINED
27 #define _TIME64_T_DEFINED
28 __MINGW_EXTENSION
29 typedef __int64	__time64_t;
30 #endif
31 
32 #ifndef _TIME_T_DEFINED
33 #define _TIME_T_DEFINED
34 #ifdef _USE_32BIT_TIME_T
35 typedef __time32_t time_t;
36 #else
37 typedef __time64_t time_t;
38 #endif
39 #endif
40 
41 #ifndef _INO_T_DEFINED
42 #define _INO_T_DEFINED
43 typedef unsigned short _ino_t;
44 #ifndef	NO_OLDNAMES
45 typedef unsigned short ino_t;
46 #endif
47 #endif
48 
49 #ifndef _DEV_T_DEFINED
50 #define _DEV_T_DEFINED
51 typedef unsigned int _dev_t;
52 #ifndef	NO_OLDNAMES
53 typedef unsigned int dev_t;
54 #endif
55 #endif
56 
57 #ifndef _PID_T_
58 #define	_PID_T_
59 #ifndef _WIN64
60 typedef int	_pid_t;
61 #else
62 __MINGW_EXTENSION
63 typedef __int64	_pid_t;
64 #endif
65 
66 #ifndef	NO_OLDNAMES
67 #undef pid_t
68 typedef _pid_t	pid_t;
69 #endif
70 #endif	/* Not _PID_T_ */
71 
72 #ifndef _MODE_T_
73 #define	_MODE_T_
74 typedef unsigned short _mode_t;
75 
76 #ifndef	NO_OLDNAMES
77 typedef _mode_t	mode_t;
78 #endif
79 #endif	/* Not _MODE_T_ */
80 
81 #include <_mingw_off_t.h>
82 
83 #ifndef __NO_ISOCEXT
84 typedef unsigned int useconds_t;
85 #endif
86 
87 #ifndef _TIMESPEC_DEFINED
88 #define _TIMESPEC_DEFINED
89 struct timespec {
90   time_t  tv_sec;	/* Seconds */
91   long    tv_nsec;	/* Nanoseconds */
92 };
93 
94 struct itimerspec {
95   struct timespec  it_interval;	/* Timer period */
96   struct timespec  it_value;	/* Timer expiration */
97 };
98 #endif	/* _TIMESPEC_DEFINED */
99 
100 #ifndef _SIGSET_T_
101 #define _SIGSET_T_
102 #ifdef _WIN64
103 __MINGW_EXTENSION
104 typedef unsigned long long _sigset_t;
105 #else
106 typedef unsigned long	_sigset_t;
107 #endif
108 
109 #ifdef _POSIX
110 typedef _sigset_t	sigset_t;
111 #endif
112 #endif	/* Not _SIGSET_T_ */
113 
114 #endif	/* _INC_TYPES */
115 
116