5754664 [rkeene@sledge /home/rkeene/devel/cygwin-stuff/cyg-root/usr/include/sys]$ cat -n fcntl.h
  1 
  2 #ifndef _FCNTL_
  3 #ifdef __cplusplus
  4 extern "C" {
  5 #endif
  6 #define _FCNTL_
  7 #include <_ansi.h>
  8 #define _FOPEN      (-1)    /* from sys/file.h, kernel use only */
  9 #define _FREAD      0x0001  /* read enabled */
 10 #define _FWRITE     0x0002  /* write enabled */
 11 #define _FAPPEND    0x0008  /* append (writes guaranteed at the end) */
 12 #define _FMARK      0x0010  /* internal; mark during gc() */
 13 #define _FDEFER     0x0020  /* internal; defer for next gc pass */
 14 #define _FASYNC     0x0040  /* signal pgrp when data ready */
 15 #define _FSHLOCK    0x0080  /* BSD flock() shared lock present */
 16 #define _FEXLOCK    0x0100  /* BSD flock() exclusive lock present */
 17 #define _FCREAT     0x0200  /* open with file create */
 18 #define _FTRUNC     0x0400  /* open with truncation */
 19 #define _FEXCL      0x0800  /* error on open if file exists */
 20 #define _FNBIO      0x1000  /* non blocking I/O (sys5 style) */
 21 #define _FSYNC      0x2000  /* do all writes synchronously */
 22 #define _FNONBLOCK  0x4000  /* non blocking I/O (POSIX style) */
 23 #define _FNDELAY    _FNONBLOCK  /* non blocking I/O (4.2 style) */
 24 #define _FNOCTTY    0x8000  /* don't assign a ctty on this open */
 25 
 26 #define O_ACCMODE   (O_RDONLY|O_WRONLY|O_RDWR)
 27 
 28 /*
 29  * Flag values for open(2) and fcntl(2)
 30  * The kernel adds 1 to the open modes to turn it into some
 31  * combination of FREAD and FWRITE.
 32  */
 33 #define O_RDONLY    0       /* +1 == FREAD */
 34 #define O_WRONLY    1       /* +1 == FWRITE */
 35 #define O_RDWR      2       /* +1 == FREAD|FWRITE */
 36 #define O_APPEND    _FAPPEND
 37 #define O_CREAT     _FCREAT
 38 #define O_TRUNC     _FTRUNC
 39 #define O_EXCL      _FEXCL
 40 /*  O_SYNC      _FSYNC      not posix, defined below */
 41 /*  O_NDELAY    _FNDELAY    set in include/fcntl.h */
 42 /*  O_NDELAY    _FNBIO      set in 5include/fcntl.h */
 43 #define O_NONBLOCK  _FNONBLOCK
 44 #define O_NOCTTY    _FNOCTTY
 45 /* For machines which care - */
 46 #if defined (_WIN32) || defined (__CYGWIN__)
 47 #define _FBINARY        0x10000
 48 #define _FTEXT          0x20000
 49 #define _FNOINHERIT 0x40000
 50 
 51 #define O_BINARY    _FBINARY
 52 #define O_TEXT      _FTEXT
 53 #define O_NOINHERIT _FNOINHERIT
 54 
 55 /* The windows header files define versions with a leading underscore.  */
 56 #define _O_RDONLY   O_RDONLY
 57 #define _O_WRONLY   O_WRONLY
 58 #define _O_RDWR     O_RDWR
 59 #define _O_APPEND   O_APPEND
 60 #define _O_CREAT    O_CREAT
 61 #define _O_TRUNC    O_TRUNC
 62 #define _O_EXCL     O_EXCL
 63 #define _O_TEXT     O_TEXT
 64 #define _O_BINARY   O_BINARY
 65 #define _O_RAW      O_BINARY
 66 #define _O_NOINHERIT    O_NOINHERIT
 67 #endif
 68 
 69 #ifndef _POSIX_SOURCE
 70 
 71 #define O_SYNC      _FSYNC
 72 
 73 /*
 74  * Flags that work for fcntl(fd, F_SETFL, FXXXX)
 75  */
 76 #define FAPPEND     _FAPPEND
 77 #define FSYNC       _FSYNC
 78 #define FASYNC      _FASYNC
 79 #define FNBIO       _FNBIO
 80 #define FNONBIO     _FNONBLOCK  /* XXX fix to be NONBLOCK everywhere */
 81 #define FNDELAY     _FNDELAY
 82 
 83 /*
 84  * Flags that are disallowed for fcntl's (FCNTLCANT);
 85  * used for opens, internal state, or locking.
 86  */
 87 #define FREAD       _FREAD
 88 #define FWRITE      _FWRITE
 89 #define FMARK       _FMARK
 90 #define FDEFER      _FDEFER
 91 #define FSHLOCK     _FSHLOCK
 92 #define FEXLOCK     _FEXLOCK
 93 
 94 /*
 95  * The rest of the flags, used only for opens
 96  */
 97 #define FOPEN       _FOPEN
 98 #define FCREAT      _FCREAT
 99 #define FTRUNC      _FTRUNC
100 #define FEXCL       _FEXCL
101 #define FNOCTTY     _FNOCTTY
102 
103 #endif  /* !_POSIX_SOURCE */
104 
105 /* XXX close on exec request; must match UF_EXCLOSE in user.h */
106 #define FD_CLOEXEC  1   /* posix */
107 
108 /* fcntl(2) requests */
109 #define F_DUPFD     0   /* Duplicate fildes */
110 #define F_GETFD     1   /* Get fildes flags (close on exec) */
111 #define F_SETFD     2   /* Set fildes flags (close on exec) */
112 #define F_GETFL     3   /* Get file flags */
113 #define F_SETFL     4   /* Set file flags */
114 #ifndef _POSIX_SOURCE
115 #define F_GETOWN    5   /* Get owner - for ASYNC */
116 #define F_SETOWN    6   /* Set owner - for ASYNC */
117 #endif  /* !_POSIX_SOURCE */
118 #define F_GETLK     7   /* Get record-locking information */
119 #define F_SETLK     8   /* Set or Clear a record-lock (Non-Blocking) */
120 #define F_SETLKW    9   /* Set or Clear a record-lock (Blocking) */
121 #ifndef _POSIX_SOURCE
122 #define F_RGETLK    10  /* Test a remote lock to see if it is blocked */
123 #define F_RSETLK    11  /* Set or unlock a remote lock */
124 #define F_CNVT      12  /* Convert a fhandle to an open fd */
125 #define F_RSETLKW   13  /* Set or Clear remote record-lock(Blocking) */
126 #endif  /* !_POSIX_SOURCE */
127 
128 /* fcntl(2) flags (l_type field of flock structure) */
129 #define F_RDLCK     1   /* read lock */
130 #define F_WRLCK     2   /* write lock */
131 #define F_UNLCK     3   /* remove lock(s) */
132 #ifndef _POSIX_SOURCE
133 #define F_UNLKSYS   4   /* remove remote locks for a given system */
134 #endif  /* !_POSIX_SOURCE */
135 
136 /*#include <sys/stdtypes.h>*/
137 
138 /* file segment locking set data type - information passed to system by user */
139 struct flock {
140     short   l_type;     /* F_RDLCK, F_WRLCK, or F_UNLCK */
141     short   l_whence;   /* flag to choose starting offset */
142     long    l_start;    /* relative offset, in bytes */
143     long    l_len;      /* length, in bytes; 0 means lock to EOF */
144     short   l_pid;      /* returned with F_GETLK */
145     short   l_xxx;      /* reserved for future use */
146 };
147 
148 #ifndef _POSIX_SOURCE
149 /* extended file segment locking set data type */
150 struct eflock {
151     short   l_type;     /* F_RDLCK, F_WRLCK, or F_UNLCK */
152     short   l_whence;   /* flag to choose starting offset */
153     long    l_start;    /* relative offset, in bytes */
154     long    l_len;      /* length, in bytes; 0 means lock to EOF */
155     short   l_pid;      /* returned with F_GETLK */
156     short   l_xxx;      /* reserved for future use */
157     long    l_rpid;     /* Remote process id wanting this lock */
158     long    l_rsys;     /* Remote system id wanting this lock */
159 };
160 #endif  /* !_POSIX_SOURCE */
161 
162 
163 #include <sys/types.h>
164 #include <sys/stat.h>       /* sigh. for the mode bits for open/creat */
165 
166 extern int open _PARAMS ((const char *, int, ...));
167 extern int creat _PARAMS ((const char *, mode_t));
168 extern int fcntl _PARAMS ((int, int, ...));
169 
170 /* Provide _<systemcall> prototypes for functions provided by some versions
171    of newlib.  */
172 extern int _open _PARAMS ((const char *, int, ...));
173 extern int _fcntl _PARAMS ((int, int, ...));
174 
175 #ifdef __cplusplus
176 }
177 #endif
178 #endif  /* !_FCNTL_ */
5754665 [rkeene@sledge /home/rkeene/devel/cygwin-stuff/cyg-root/usr/include/sys]$

Click here to go back to the directory listing.
Click here to download this file.
last modified: 2001-01-31 15:09:06