Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4973 right-hear 1
/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
2
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
3
#ifndef __dj_include_fcntl_h_
4
#define __dj_include_fcntl_h_
5
 
6
#ifdef __cplusplus
7
extern "C" {
8
#endif
9
 
10
#define FD_CLOEXEC	0x0001
11
 
12
#define F_DUPFD		1
13
#define F_GETFD		2
14
#define F_GETFL		3
15
#define F_GETLK		4
16
#define F_SETFD		5
17
#define F_SETFL		6
18
#define F_SETLK		7
19
#define F_SETLKW	8
20
 
21
#define F_UNLCK		0
22
#define F_RDLCK		1
23
#define F_WRLCK		2
24
 
25
#define O_RDONLY	0x0000
26
#define O_WRONLY	0x0001
27
#define O_RDWR		0x0002
28
#define O_ACCMODE	0x0003
29
 
30
#define O_BINARY	0x0004	/* must fit in char, reserved by dos */
31
#define O_TEXT		0x0008	/* must fit in char, reserved by dos */
32
#define O_NOINHERIT	0x0080	/* DOS-specific */
33
 
34
#define O_CREAT		0x0100	/* second byte, away from DOS bits */
35
#define O_EXCL		0x0200
36
#define O_NOCTTY	0x0400
37
#define O_TRUNC		0x0800
38
#define O_APPEND	0x1000
39
#define O_NONBLOCK	0x2000
40
 
41
#include 
42
 
43
struct flock {
44
  off_t	l_len;
45
  pid_t	l_pid;
46
  off_t	l_start;
47
  short	l_type;
48
  short	l_whence;
49
};
50
 
51
extern int _fmode; /* O_TEXT or O_BINARY */
52
 
53
int	open(const char *_path, int _oflag, ...);
54
int	creat(const char *_path, mode_t _mode);
55
int	fcntl(int _fildes, int _cmd, ...);
56
 
57
#define SH_COMPAT	0x0000
58
#define SH_DENYRW	0x0010
59
#define SH_DENYWR	0x0020
60
#define SH_DENYRD	0x0030
61
#define SH_DENYNO	0x0040
62
 
63
#define _SH_COMPAT	SH_COMPAT
64
#define _SH_DENYRW	SH_DENYRW
65
#define _SH_DENYWR	SH_DENYWR
66
#define _SH_DENYRD	SH_DENYRD
67
#define _SH_DENYNO	SH_DENYNO
68
 
69
extern int __djgpp_share_flags;
70
 
71
#define S_IREAD		S_IRUSR
72
#define S_IWRITE	S_IWUSR
73
#define S_IEXEC		S_IXUSR
74
 
75
/*
76
 *  For compatibility with other DOS C compilers.
77
 */
78
 
79
#define _O_RDONLY       O_RDONLY
80
#define _O_WRONLY       O_WRONLY
81
#define _O_RDWR         O_RDWR
82
#define _O_APPEND       O_APPEND
83
#define _O_CREAT        O_CREAT
84
#define _O_TRUNC        O_TRUNC
85
#define _O_EXCL         O_EXCL
86
#define _O_TEXT         O_TEXT
87
#define _O_BINARY       O_BINARY
88
#define _O_NOINHERIT    O_NOINHERIT
89
 
90
/*
91
 * Support for advanced filesystems (Windows 9x VFAT, NTFS, LFN etc.)
92
 */
93
 
94
#define _FILESYS_UNKNOWN	0x80000000U
95
#define _FILESYS_CASE_SENSITIVE	0x0001
96
#define _FILESYS_CASE_PRESERVED	0x0002
97
#define _FILESYS_UNICODE	0x0004
98
#define _FILESYS_LFN_SUPPORTED	0x4000
99
#define _FILESYS_VOL_COMPRESSED	0x8000
100
 
101
unsigned _get_volume_info (const char *_path, int *_max_file_len, int *_max_path_len, char *_filesystype);
102
char _use_lfn (const char *_path);
103
char *_lfn_gen_short_fname (const char *_long_fname, char *_short_fname);
104
 
105
#define _LFN_CTIME	1
106
#define _LFN_ATIME	2
107
 
108
unsigned _lfn_get_ftime (int _handle, int _which);
109
 
110
char _preserve_fncase (void);
111
 
112
#ifndef _USE_LFN
113
#define _USE_LFN	_use_lfn(0) /* assume it's the same on ALL drives */
114
#endif
115
 
116
#ifdef __cplusplus
117
}
118
#endif
119
 
120
#endif /* !__dj_include_fcntl_h_ */