1#ifndef _STAT_DEFINED
2
3/* __stat64 is needed for compatibility with msvc */
4#define __stat64 _stat64
5
6/*
7 * To prevent ABI issues, the mingw-w64 runtime should not call the
8 * _fstat, _fstati64, _stat, _stati64, _wstat and _wstati64 functions.
9 * Instead it should call the fixed-size variants.
10 */
11#ifndef _CRTBLD
12#ifdef _USE_32BIT_TIME_T
13#define _fstat _fstat32
14#define _fstati64 _fstat32i64
15#define _stat _stat32
16#define _stati64 _stat32i64
17#define _wstat _wstat32
18#define _wstati64 _wstat32i64
19#else
20#define _fstat _fstat64i32
21#define _fstati64 _fstat64
22#define _stat _stat64i32
23#define _stati64 _stat64
24#define _wstat _wstat64i32
25#define _wstati64 _wstat64
26#endif /* _USE_32BIT_TIME_T */
27#endif /* _CRTBLD */
28
29 struct _stat32 {
30 _dev_t st_dev;
31 _ino_t st_ino;
32 unsigned short st_mode;
33 short st_nlink;
34 short st_uid;
35 short st_gid;
36 _dev_t st_rdev;
37 _off_t st_size;
38 __time32_t st_atime;
39 __time32_t st_mtime;
40 __time32_t st_ctime;
41 };
42
43 struct _stat32i64 {
44 _dev_t st_dev;
45 _ino_t st_ino;
46 unsigned short st_mode;
47 short st_nlink;
48 short st_uid;
49 short st_gid;
50 _dev_t st_rdev;
51 __MINGW_EXTENSION __int64 st_size;
52 __time32_t st_atime;
53 __time32_t st_mtime;
54 __time32_t st_ctime;
55 };
56
57 struct _stat64i32 {
58 _dev_t st_dev;
59 _ino_t st_ino;
60 unsigned short st_mode;
61 short st_nlink;
62 short st_uid;
63 short st_gid;
64 _dev_t st_rdev;
65 _off_t st_size;
66 __time64_t st_atime;
67 __time64_t st_mtime;
68 __time64_t st_ctime;
69 };
70
71 struct _stat64 {
72 _dev_t st_dev;
73 _ino_t st_ino;
74 unsigned short st_mode;
75 short st_nlink;
76 short st_uid;
77 short st_gid;
78 _dev_t st_rdev;
79 __MINGW_EXTENSION __int64 st_size;
80 __time64_t st_atime;
81 __time64_t st_mtime;
82 __time64_t st_ctime;
83 };
84
85#define _STAT_DEFINED
86#endif /* _STAT_DEFINED */