LCOV - code coverage report
Current view: top level - include/asm-generic - fcntl.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 1 100.0 %
Date: 2017-01-25 Functions: 0 0 -

          Line data    Source code
       1             : #ifndef _ASM_GENERIC_FCNTL_H
       2             : #define _ASM_GENERIC_FCNTL_H
       3             : 
       4             : #include <linux/types.h>
       5             : 
       6             : #define O_ACCMODE       00000003
       7             : #define O_RDONLY        00000000
       8             : #define O_WRONLY        00000001
       9             : #define O_RDWR          00000002
      10             : #ifndef O_CREAT
      11             : #define O_CREAT         00000100        /* not fcntl */
      12             : #endif
      13             : #ifndef O_EXCL
      14             : #define O_EXCL          00000200        /* not fcntl */
      15             : #endif
      16             : #ifndef O_NOCTTY
      17             : #define O_NOCTTY        00000400        /* not fcntl */
      18             : #endif
      19             : #ifndef O_TRUNC
      20             : #define O_TRUNC         00001000        /* not fcntl */
      21             : #endif
      22             : #ifndef O_APPEND
      23             : #define O_APPEND        00002000
      24             : #endif
      25             : #ifndef O_NONBLOCK
      26             : #define O_NONBLOCK      00004000
      27             : #endif
      28             : #ifndef O_DSYNC
      29             : #define O_DSYNC         00010000        /* used to be O_SYNC, see below */
      30             : #endif
      31             : #ifndef FASYNC
      32             : #define FASYNC          00020000        /* fcntl, for BSD compatibility */
      33             : #endif
      34             : #ifndef O_DIRECT
      35             : #define O_DIRECT        00040000        /* direct disk access hint */
      36             : #endif
      37             : #ifndef O_LARGEFILE
      38             : #define O_LARGEFILE     00100000
      39             : #endif
      40             : #ifndef O_DIRECTORY
      41             : #define O_DIRECTORY     00200000        /* must be a directory */
      42             : #endif
      43             : #ifndef O_NOFOLLOW
      44             : #define O_NOFOLLOW      00400000        /* don't follow links */
      45             : #endif
      46             : #ifndef O_NOATIME
      47             : #define O_NOATIME       01000000
      48             : #endif
      49             : #ifndef O_CLOEXEC
      50             : #define O_CLOEXEC       02000000        /* set close_on_exec */
      51             : #endif
      52             : 
      53             : /*
      54             :  * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
      55             :  * the O_SYNC flag.  We continue to use the existing numerical value
      56             :  * for O_DSYNC semantics now, but using the correct symbolic name for it.
      57             :  * This new value is used to request true Posix O_SYNC semantics.  It is
      58             :  * defined in this strange way to make sure applications compiled against
      59             :  * new headers get at least O_DSYNC semantics on older kernels.
      60             :  *
      61             :  * This has the nice side-effect that we can simply test for O_DSYNC
      62             :  * wherever we do not care if O_DSYNC or O_SYNC is used.
      63             :  *
      64             :  * Note: __O_SYNC must never be used directly.
      65             :  */
      66             : #ifndef O_SYNC
      67             : #define __O_SYNC        04000000
      68             : #define O_SYNC          (__O_SYNC|O_DSYNC)
      69             : #endif
      70             : 
      71             : #ifndef O_NDELAY
      72             : #define O_NDELAY        O_NONBLOCK
      73             : #endif
      74             : 
      75             : #define F_DUPFD         0       /* dup */
      76             : #define F_GETFD         1       /* get close_on_exec */
      77             : #define F_SETFD         2       /* set/clear close_on_exec */
      78             : #define F_GETFL         3       /* get file->f_flags */
      79             : #define F_SETFL         4       /* set file->f_flags */
      80             : #ifndef F_GETLK
      81             : #define F_GETLK         5
      82             : #define F_SETLK         6
      83             : #define F_SETLKW        7
      84             : #endif
      85             : #ifndef F_SETOWN
      86             : #define F_SETOWN        8       /* for sockets. */
      87             : #define F_GETOWN        9       /* for sockets. */
      88             : #endif
      89             : #ifndef F_SETSIG
      90             : #define F_SETSIG        10      /* for sockets. */
      91             : #define F_GETSIG        11      /* for sockets. */
      92             : #endif
      93             : 
      94             : #ifndef CONFIG_64BIT
      95             : #ifndef F_GETLK64
      96             : #define F_GETLK64       12      /*  using 'struct flock64' */
      97             : #define F_SETLK64       13
      98             : #define F_SETLKW64      14
      99             : #endif
     100             : #endif
     101             : 
     102             : #ifndef F_SETOWN_EX
     103             : #define F_SETOWN_EX     15
     104             : #define F_GETOWN_EX     16
     105             : #endif
     106             : 
     107             : #define F_OWNER_TID     0
     108             : #define F_OWNER_PID     1
     109             : #define F_OWNER_PGRP    2
     110             : 
     111             : struct f_owner_ex {
     112             :         int     type;
     113             :         pid_t   pid;
     114             : };
     115             : 
     116             : /* for F_[GET|SET]FL */
     117             : #define FD_CLOEXEC      1       /* actually anything with low bit set goes */
     118             : 
     119             : /* for posix fcntl() and lockf() */
     120             : #ifndef F_RDLCK
     121             : #define F_RDLCK         0
     122             : #define F_WRLCK         1
     123             : #define F_UNLCK         2
     124             : #endif
     125             : 
     126             : /* for old implementation of bsd flock () */
     127             : #ifndef F_EXLCK
     128             : #define F_EXLCK         4       /* or 3 */
     129             : #define F_SHLCK         8       /* or 4 */
     130             : #endif
     131             : 
     132             : /* for leases */
     133             : #ifndef F_INPROGRESS
     134             : #define F_INPROGRESS    16
     135             : #endif
     136             : 
     137             : /* operations for bsd flock(), also used by the kernel implementation */
     138             : #define LOCK_SH         1       /* shared lock */
     139             : #define LOCK_EX         2       /* exclusive lock */
     140             : #define LOCK_NB         4       /* or'd with one of the above to prevent
     141             :                                    blocking */
     142             : #define LOCK_UN         8       /* remove lock */
     143             : 
     144             : #define LOCK_MAND       32      /* This is a mandatory flock ... */
     145             : #define LOCK_READ       64      /* which allows concurrent read operations */
     146             : #define LOCK_WRITE      128     /* which allows concurrent write operations */
     147             : #define LOCK_RW         192     /* which allows concurrent read & write ops */
     148             : 
     149             : #define F_LINUX_SPECIFIC_BASE   1024
     150             : 
     151             : #ifndef HAVE_ARCH_STRUCT_FLOCK
     152             : #ifndef __ARCH_FLOCK_PAD
     153             : #define __ARCH_FLOCK_PAD
     154             : #endif
     155             : 
     156             : struct flock {
     157             :         short   l_type;
     158             :         short   l_whence;
     159             :         __kernel_off_t  l_start;
     160             :         __kernel_off_t  l_len;
     161             :         __kernel_pid_t  l_pid;
     162             :         __ARCH_FLOCK_PAD
     163           2 : };
     164             : #endif
     165             : 
     166             : #ifndef CONFIG_64BIT
     167             : 
     168             : #ifndef HAVE_ARCH_STRUCT_FLOCK64
     169             : #ifndef __ARCH_FLOCK64_PAD
     170             : #define __ARCH_FLOCK64_PAD
     171             : #endif
     172             : 
     173             : struct flock64 {
     174             :         short  l_type;
     175             :         short  l_whence;
     176             :         __kernel_loff_t l_start;
     177             :         __kernel_loff_t l_len;
     178             :         __kernel_pid_t  l_pid;
     179             :         __ARCH_FLOCK64_PAD
     180             : };
     181             : #endif
     182             : #endif /* !CONFIG_64BIT */
     183             : 
     184             : #endif /* _ASM_GENERIC_FCNTL_H */

Generated by: LCOV version 1.10