github.com/afumu/libc@v0.0.6/musl/include/fcntl.h (about)

     1  #ifndef	_FCNTL_H
     2  #define	_FCNTL_H
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  #include <features.h>
     9  
    10  #define __NEED_off_t
    11  #define __NEED_pid_t
    12  #define __NEED_mode_t
    13  
    14  #ifdef _GNU_SOURCE
    15  #define __NEED_size_t
    16  #define __NEED_ssize_t
    17  #define __NEED_struct_iovec
    18  #endif
    19  
    20  #include <bits/alltypes.h>
    21  
    22  #include <bits/fcntl.h>
    23  
    24  struct flock {
    25  	short l_type;
    26  	short l_whence;
    27  	off_t l_start;
    28  	off_t l_len;
    29  	pid_t l_pid;
    30  };
    31  
    32  int creat(const char *, mode_t);
    33  int fcntl(int, int, ...);
    34  int open(const char *, int, ...);
    35  int openat(int, const char *, int, ...);
    36  int posix_fadvise(int, off_t, off_t, int);
    37  int posix_fallocate(int, off_t, off_t);
    38  
    39  #define O_SEARCH   O_PATH
    40  #define O_EXEC     O_PATH
    41  #define O_TTY_INIT 0
    42  
    43  #define O_ACCMODE (03|O_SEARCH)
    44  #define O_RDONLY  00
    45  #define O_WRONLY  01
    46  #define O_RDWR    02
    47  
    48  #define F_OFD_GETLK 36
    49  #define F_OFD_SETLK 37
    50  #define F_OFD_SETLKW 38
    51  
    52  #define F_DUPFD_CLOEXEC 1030
    53  
    54  #define F_RDLCK 0
    55  #define F_WRLCK 1
    56  #define F_UNLCK 2
    57  
    58  #define FD_CLOEXEC 1
    59  
    60  #define AT_FDCWD (-100)
    61  #define AT_SYMLINK_NOFOLLOW 0x100
    62  #define AT_REMOVEDIR 0x200
    63  #define AT_SYMLINK_FOLLOW 0x400
    64  #define AT_EACCESS 0x200
    65  
    66  #define POSIX_FADV_NORMAL     0
    67  #define POSIX_FADV_RANDOM     1
    68  #define POSIX_FADV_SEQUENTIAL 2
    69  #define POSIX_FADV_WILLNEED   3
    70  #ifndef POSIX_FADV_DONTNEED
    71  #define POSIX_FADV_DONTNEED   4
    72  #define POSIX_FADV_NOREUSE    5
    73  #endif
    74  
    75  #undef SEEK_SET
    76  #undef SEEK_CUR
    77  #undef SEEK_END
    78  #define SEEK_SET 0
    79  #define SEEK_CUR 1
    80  #define SEEK_END 2
    81  
    82  #ifndef S_IRUSR
    83  #define S_ISUID 04000
    84  #define S_ISGID 02000
    85  #define S_ISVTX 01000
    86  #define S_IRUSR 0400
    87  #define S_IWUSR 0200
    88  #define S_IXUSR 0100
    89  #define S_IRWXU 0700
    90  #define S_IRGRP 0040
    91  #define S_IWGRP 0020
    92  #define S_IXGRP 0010
    93  #define S_IRWXG 0070
    94  #define S_IROTH 0004
    95  #define S_IWOTH 0002
    96  #define S_IXOTH 0001
    97  #define S_IRWXO 0007
    98  #endif
    99  
   100  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
   101  #define AT_NO_AUTOMOUNT 0x800
   102  #define AT_EMPTY_PATH 0x1000
   103  #define AT_STATX_SYNC_TYPE 0x6000
   104  #define AT_STATX_SYNC_AS_STAT 0x0000
   105  #define AT_STATX_FORCE_SYNC 0x2000
   106  #define AT_STATX_DONT_SYNC 0x4000
   107  #define AT_RECURSIVE 0x8000
   108  
   109  #define FAPPEND O_APPEND
   110  #define FFSYNC O_SYNC
   111  #define FASYNC O_ASYNC
   112  #define FNONBLOCK O_NONBLOCK
   113  #define FNDELAY O_NDELAY
   114  
   115  #define F_OK 0
   116  #define R_OK 4
   117  #define W_OK 2
   118  #define X_OK 1
   119  #define F_ULOCK 0
   120  #define F_LOCK  1
   121  #define F_TLOCK 2
   122  #define F_TEST  3
   123  
   124  #define F_SETLEASE	1024
   125  #define F_GETLEASE	1025
   126  #define F_NOTIFY	1026
   127  #define F_CANCELLK	1029
   128  #define F_SETPIPE_SZ	1031
   129  #define F_GETPIPE_SZ	1032
   130  #define F_ADD_SEALS	1033
   131  #define F_GET_SEALS	1034
   132  
   133  #define F_SEAL_SEAL	0x0001
   134  #define F_SEAL_SHRINK	0x0002
   135  #define F_SEAL_GROW	0x0004
   136  #define F_SEAL_WRITE	0x0008
   137  #define F_SEAL_FUTURE_WRITE	0x0010
   138  
   139  #define F_GET_RW_HINT		1035
   140  #define F_SET_RW_HINT		1036
   141  #define F_GET_FILE_RW_HINT	1037
   142  #define F_SET_FILE_RW_HINT	1038
   143  
   144  #define RWF_WRITE_LIFE_NOT_SET	0
   145  #define RWH_WRITE_LIFE_NONE	1
   146  #define RWH_WRITE_LIFE_SHORT	2
   147  #define RWH_WRITE_LIFE_MEDIUM	3
   148  #define RWH_WRITE_LIFE_LONG	4
   149  #define RWH_WRITE_LIFE_EXTREME	5
   150  
   151  #define DN_ACCESS	0x00000001
   152  #define DN_MODIFY	0x00000002
   153  #define DN_CREATE	0x00000004
   154  #define DN_DELETE	0x00000008
   155  #define DN_RENAME	0x00000010
   156  #define DN_ATTRIB	0x00000020
   157  #define DN_MULTISHOT	0x80000000
   158  
   159  int lockf(int, int, off_t);
   160  #endif
   161  
   162  #if defined(_GNU_SOURCE)
   163  #define F_OWNER_TID 0
   164  #define F_OWNER_PID 1
   165  #define F_OWNER_PGRP 2
   166  #define F_OWNER_GID 2
   167  struct file_handle {
   168  	unsigned handle_bytes;
   169  	int handle_type;
   170  	unsigned char f_handle[];
   171  };
   172  struct f_owner_ex {
   173  	int type;
   174  	pid_t pid;
   175  };
   176  #define FALLOC_FL_KEEP_SIZE 1
   177  #define FALLOC_FL_PUNCH_HOLE 2
   178  #define MAX_HANDLE_SZ 128
   179  #define SYNC_FILE_RANGE_WAIT_BEFORE 1
   180  #define SYNC_FILE_RANGE_WRITE 2
   181  #define SYNC_FILE_RANGE_WAIT_AFTER 4
   182  #define SPLICE_F_MOVE 1
   183  #define SPLICE_F_NONBLOCK 2
   184  #define SPLICE_F_MORE 4
   185  #define SPLICE_F_GIFT 8
   186  int fallocate(int, int, off_t, off_t);
   187  #define fallocate64 fallocate
   188  int name_to_handle_at(int, const char *, struct file_handle *, int *, int);
   189  int open_by_handle_at(int, struct file_handle *, int);
   190  ssize_t readahead(int, off_t, size_t);
   191  int sync_file_range(int, off_t, off_t, unsigned);
   192  ssize_t vmsplice(int, const struct iovec *, size_t, unsigned);
   193  ssize_t splice(int, off_t *, int, off_t *, size_t, unsigned);
   194  ssize_t tee(int, int, size_t, unsigned);
   195  #define loff_t off_t
   196  #endif
   197  
   198  #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
   199  #define F_GETLK64 F_GETLK
   200  #define F_SETLK64 F_SETLK
   201  #define F_SETLKW64 F_SETLKW
   202  #define flock64 flock
   203  #define open64 open
   204  #define openat64 openat
   205  #define creat64 creat
   206  #define lockf64 lockf
   207  #define posix_fadvise64 posix_fadvise
   208  #define posix_fallocate64 posix_fallocate
   209  #define off64_t off_t
   210  #endif
   211  
   212  #ifdef __cplusplus
   213  }
   214  #endif
   215  
   216  #endif