/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */ /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ #ifndef __dj_include_fcntl_h_ #define __dj_include_fcntl_h_ #ifdef __cplusplus extern "C" { #endif #define FD_CLOEXEC 0x0001 #define F_DUPFD 1 #define F_GETFD 2 #define F_GETFL 3 #define F_GETLK 4 #define F_SETFD 5 #define F_SETFL 6 #define F_SETLK 7 #define F_SETLKW 8 #define F_UNLCK 0 #define F_RDLCK 1 #define F_WRLCK 2 #define O_RDONLY 0x0000 #define O_WRONLY 0x0001 #define O_RDWR 0x0002 #define O_ACCMODE 0x0003 #define O_BINARY 0x0004 /* must fit in char, reserved by dos */ #define O_TEXT 0x0008 /* must fit in char, reserved by dos */ #define O_NOINHERIT 0x0080 /* DOS-specific */ #define O_CREAT 0x0100 /* second byte, away from DOS bits */ #define O_EXCL 0x0200 #define O_NOCTTY 0x0400 #define O_TRUNC 0x0800 #define O_APPEND 0x1000 #define O_NONBLOCK 0x2000 #include struct flock { off_t l_len; pid_t l_pid; off_t l_start; short l_type; short l_whence; }; extern int _fmode; /* O_TEXT or O_BINARY */ int open(const char *_path, int _oflag, ...); int creat(const char *_path, mode_t _mode); int fcntl(int _fildes, int _cmd, ...); #define SH_COMPAT 0x0000 #define SH_DENYRW 0x0010 #define SH_DENYWR 0x0020 #define SH_DENYRD 0x0030 #define SH_DENYNO 0x0040 #define _SH_COMPAT SH_COMPAT #define _SH_DENYRW SH_DENYRW #define _SH_DENYWR SH_DENYWR #define _SH_DENYRD SH_DENYRD #define _SH_DENYNO SH_DENYNO extern int __djgpp_share_flags; #define S_IREAD S_IRUSR #define S_IWRITE S_IWUSR #define S_IEXEC S_IXUSR /* * For compatibility with other DOS C compilers. */ #define _O_RDONLY O_RDONLY #define _O_WRONLY O_WRONLY #define _O_RDWR O_RDWR #define _O_APPEND O_APPEND #define _O_CREAT O_CREAT #define _O_TRUNC O_TRUNC #define _O_EXCL O_EXCL #define _O_TEXT O_TEXT #define _O_BINARY O_BINARY #define _O_NOINHERIT O_NOINHERIT /* * Support for advanced filesystems (Windows 9x VFAT, NTFS, LFN etc.) */ #define _FILESYS_UNKNOWN 0x80000000U #define _FILESYS_CASE_SENSITIVE 0x0001 #define _FILESYS_CASE_PRESERVED 0x0002 #define _FILESYS_UNICODE 0x0004 #define _FILESYS_LFN_SUPPORTED 0x4000 #define _FILESYS_VOL_COMPRESSED 0x8000 unsigned _get_volume_info (const char *_path, int *_max_file_len, int *_max_path_len, char *_filesystype); char _use_lfn (const char *_path); char *_lfn_gen_short_fname (const char *_long_fname, char *_short_fname); #define _LFN_CTIME 1 #define _LFN_ATIME 2 unsigned _lfn_get_ftime (int _handle, int _which); char _preserve_fncase (void); #ifndef _USE_LFN #define _USE_LFN _use_lfn(0) /* assume it's the same on ALL drives */ #endif #ifdef __cplusplus } #endif #endif /* !__dj_include_fcntl_h_ */