
1: /* O_*, F_*, FD_* bit values for stub configuration. 2: Copyright (C) 1991, 1992, 1997, 2000, 2004 Free Software Foundation, Inc. 3: This file is part of the GNU C Library. 4: 5: The GNU C Library is free software; you can redistribute it and/or 6: modify it under the terms of the GNU Lesser General Public 7: License as published by the Free Software Foundation; either 8: version 2.1 of the License, or (at your option) any later version. 9: 10: The GNU C Library is distributed in the hope that it will be useful, 11: but WITHOUT ANY WARRANTY; without even the implied warranty of 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13: Lesser General Public License for more details. 14: 15: You should have received a copy of the GNU Lesser General Public 16: License along with the GNU C Library; if not, write to the Free 17: Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 18: 02111-1307 USA. */ 19: 20: /* These values should be changed as appropriate for your system. */ 21: 22: #ifndef _FCNTL_H 23: # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead." 24: #endif 25: 26: 27: /* File access modes for `open' and `fcntl'. */ 28: #define O_RDONLY 0 /* Open read-only. */ 29: #define O_WRONLY 1 /* Open write-only. */ 30: #define O_RDWR 2 /* Open read/write. */ 31: 32: 33: /* Bits OR'd into the second argument to open. */ 34: #define O_CREAT 0x0200 /* Create file if it doesn't exist. */ 35: #define O_EXCL 0x0800 /* Fail if file already exists. */ 36: #define O_TRUNC 0x0400 /* Truncate file to zero length. */ 37: #define O_NOCTTY 0x0100 /* Don't assign a controlling terminal. */ 38: 39: /* File status flags for `open' and `fcntl'. */ 40: #define O_APPEND 0x0008 /* Writes append to the file. */ 41: #define O_NONBLOCK 0x0004 /* Non-blocking I/O. */ 42: 43: #ifdef __USE_BSD 44: # define O_NDELAY O_NONBLOCK 45: #endif 46: 47: /* Mask for file access modes. This is system-dependent in case 48: some system ever wants to define some other flavor of access. */ 49: #define O_ACCMODE (O_RDONLY|O_WRONLY|O_RDWR) 50: 51: /* Values for the second argument to `fcntl'. */ 52: #define F_DUPFD 0 /* Duplicate file descriptor. */ 53: #define F_GETFD 1 /* Get file descriptor flags. */ 54: #define F_SETFD 2 /* Set file descriptor flags. */ 55: #define F_GETFL 3 /* Get file status flags. */ 56: #define F_SETFL 4 /* Set file status flags. */ 57: #if defined __USE_BSD || defined __USE_UNIX98 58: # define F_GETOWN 5 /* Get owner (receiver of SIGIO). */ 59: # define F_SETOWN 6 /* Set owner (receiver of SIGIO). */ 60: #endif 61: #define F_GETLK 7 /* Get record locking info. */ 62: #define F_SETLK 8 /* Set record locking info. */ 63: #define F_SETLKW 9 /* Set record locking info, wait. */ 64: 65: /* File descriptor flags used with F_GETFD and F_SETFD. */ 66: #define FD_CLOEXEC 1 /* Close on exec. */ 67: 68: 69: #include <bits/types.h> 70: 71: /* The structure describing an advisory lock. This is the type of the third 72: argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests. */ 73: struct flock 74: { 75: short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */ 76: short int l_whence; /* Where `l_start' is relative to (like `lseek'). */ 77: __off_t l_start; /* Offset where the lock begins. */ 78: __off_t l_len; /* Size of the locked area; zero means until EOF. */ 79: __pid_t l_pid; /* Process holding the lock. */ 80: }; 81: 82: /* Values for the `l_type' field of a `struct flock'. */ 83: #define F_RDLCK 1 /* Read lock. */ 84: #define F_WRLCK 2 /* Write lock. */ 85: #define F_UNLCK 3 /* Remove lock. */ 86: 87: /* Advise to `posix_fadvise'. */ 88: #ifdef __USE_XOPEN2K 89: # define POSIX_FADV_NORMAL 0 /* No further special treatment. */ 90: # define POSIX_FADV_RANDOM 1 /* Expect random page references. */ 91: # define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */ 92: # define POSIX_FADV_WILLNEED 3 /* Will need these pages. */ 93: # define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */ 94: # define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */ 95: #endif