ReactOS 0.4.16-dev-2104-gb84fa49
stat.h
Go to the documentation of this file.
1/*
2 * _stat() definitions
3 *
4 * Derived from the mingw header written by Colin Peters.
5 * Modified for Wine use by Jon Griffiths and Francois Gouget.
6 * This file is in the public domain.
7 */
8#ifndef __WINE_SYS_STAT_H
9#define __WINE_SYS_STAT_H
10
11#include <corecrt.h>
12#include <sys/types.h>
13
14#include <pshpack8.h>
15
16#ifndef _DEV_T_DEFINED
17# ifdef _CRTDLL
18typedef unsigned short _dev_t;
19# else
20typedef unsigned int _dev_t;
21# endif
22#define _DEV_T_DEFINED
23#endif
24
25#ifndef _INO_T_DEFINED
26typedef unsigned short _ino_t;
27#define _INO_T_DEFINED
28#endif
29
30#ifndef _OFF_T_DEFINED
31typedef int _off_t;
32#define _OFF_T_DEFINED
33#endif
34
35#define _S_IEXEC 0x0040
36#define _S_IWRITE 0x0080
37#define _S_IREAD 0x0100
38#define _S_IFIFO 0x1000
39#define _S_IFCHR 0x2000
40#define _S_IFDIR 0x4000
41#define _S_IFREG 0x8000
42#define _S_IFMT 0xF000
43
44/* for FreeBSD */
45#undef st_atime
46#undef st_ctime
47#undef st_mtime
48
49#ifndef _STAT_DEFINED
50#define _STAT_DEFINED
51
52struct _stat {
55 unsigned short st_mode;
56 short st_nlink;
57 short st_uid;
58 short st_gid;
64};
65
66struct stat {
69 unsigned short st_mode;
70 short st_nlink;
71 short st_uid;
72 short st_gid;
78};
79
80struct _stat32 {
83 unsigned short st_mode;
84 short st_nlink;
85 short st_uid;
86 short st_gid;
92};
93
94struct _stat32i64 {
97 unsigned short st_mode;
98 short st_nlink;
99 short st_uid;
100 short st_gid;
106};
107
111 unsigned short st_mode;
112 short st_nlink;
113 short st_uid;
114 short st_gid;
120};
121
122struct _stati64 {
125 unsigned short st_mode;
126 short st_nlink;
127 short st_uid;
128 short st_gid;
131 time_t st_atime;
132 time_t st_mtime;
133 time_t st_ctime;
134};
135
139 unsigned short st_mode;
140 short st_nlink;
141 short st_uid;
142 short st_gid;
145 __time64_t st_atime;
146 __time64_t st_mtime;
147 __time64_t st_ctime;
148};
149#endif /* _STAT_DEFINED */
150
151#ifdef __cplusplus
152extern "C" {
153#endif
154
155#ifdef _UCRT
156# ifdef _USE_32BIT_TIME_T
157# define _fstat _fstat32
158# define _fstati64 _fstat32i64
159# define _stat _stat32
160# define _stati64 _stat32i64
161# define _wstat _wstat32
162# define _wstati64 _wstat32i64
163# else
164# define _fstat _fstat64i32
165# define _fstati64 _fstat64
166# define _stat _stat64i32
167# define _stati64 _stat64
168# define _wstat _wstat64i32
169# define _wstati64 _wstat64
170# endif
171#else /* _UCRT */
172# ifdef _USE_32BIT_TIME_T
173# define _fstat32 _fstat
174# define _fstat32i64 _fstati64
175# define _stat32i64 _stati64
176# define _stat32 _stat
177# define _wstat32 _wstat
178# define _wstat32i64 _wstati64
179# else
180# define _fstat64i32 _fstat
181# define _fstat64 _fstati64
182# define _stat64 _stati64
183# define _stat64i32 _stat
184# define _wstat64i32 _wstat
185# define _wstat64 _wstati64
186# endif
187#endif
188
189#define __stat64 _stat64
190
191_ACRTIMP int __cdecl _fstat32(int, struct _stat32*);
192_ACRTIMP int __cdecl _fstat32i64(int, struct _stat32i64*);
193_ACRTIMP int __cdecl _fstat64(int,struct _stat64*);
194_ACRTIMP int __cdecl _fstat64i32(int,struct _stat64i32*);
195_ACRTIMP int __cdecl _stat32(const char*, struct _stat32*);
196_ACRTIMP int __cdecl _stat32i64(const char*, struct _stat32i64*);
197_ACRTIMP int __cdecl _stat64(const char*,struct _stat64*);
198_ACRTIMP int __cdecl _stat64i32(const char*,struct _stat64i32*);
199_ACRTIMP int __cdecl _umask(int);
200_ACRTIMP int __cdecl _wstat32(const wchar_t*,struct _stat32*);
201_ACRTIMP int __cdecl _wstat32i64(const wchar_t*, struct _stat32i64*);
202_ACRTIMP int __cdecl _wstat64(const wchar_t*,struct _stat64*);
203_ACRTIMP int __cdecl _wstat64i32(const wchar_t*,struct _stat64i32*);
204
205#ifdef __cplusplus
206}
207#endif
208
209
210#define S_IFMT _S_IFMT
211#define S_IFDIR _S_IFDIR
212#define S_IFCHR _S_IFCHR
213#define S_IFREG _S_IFREG
214#define S_IREAD _S_IREAD
215#define S_IWRITE _S_IWRITE
216#define S_IEXEC _S_IEXEC
217
218static inline int fstat(int fd, struct stat* ptr) { return _fstat(fd, (struct _stat*)ptr); }
219static inline int stat(const char* path, struct stat* ptr) { return _stat(path, (struct _stat*)ptr); }
220#ifndef _UMASK_DEFINED
221static inline int umask(int fd) { return _umask(fd); }
222#define _UMASK_DEFINED
223#endif
224
225#include <poppack.h>
226
227#endif /* __WINE_SYS_STAT_H */
#define stat
Definition: acwin.h:99
#define fstat
Definition: acwin.h:100
int CDECL _umask(int umask)
Definition: file.c:3486
int CDECL _fstat32(int fd, struct _stat32 *buf)
Definition: file.c:2030
int CDECL _fstat32i64(int fd, struct _stat32i64 *buf)
Definition: file.c:2044
__msvcrt_long __time32_t
Definition: corecrt.h:209
#define __cdecl
Definition: corecrt.h:121
#define _ACRTIMP
Definition: corecrt.h:153
#define __int64
Definition: corecrt.h:72
__time32_t time_t
Definition: corecrt.h:228
static int umask(int fd)
Definition: io.h:31
#define _fstat64
Definition: stat.h:181
#define _stat64i32
Definition: stat.h:183
#define _wstat64i32
Definition: stat.h:184
int _off_t
Definition: stat.h:31
unsigned short _ino_t
Definition: stat.h:26
#define _wstat64
Definition: stat.h:185
_ACRTIMP int __cdecl _wstat32i64(const wchar_t *, struct _stat32i64 *)
Definition: stat.cpp:542
#define _stat64
Definition: stat.h:182
_ACRTIMP int __cdecl _wstat32(const wchar_t *, struct _stat32 *)
Definition: stat.cpp:537
unsigned int _dev_t
Definition: stat.h:20
#define _fstat64i32
Definition: stat.h:180
static PVOID ptr
Definition: dispmode.c:27
unsigned short _ino_t
Definition: wchar.h:607
long _off_t
Definition: wchar.h:623
unsigned int _dev_t
Definition: wchar.h:615
__int64 __time64_t
Definition: corecrt.h:619
#define _stat
Definition: stat.h:146
#define _fstat
Definition: stat.h:144
static int fd
Definition: io.c:51
Definition: stat.h:80
short st_uid
Definition: stat.h:85
_dev_t st_rdev
Definition: stat.h:87
short st_gid
Definition: stat.h:86
unsigned short st_mode
Definition: stat.h:83
__time32_t st_mtime
Definition: stat.h:90
_dev_t st_dev
Definition: stat.h:81
__time32_t st_ctime
Definition: stat.h:91
_ino_t st_ino
Definition: stat.h:82
__time32_t st_atime
Definition: stat.h:89
short st_nlink
Definition: stat.h:84
_off_t st_size
Definition: stat.h:88
short st_uid
Definition: stat.h:99
_ino_t st_ino
Definition: stat.h:96
_dev_t st_rdev
Definition: stat.h:101
unsigned short st_mode
Definition: stat.h:97
__int64 DECLSPEC_ALIGN(8) st_size
short st_nlink
Definition: stat.h:98
short st_gid
Definition: stat.h:100
_dev_t st_dev
Definition: stat.h:95
__time32_t st_ctime
Definition: stat.h:105
__int64 st_size
Definition: stat.h:48
__time32_t st_atime
Definition: stat.h:103
__time32_t st_mtime
Definition: stat.h:104
Definition: stat.h:136
short st_uid
Definition: stat.h:141
_dev_t st_dev
Definition: stat.h:137
short st_gid
Definition: stat.h:142
unsigned short st_mode
Definition: stat.h:139
short st_nlink
Definition: stat.h:140
_dev_t st_rdev
Definition: stat.h:143
__int64 DECLSPEC_ALIGN(8) st_size
_ino_t st_ino
Definition: stat.h:138
__time64_t st_mtime
Definition: stat.h:118
_dev_t st_dev
Definition: stat.h:109
_off_t st_size
Definition: stat.h:116
short st_nlink
Definition: stat.h:112
__time64_t st_ctime
Definition: stat.h:119
short st_gid
Definition: stat.h:114
short st_uid
Definition: stat.h:113
_dev_t st_rdev
Definition: stat.h:115
unsigned short st_mode
Definition: stat.h:111
__time64_t st_atime
Definition: stat.h:117
_ino_t st_ino
Definition: stat.h:110
Definition: stat.h:52
time_t st_ctime
Definition: stat.h:63
time_t st_mtime
Definition: stat.h:62
_off_t st_size
Definition: stat.h:60
short st_nlink
Definition: stat.h:56
short st_uid
Definition: stat.h:57
_dev_t st_dev
Definition: stat.h:53
_ino_t st_ino
Definition: stat.h:54
unsigned short st_mode
Definition: stat.h:55
time_t st_atime
Definition: stat.h:61
short st_gid
Definition: stat.h:58
_dev_t st_rdev
Definition: stat.h:59
Definition: stat.h:122
_dev_t st_dev
Definition: stat.h:123
short st_uid
Definition: stat.h:127
short st_nlink
Definition: stat.h:126
short st_gid
Definition: stat.h:128
unsigned short st_mode
Definition: stat.h:125
_ino_t st_ino
Definition: stat.h:124
_dev_t st_rdev
Definition: stat.h:129
__int64 DECLSPEC_ALIGN(8) st_size
Definition: stat.h:66
time_t st_ctime
Definition: stat.h:77
short st_gid
Definition: stat.h:72
unsigned short st_mode
Definition: stat.h:69
time_t st_mtime
Definition: stat.h:76
_dev_t st_dev
Definition: stat.h:67
short st_uid
Definition: stat.h:71
_ino_t st_ino
Definition: stat.h:68
_dev_t st_rdev
Definition: stat.h:73
_off_t st_size
Definition: stat.h:74
time_t st_atime
Definition: stat.h:75
short st_nlink
Definition: stat.h:70