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
23typedef long	__time32_t;
24#endif
25
26#ifndef _TIME64_T_DEFINED
27#define _TIME64_T_DEFINED
28__MINGW_EXTENSION
29typedef __int64	__time64_t;
30#endif
31
32#ifndef _TIME_T_DEFINED
33#define _TIME_T_DEFINED
34#ifdef _USE_32BIT_TIME_T
35typedef __time32_t time_t;
36#else
37typedef __time64_t time_t;
38#endif
39#endif
40
41#ifndef _INO_T_DEFINED
42#define _INO_T_DEFINED
43typedef unsigned short _ino_t;
44#ifndef	NO_OLDNAMES
45typedef unsigned short ino_t;
46#endif
47#endif
48
49#ifndef _DEV_T_DEFINED
50#define _DEV_T_DEFINED
51typedef unsigned int _dev_t;
52#ifndef	NO_OLDNAMES
53typedef unsigned int dev_t;
54#endif
55#endif
56
57#ifndef _PID_T_
58#define	_PID_T_
59#ifndef _WIN64
60typedef int	_pid_t;
61#else
62__MINGW_EXTENSION
63typedef __int64	_pid_t;
64#endif
65
66#ifndef	NO_OLDNAMES
67#undef pid_t
68typedef _pid_t	pid_t;
69#endif
70#endif	/* Not _PID_T_ */
71
72#ifndef _MODE_T_
73#define	_MODE_T_
74typedef unsigned short _mode_t;
75
76#ifndef	NO_OLDNAMES
77typedef _mode_t	mode_t;
78#endif
79#endif	/* Not _MODE_T_ */
80
81#include <_mingw_off_t.h>
82
83#ifndef __NO_ISOCEXT
84typedef unsigned int useconds_t;
85#endif
86
87#ifndef _TIMESPEC_DEFINED
88#define _TIMESPEC_DEFINED
89struct timespec {
90  time_t  tv_sec;	/* Seconds */
91  long    tv_nsec;	/* Nanoseconds */
92};
93
94struct 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
104typedef unsigned long long _sigset_t;
105#else
106typedef unsigned long	_sigset_t;
107#endif
108
109#ifdef _POSIX
110typedef _sigset_t	sigset_t;
111#endif
112#endif	/* Not _SIGSET_T_ */
113
114#endif	/* _INC_TYPES */
115
116