X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Ffcntl.h;h=515f255d4154f269f33c9f832dc5f40c871224b8;hb=0a7b4323b0f2b944dbd47a813c0c6e6813e7fd67;hp=d0c38becb9b82a08d994ea689c810ed89051bd17;hpb=120e402de66bf0791a4f76dd1ee0e089809814f3;p=musl diff --git a/include/fcntl.h b/include/fcntl.h index d0c38bec..515f255d 100644 --- a/include/fcntl.h +++ b/include/fcntl.h @@ -21,8 +21,7 @@ extern "C" { #include -struct flock -{ +struct flock { short l_type; short l_whence; off_t l_start; @@ -37,15 +36,19 @@ int openat(int, const char *, int, ...); int posix_fadvise(int, off_t, off_t, int); int posix_fallocate(int, off_t, off_t); -#define O_SEARCH 010000000 -#define O_EXEC 010000000 -#define O_PATH 010000000 +#define O_SEARCH O_PATH +#define O_EXEC O_PATH +#define O_TTY_INIT 0 #define O_ACCMODE (03|O_SEARCH) #define O_RDONLY 00 #define O_WRONLY 01 #define O_RDWR 02 +#define F_OFD_GETLK 36 +#define F_OFD_SETLK 37 +#define F_OFD_SETLKW 38 + #define F_DUPFD_CLOEXEC 1030 #define F_RDLCK 0 @@ -64,8 +67,10 @@ int posix_fallocate(int, off_t, off_t); #define POSIX_FADV_RANDOM 1 #define POSIX_FADV_SEQUENTIAL 2 #define POSIX_FADV_WILLNEED 3 +#ifndef POSIX_FADV_DONTNEED #define POSIX_FADV_DONTNEED 4 #define POSIX_FADV_NOREUSE 5 +#endif #undef SEEK_SET #undef SEEK_CUR @@ -93,8 +98,16 @@ int posix_fallocate(int, off_t, off_t); #endif #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +#define AT_NO_AUTOMOUNT 0x800 +#define AT_EMPTY_PATH 0x1000 +#define AT_STATX_SYNC_TYPE 0x6000 +#define AT_STATX_SYNC_AS_STAT 0x0000 +#define AT_STATX_FORCE_SYNC 0x2000 +#define AT_STATX_DONT_SYNC 0x4000 +#define AT_RECURSIVE 0x8000 + #define FAPPEND O_APPEND -#define FFSYNC O_FSYNC +#define FFSYNC O_SYNC #define FASYNC O_ASYNC #define FNONBLOCK O_NONBLOCK #define FNDELAY O_NDELAY @@ -108,22 +121,40 @@ int posix_fallocate(int, off_t, off_t); #define F_TLOCK 2 #define F_TEST 3 -#define F_LINUX_SPECIFIC_BASE 1024 -#define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0) -#define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1) -#define F_NOTIFY (F_LINUX_SPECIFIC_BASE + 2) -#define F_CANCELLK (F_LINUX_SPECIFIC_BASE + 5) -#define F_DUPFD_CLOEXEC (F_LINUX_SPECIFIC_BASE + 6) -#define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7) -#define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8) - -#define DN_ACCESS 0x00000001 -#define DN_MODIFY 0x00000002 -#define DN_CREATE 0x00000004 -#define DN_DELETE 0x00000008 -#define DN_RENAME 0x00000010 -#define DN_ATTRIB 0x00000020 -#define DN_MULTISHOT 0x80000000 +#define F_SETLEASE 1024 +#define F_GETLEASE 1025 +#define F_NOTIFY 1026 +#define F_CANCELLK 1029 +#define F_SETPIPE_SZ 1031 +#define F_GETPIPE_SZ 1032 +#define F_ADD_SEALS 1033 +#define F_GET_SEALS 1034 + +#define F_SEAL_SEAL 0x0001 +#define F_SEAL_SHRINK 0x0002 +#define F_SEAL_GROW 0x0004 +#define F_SEAL_WRITE 0x0008 +#define F_SEAL_FUTURE_WRITE 0x0010 + +#define F_GET_RW_HINT 1035 +#define F_SET_RW_HINT 1036 +#define F_GET_FILE_RW_HINT 1037 +#define F_SET_FILE_RW_HINT 1038 + +#define RWF_WRITE_LIFE_NOT_SET 0 +#define RWH_WRITE_LIFE_NONE 1 +#define RWH_WRITE_LIFE_SHORT 2 +#define RWH_WRITE_LIFE_MEDIUM 3 +#define RWH_WRITE_LIFE_LONG 4 +#define RWH_WRITE_LIFE_EXTREME 5 + +#define DN_ACCESS 0x00000001 +#define DN_MODIFY 0x00000002 +#define DN_CREATE 0x00000004 +#define DN_DELETE 0x00000008 +#define DN_RENAME 0x00000010 +#define DN_ATTRIB 0x00000020 +#define DN_MULTISHOT 0x80000000 int lockf(int, int, off_t); #endif @@ -133,12 +164,18 @@ int lockf(int, int, off_t); #define F_OWNER_PID 1 #define F_OWNER_PGRP 2 #define F_OWNER_GID 2 +struct file_handle { + unsigned handle_bytes; + int handle_type; + unsigned char f_handle[]; +}; struct f_owner_ex { int type; pid_t pid; }; #define FALLOC_FL_KEEP_SIZE 1 #define FALLOC_FL_PUNCH_HOLE 2 +#define MAX_HANDLE_SZ 128 #define SYNC_FILE_RANGE_WAIT_BEFORE 1 #define SYNC_FILE_RANGE_WRITE 2 #define SYNC_FILE_RANGE_WAIT_AFTER 4 @@ -147,6 +184,9 @@ struct f_owner_ex { #define SPLICE_F_MORE 4 #define SPLICE_F_GIFT 8 int fallocate(int, int, off_t, off_t); +#define fallocate64 fallocate +int name_to_handle_at(int, const char *, struct file_handle *, int *, int); +int open_by_handle_at(int, struct file_handle *, int); ssize_t readahead(int, off_t, size_t); int sync_file_range(int, off_t, off_t, unsigned); ssize_t vmsplice(int, const struct iovec *, size_t, unsigned); @@ -155,7 +195,11 @@ ssize_t tee(int, int, size_t, unsigned); #define loff_t off_t #endif -#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE) +#if defined(_LARGEFILE64_SOURCE) +#define F_GETLK64 F_GETLK +#define F_SETLK64 F_SETLK +#define F_SETLKW64 F_SETLKW +#define flock64 flock #define open64 open #define openat64 openat #define creat64 creat