Formerly unix/bsd/fcntlbits.h.~2~
authorroland <roland>
Wed, 11 Nov 1992 00:36:44 +0000 (00:36 +0000)
committerroland <roland>
Wed, 11 Nov 1992 00:36:44 +0000 (00:36 +0000)
sysdeps/unix/bsd/fcntlbits.h

index 61f2b64..4714fe8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -16,15 +16,53 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
-#ifndef        _GNU_FCNTL_H
+#ifndef        _FCNTLBITS_H
 
-#define        _GNU_FCNTL_H    1
+#define        _FCNTLBITS_H    1
 
 
-#include <gnu/types.h>
+/* File access modes for `open' and `fcntl'.  */
+#define        __O_RDONLY      0       /* Open read-only.  */
+#define        __O_WRONLY      1       /* Open write-only.  */
+#define        __O_RDWR        2       /* Open read/write.  */
+
+
+/* Bits OR'd into the second argument to open.  */
+#define        __O_CREAT       001000  /* Create file if it doesn't exist.  */
+#define        __O_EXCL        004000  /* Fail if file already exists.  */
+#define        __O_TRUNC       002000  /* Truncate file to zero length.  */
+/* Apparently not assigning a controlling terminal is the default
+   behavior in BSD, so no bit is required to request that behavior.  */
+#define        __O_NOCTTY      0       /* Don't assign a controlling terminal.  */
+#define        __O_SYNC        
+
+/* File status flags for `open' and `fcntl'.  */
+#define        __O_APPEND      000010  /* Writes append to the file.  */
+#define        __O_NONBLOCK    000004  /* Non-blocking I/O.  */
+
+/* BSD before 4.4 doesn't support POSIX.1 O_NONBLOCK,
+   but O_NDELAY is close.  */
+#define        __O_NDELAY      __O_NONBLOCK
+
+/* Mask for file access modes.  This is system-dependent in case
+   some system ever wants to define some other flavor of access.  */
+#define        __O_ACCMODE     (__O_RDONLY|__O_WRONLY|__O_RDWR)
 
+/* Alternate names for values for the WHENCE argument to `lseek'.  */
+#define        __L_SET         0       /* Seek from beginning of file.  */
+#define        __L_INCR        1       /* Seek from current position.  */
+#define        __L_XTND        2       /* Seek from end of file.  */
 
-/* Values for the second argument to fcntl.  */
+/* Operations for the `flock' call.  */
+#define        __LOCK_SH       1    /* Shared lock.  */
+#define        __LOCK_EX       2    /* Exclusive lock.  */
+#define        __LOCK_UN       8    /* Unlock.  */
+
+/* Can be OR'd in to one of the above.  */
+#define        __LOCK_NB       4    /* Don't block when locking.  */
+
+
+/* Values for the second argument to `fcntl'.  */
 #define        __F_DUPFD       0       /* Duplicate file descriptor.  */
 #define        __F_GETFD       1       /* Get file descriptor flags.  */
 #define        __F_SETFD       2       /* Set file descriptor flags.  */
@@ -40,9 +78,11 @@ Cambridge, MA 02139, USA.  */
 #define        __FD_CLOEXEC    1       /* Close on exec.  */
 
 
+#include <gnu/types.h>
+
 /* The structure describing an advisory lock.  This is the type of the third
    argument to `fcntl' for the F_GETLK, F_SETLK, and F_SETLKW requests.  */
-struct __flock
+struct flock
   {
     short int l_type;  /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
     short int l_whence;        /* Where `l_start' is relative to (like `lseek').  */
@@ -51,9 +91,10 @@ struct __flock
     __pid_t l_pid;     /* Process holding the lock.  */
   };
 
+/* Values for the `l_type' field of a `struct flock'.  */
 #define        __F_RDLCK       1       /* Read lock.  */
 #define        __F_WRLCK       2       /* Write lock.  */
 #define        __F_UNLCK       3       /* Remove lock.  */
 
 
-#endif /* gnu/fcntl.h */
+#endif /* fcntlbits.h */