io.h 5.49 KB
Newer Older
1 2 3 4 5 6 7 8 9
/*
 * System I/O definitions.
 *
 * Derived from the mingw header written by Colin Peters.
 * Modified for Wine use by Jon Griffiths and Francois Gouget.
 * This file is in the public domain.
 */
#ifndef __WINE_IO_H
#define __WINE_IO_H
10

11
#include <crtdefs.h>
12

13
#include <pshpack8.h>
14 15 16 17 18 19 20 21 22 23

/* The following are also defined in dos.h */
#define _A_NORMAL 0x00000000
#define _A_RDONLY 0x00000001
#define _A_HIDDEN 0x00000002
#define _A_SYSTEM 0x00000004
#define _A_VOLID  0x00000008
#define _A_SUBDIR 0x00000010
#define _A_ARCH   0x00000020

24 25 26
#ifndef _FSIZE_T_DEFINED
typedef unsigned long _fsize_t;
#define _FSIZE_T_DEFINED
27
#endif
28

29 30 31
#ifndef _FINDDATA_T_DEFINED
#define _FINDDATA_T_DEFINED
struct _finddata_t
32 33
{
  unsigned attrib;
34 35 36 37
  time_t   time_create;
  time_t   time_access;
  time_t   time_write;
  _fsize_t size;
38
  char             name[260];
39 40
};

41
struct _finddatai64_t
42 43
{
  unsigned attrib;
44 45 46
  time_t time_create;
  time_t time_access;
  time_t time_write;
47
  __int64        size;
48
  char           name[260];
49
};
50
#endif /* _FINDDATA_T_DEFINED */
51

52 53 54
#ifndef _WFINDDATA_T_DEFINED
#define _WFINDDATA_T_DEFINED
struct _wfinddata_t {
55
  unsigned attrib;
56 57 58 59 60
  time_t   time_create;
  time_t   time_access;
  time_t   time_write;
  _fsize_t size;
  wchar_t  name[260];
61 62
};

63
struct _wfinddatai64_t {
64
  unsigned attrib;
65 66 67
  time_t  time_create;
  time_t  time_access;
  time_t  time_write;
68
  __int64         size;
69
  wchar_t name[260];
70
};
71
#endif /* _WFINDDATA_T_DEFINED */
72 73 74 75 76

#ifdef __cplusplus
extern "C" {
#endif

77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
int         __cdecl _access(const char*,int);
int         __cdecl _chmod(const char*,int);
int         __cdecl _chsize(int,long);
int         __cdecl _close(int);
int         __cdecl _commit(int);
int         __cdecl _creat(const char*,int);
int         __cdecl _dup(int);
int         __cdecl _dup2(int,int);
int         __cdecl _eof(int);
__int64     __cdecl _filelengthi64(int);
long        __cdecl _filelength(int);
int         __cdecl _findclose(intptr_t);
intptr_t    __cdecl _findfirst(const char*,struct _finddata_t*);
intptr_t    __cdecl _findfirsti64(const char*, struct _finddatai64_t*);
int         __cdecl _findnext(intptr_t,struct _finddata_t*);
int         __cdecl _findnexti64(intptr_t, struct _finddatai64_t*);
intptr_t    __cdecl _get_osfhandle(int);
int         __cdecl _isatty(int);
int         __cdecl _locking(int,int,long);
long        __cdecl _lseek(int,long,int);
__int64     __cdecl _lseeki64(int,__int64,int);
char*       __cdecl _mktemp(char*);
int         __cdecl _open(const char*,int,...);
int         __cdecl _open_osfhandle(intptr_t,int);
int         __cdecl _pipe(int*,unsigned int,int);
int         __cdecl _read(int,void*,unsigned int);
int         __cdecl _setmode(int,int);
int         __cdecl _sopen(const char*,int,int,...);
long        __cdecl _tell(int);
__int64     __cdecl _telli64(int);
int         __cdecl _umask(int);
int         __cdecl _unlink(const char*);
int         __cdecl _write(int,const void*,unsigned int);

int         __cdecl remove(const char*);
int         __cdecl rename(const char*,const char*);
113 114 115

#ifndef _WIO_DEFINED
#define _WIO_DEFINED
116 117 118 119 120 121 122 123 124 125 126 127
int         __cdecl _waccess(const wchar_t*,int);
int         __cdecl _wchmod(const wchar_t*,int);
int         __cdecl _wcreat(const wchar_t*,int);
intptr_t    __cdecl _wfindfirst(const wchar_t*,struct _wfinddata_t*);
intptr_t    __cdecl _wfindfirsti64(const wchar_t*, struct _wfinddatai64_t*);
int         __cdecl _wfindnext(intptr_t,struct _wfinddata_t*);
int         __cdecl _wfindnexti64(intptr_t, struct _wfinddatai64_t*);
wchar_t *   __cdecl _wmktemp(wchar_t*);
int         __cdecl _wopen(const wchar_t*,int,...);
int         __cdecl _wrename(const wchar_t*,const wchar_t*);
int         __cdecl _wsopen(const wchar_t*,int,int,...);
int         __cdecl _wunlink(const wchar_t*);
128
#endif /* _WIO_DEFINED */
129 130 131 132 133 134

#ifdef __cplusplus
}
#endif


135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
static inline int access(const char* path, int mode) { return _access(path, mode); }
static inline int chmod(const char* path, int mode) { return _chmod(path, mode); }
static inline int chsize(int fd, long size) { return _chsize(fd, size); }
static inline int close(int fd) { return _close(fd); }
static inline int creat(const char* path, int mode) { return _creat(path, mode); }
static inline int dup(int od) { return _dup(od); }
static inline int dup2(int od, int nd) { return _dup2(od, nd); }
static inline int eof(int fd) { return _eof(fd); }
static inline long filelength(int fd) { return _filelength(fd); }
static inline int isatty(int fd) { return _isatty(fd); }
static inline int locking(int fd, int mode, long size) { return _locking(fd, mode, size); }
static inline long lseek(int fd, long off, int where) { return _lseek(fd, off, where); }
static inline char* mktemp(char* pat) { return _mktemp(pat); }
static inline int read(int fd, void* buf, unsigned int size) { return _read(fd, buf, size); }
static inline int setmode(int fd, int mode) { return _setmode(fd, mode); }
static inline long tell(int fd) { return _tell(fd); }
151
#ifndef _UMASK_DEFINED
152
static inline int umask(int fd) { return _umask(fd); }
153
#define _UMASK_DEFINED
154
#endif
155
#ifndef _UNLINK_DEFINED
156
static inline int unlink(const char* path) { return _unlink(path); }
157
#define _UNLINK_DEFINED
158 159
#endif
static inline int write(int fd, const void* buf, unsigned int size) { return _write(fd, buf, size); }
160

Marcus Meissner's avatar
Marcus Meissner committed
161
#if defined(__GNUC__) && (__GNUC__ < 4)
162 163
extern int __cdecl open(const char*,int,...) __attribute__((alias("_open")));
extern int __cdecl sopen(const char*,int,int,...) __attribute__((alias("_sopen")));
164 165 166 167 168
#else
#define open _open
#define sopen _sopen
#endif /* __GNUC__ */

169 170
#include <poppack.h>

171
#endif /* __WINE_IO_H */