| 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 | #define __WINE_USE_MSVCRT
|
|---|
| 11 |
|
|---|
| 12 | #include "sys/types.h"
|
|---|
| 13 |
|
|---|
| 14 | #ifndef MSVCRT
|
|---|
| 15 | # ifdef USE_MSVCRT_PREFIX
|
|---|
| 16 | # define MSVCRT(x) MSVCRT_##x
|
|---|
| 17 | # else
|
|---|
| 18 | # define MSVCRT(x) x
|
|---|
| 19 | # endif
|
|---|
| 20 | #endif
|
|---|
| 21 |
|
|---|
| 22 | #ifndef MSVCRT_WCHAR_T_DEFINED
|
|---|
| 23 | #define MSVCRT_WCHAR_T_DEFINED
|
|---|
| 24 | #ifndef __cplusplus
|
|---|
| 25 | typedef unsigned short MSVCRT(wchar_t);
|
|---|
| 26 | #endif
|
|---|
| 27 | #endif
|
|---|
| 28 |
|
|---|
| 29 | #ifndef _MSC_VER
|
|---|
| 30 | # ifndef __int64
|
|---|
| 31 | # define __int64 long long
|
|---|
| 32 | # endif
|
|---|
| 33 | #endif
|
|---|
| 34 |
|
|---|
| 35 | #ifndef MSVCRT_DEV_T_DEFINED
|
|---|
| 36 | typedef unsigned int _dev_t;
|
|---|
| 37 | #define MSVCRT_DEV_T_DEFINED
|
|---|
| 38 | #endif
|
|---|
| 39 |
|
|---|
| 40 | #ifndef MSVCRT_INO_T_DEFINED
|
|---|
| 41 | typedef unsigned short _ino_t;
|
|---|
| 42 | #define MSVCRT_INO_T_DEFINED
|
|---|
| 43 | #endif
|
|---|
| 44 |
|
|---|
| 45 | #ifndef MSVCRT_TIME_T_DEFINED
|
|---|
| 46 | typedef long MSVCRT(time_t);
|
|---|
| 47 | #define MSVCRT_TIME_T_DEFINED
|
|---|
| 48 | #endif
|
|---|
| 49 |
|
|---|
| 50 | #ifndef MSVCRT_OFF_T_DEFINED
|
|---|
| 51 | typedef int MSVCRT(_off_t);
|
|---|
| 52 | #define MSVCRT_OFF_T_DEFINED
|
|---|
| 53 | #endif
|
|---|
| 54 |
|
|---|
| 55 | #define _S_IEXEC 0x0040
|
|---|
| 56 | #define _S_IWRITE 0x0080
|
|---|
| 57 | #define _S_IREAD 0x0100
|
|---|
| 58 | #define _S_IFIFO 0x1000
|
|---|
| 59 | #define _S_IFCHR 0x2000
|
|---|
| 60 | #define _S_IFDIR 0x4000
|
|---|
| 61 | #define _S_IFREG 0x8000
|
|---|
| 62 | #define _S_IFMT 0xF000
|
|---|
| 63 |
|
|---|
| 64 | /* for FreeBSD */
|
|---|
| 65 | #undef st_atime
|
|---|
| 66 | #undef st_ctime
|
|---|
| 67 | #undef st_mtime
|
|---|
| 68 |
|
|---|
| 69 | #ifndef MSVCRT_STAT_DEFINED
|
|---|
| 70 | #define MSVCRT_STAT_DEFINED
|
|---|
| 71 |
|
|---|
| 72 | struct _stat {
|
|---|
| 73 | _dev_t st_dev;
|
|---|
| 74 | _ino_t st_ino;
|
|---|
| 75 | unsigned short st_mode;
|
|---|
| 76 | short st_nlink;
|
|---|
| 77 | short st_uid;
|
|---|
| 78 | short st_gid;
|
|---|
| 79 | _dev_t st_rdev;
|
|---|
| 80 | MSVCRT(_off_t) st_size;
|
|---|
| 81 | MSVCRT(time_t) st_atime;
|
|---|
| 82 | MSVCRT(time_t) st_mtime;
|
|---|
| 83 | MSVCRT(time_t) st_ctime;
|
|---|
| 84 | };
|
|---|
| 85 |
|
|---|
| 86 | struct _stati64 {
|
|---|
| 87 | unsigned int st_dev;
|
|---|
| 88 | unsigned short st_ino;
|
|---|
| 89 | unsigned short st_mode;
|
|---|
| 90 | short st_nlink; short dummy1;
|
|---|
| 91 | short st_uid; short dummy2;
|
|---|
| 92 | short st_gid; short dummy3;
|
|---|
| 93 | unsigned int st_rdev;
|
|---|
| 94 | long long st_size;
|
|---|
| 95 | long st_atime;
|
|---|
| 96 | long st_mtime;
|
|---|
| 97 | long st_ctime;
|
|---|
| 98 | };
|
|---|
| 99 |
|
|---|
| 100 | #endif /* MSVCRT_STAT_DEFINED */
|
|---|
| 101 |
|
|---|
| 102 | #ifdef __cplusplus
|
|---|
| 103 | extern "C" {
|
|---|
| 104 | #endif
|
|---|
| 105 |
|
|---|
| 106 | int MSVCRT(_fstat)(int,struct _stat*);
|
|---|
| 107 | int MSVCRT(_stat)(const char*,struct _stat*);
|
|---|
| 108 | int _fstati64(int,struct _stati64*);
|
|---|
| 109 | int _stati64(const char*,struct _stati64*);
|
|---|
| 110 |
|
|---|
| 111 | #ifndef MSVCRT_WSTAT_DEFINED
|
|---|
| 112 | #define MSVCRT_WSTAT_DEFINED
|
|---|
| 113 | int _wstat(const MSVCRT(wchar_t)*,struct _stat*);
|
|---|
| 114 | int _wstati64(const MSVCRT(wchar_t)*,struct _stati64*);
|
|---|
| 115 | #endif /* MSVCRT_WSTAT_DEFINED */
|
|---|
| 116 |
|
|---|
| 117 | #ifdef __cplusplus
|
|---|
| 118 | }
|
|---|
| 119 | #endif
|
|---|
| 120 |
|
|---|
| 121 |
|
|---|
| 122 | #ifndef USE_MSVCRT_PREFIX
|
|---|
| 123 | #define S_IFMT _S_IFMT
|
|---|
| 124 | #define S_IFDIR _S_IFDIR
|
|---|
| 125 | #define S_IFCHR _S_IFCHR
|
|---|
| 126 | #define S_IFREG _S_IFREG
|
|---|
| 127 | #define S_IREAD _S_IREAD
|
|---|
| 128 | #define S_IWRITE _S_IWRITE
|
|---|
| 129 | #define S_IEXEC _S_IEXEC
|
|---|
| 130 |
|
|---|
| 131 | #define fstat _fstat
|
|---|
| 132 | #define stat _stat
|
|---|
| 133 | #endif /* USE_MSVCRT_PREFIX */
|
|---|
| 134 |
|
|---|
| 135 | #endif /* __WINE_SYS_STAT_H */
|
|---|