diff options
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r-- | winsup/cygwin/syscalls.cc | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 22a73df67d5..520a6d5ed0f 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -13,6 +13,9 @@ details. */ #define _open __FOO_open__ #define _read __FOO_read__ #define _write __FOO_write__ +#define _open64 __FOO_open64__ +#define _lseek64 __FOO_lseek64__ +#define _fstat64 __FOO_fstat64__ #include "winsup.h" #include <sys/stat.h> @@ -52,6 +55,9 @@ details. */ #undef _open #undef _read #undef _write +#undef _open64 +#undef _lseek64 +#undef _fstat64 SYSTEM_INFO system_info; @@ -516,6 +522,9 @@ open (const char *unix_path, int flags, ...) extern "C" int _open (const char *, int flags, ...) __attribute__ ((alias ("open"))); +extern "C" int _open64 (const char *, int flags, ...) + __attribute__ ((alias ("open"))); + extern "C" __off64_t lseek64 (int fd, __off64_t pos, int dir) { @@ -540,6 +549,9 @@ lseek64 (int fd, __off64_t pos, int dir) return res; } +extern "C" int _lseek64 (int fd, __off64_t pos, int dir) + __attribute__ ((alias ("lseek64"))); + extern "C" __off32_t lseek (int fd, __off32_t pos, int dir) { @@ -1020,6 +1032,9 @@ fstat64 (int fd, struct __stat64 *buf) return res; } +extern "C" int _fstat64 (int fd, __off64_t pos, int dir) + __attribute__ ((alias ("fstat64"))); + extern "C" int _fstat (int fd, struct __stat32 *buf) { @@ -1954,7 +1969,7 @@ mknod_worker (const char *path, mode_t type, mode_t mode, _major_t major, } extern "C" int -mknod (const char *path, mode_t mode, dev_t dev) +mknod32 (const char *path, mode_t mode, __dev32_t dev) { if (check_null_empty_str_errno (path)) return -1; @@ -1970,8 +1985,8 @@ mknod (const char *path, mode_t mode, dev_t dev) } mode_t type = mode & S_IFMT; - _major_t major = dev >> 8 /* SIGH. _major (dev) */; - _minor_t minor = dev & 0xff /* SIGH _minor (dev) */; + _major_t major = _major (dev); + _minor_t minor = _minor (dev); switch (type) { case S_IFCHR: @@ -1980,7 +1995,7 @@ mknod (const char *path, mode_t mode, dev_t dev) case S_IFIFO: major = _major (FH_FIFO); - minor = _minor (FH_FIFO) & 0xff; /* SIGH again */ + minor = _minor (FH_FIFO); break; case 0: @@ -2002,6 +2017,12 @@ mknod (const char *path, mode_t mode, dev_t dev) } extern "C" int +mknod (const char *_path, mode_t mode, __dev16_t dev) +{ + return mknod32 (_path, mode, (__dev32_t) dev); +} + +extern "C" int mkfifo (const char *_path, mode_t mode) { return -1; |