1 /* 2 * This file is auto-generated. Modifications will be lost. 3 * 4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5 * for more information. 6 */ 7 #ifndef _UAPI_LINUX_FS_H 8 #define _UAPI_LINUX_FS_H 9 #include <linux/limits.h> 10 #include <linux/ioctl.h> 11 #include <linux/types.h> 12 #include <linux/fscrypt.h> 13 #include <linux/mount.h> 14 #undef NR_OPEN 15 #define INR_OPEN_CUR 1024 16 #define INR_OPEN_MAX 4096 17 #define BLOCK_SIZE_BITS 10 18 #define BLOCK_SIZE (1 << BLOCK_SIZE_BITS) 19 #define SEEK_SET 0 20 #define SEEK_CUR 1 21 #define SEEK_END 2 22 #define SEEK_DATA 3 23 #define SEEK_HOLE 4 24 #define SEEK_MAX SEEK_HOLE 25 #define RENAME_NOREPLACE (1 << 0) 26 #define RENAME_EXCHANGE (1 << 1) 27 #define RENAME_WHITEOUT (1 << 2) 28 struct file_clone_range { 29 __s64 src_fd; 30 __u64 src_offset; 31 __u64 src_length; 32 __u64 dest_offset; 33 }; 34 struct fstrim_range { 35 __u64 start; 36 __u64 len; 37 __u64 minlen; 38 }; 39 struct fsuuid2 { 40 __u8 len; 41 __u8 uuid[16]; 42 }; 43 struct fs_sysfs_path { 44 __u8 len; 45 __u8 name[128]; 46 }; 47 #define FILE_DEDUPE_RANGE_SAME 0 48 #define FILE_DEDUPE_RANGE_DIFFERS 1 49 struct file_dedupe_range_info { 50 __s64 dest_fd; 51 __u64 dest_offset; 52 __u64 bytes_deduped; 53 __s32 status; 54 __u32 reserved; 55 }; 56 struct file_dedupe_range { 57 __u64 src_offset; 58 __u64 src_length; 59 __u16 dest_count; 60 __u16 reserved1; 61 __u32 reserved2; 62 struct file_dedupe_range_info info[]; 63 }; 64 struct files_stat_struct { 65 unsigned long nr_files; 66 unsigned long nr_free_files; 67 unsigned long max_files; 68 }; 69 struct inodes_stat_t { 70 long nr_inodes; 71 long nr_unused; 72 long dummy[5]; 73 }; 74 #define NR_FILE 8192 75 struct fsxattr { 76 __u32 fsx_xflags; 77 __u32 fsx_extsize; 78 __u32 fsx_nextents; 79 __u32 fsx_projid; 80 __u32 fsx_cowextsize; 81 unsigned char fsx_pad[8]; 82 }; 83 #define FS_XFLAG_REALTIME 0x00000001 84 #define FS_XFLAG_PREALLOC 0x00000002 85 #define FS_XFLAG_IMMUTABLE 0x00000008 86 #define FS_XFLAG_APPEND 0x00000010 87 #define FS_XFLAG_SYNC 0x00000020 88 #define FS_XFLAG_NOATIME 0x00000040 89 #define FS_XFLAG_NODUMP 0x00000080 90 #define FS_XFLAG_RTINHERIT 0x00000100 91 #define FS_XFLAG_PROJINHERIT 0x00000200 92 #define FS_XFLAG_NOSYMLINKS 0x00000400 93 #define FS_XFLAG_EXTSIZE 0x00000800 94 #define FS_XFLAG_EXTSZINHERIT 0x00001000 95 #define FS_XFLAG_NODEFRAG 0x00002000 96 #define FS_XFLAG_FILESTREAM 0x00004000 97 #define FS_XFLAG_DAX 0x00008000 98 #define FS_XFLAG_COWEXTSIZE 0x00010000 99 #define FS_XFLAG_HASATTR 0x80000000 100 #define BLKROSET _IO(0x12, 93) 101 #define BLKROGET _IO(0x12, 94) 102 #define BLKRRPART _IO(0x12, 95) 103 #define BLKGETSIZE _IO(0x12, 96) 104 #define BLKFLSBUF _IO(0x12, 97) 105 #define BLKRASET _IO(0x12, 98) 106 #define BLKRAGET _IO(0x12, 99) 107 #define BLKFRASET _IO(0x12, 100) 108 #define BLKFRAGET _IO(0x12, 101) 109 #define BLKSECTSET _IO(0x12, 102) 110 #define BLKSECTGET _IO(0x12, 103) 111 #define BLKSSZGET _IO(0x12, 104) 112 #define BLKBSZGET _IOR(0x12, 112, size_t) 113 #define BLKBSZSET _IOW(0x12, 113, size_t) 114 #define BLKGETSIZE64 _IOR(0x12, 114, size_t) 115 #define BLKTRACESETUP _IOWR(0x12, 115, struct blk_user_trace_setup) 116 #define BLKTRACESTART _IO(0x12, 116) 117 #define BLKTRACESTOP _IO(0x12, 117) 118 #define BLKTRACETEARDOWN _IO(0x12, 118) 119 #define BLKDISCARD _IO(0x12, 119) 120 #define BLKIOMIN _IO(0x12, 120) 121 #define BLKIOOPT _IO(0x12, 121) 122 #define BLKALIGNOFF _IO(0x12, 122) 123 #define BLKPBSZGET _IO(0x12, 123) 124 #define BLKDISCARDZEROES _IO(0x12, 124) 125 #define BLKSECDISCARD _IO(0x12, 125) 126 #define BLKROTATIONAL _IO(0x12, 126) 127 #define BLKZEROOUT _IO(0x12, 127) 128 #define BLKGETDISKSEQ _IOR(0x12, 128, __u64) 129 #define BMAP_IOCTL 1 130 #define FIBMAP _IO(0x00, 1) 131 #define FIGETBSZ _IO(0x00, 2) 132 #define FIFREEZE _IOWR('X', 119, int) 133 #define FITHAW _IOWR('X', 120, int) 134 #define FITRIM _IOWR('X', 121, struct fstrim_range) 135 #define FICLONE _IOW(0x94, 9, int) 136 #define FICLONERANGE _IOW(0x94, 13, struct file_clone_range) 137 #define FIDEDUPERANGE _IOWR(0x94, 54, struct file_dedupe_range) 138 #define FSLABEL_MAX 256 139 #define FS_IOC_GETFLAGS _IOR('f', 1, long) 140 #define FS_IOC_SETFLAGS _IOW('f', 2, long) 141 #define FS_IOC_GETVERSION _IOR('v', 1, long) 142 #define FS_IOC_SETVERSION _IOW('v', 2, long) 143 #define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) 144 #define FS_IOC32_GETFLAGS _IOR('f', 1, int) 145 #define FS_IOC32_SETFLAGS _IOW('f', 2, int) 146 #define FS_IOC32_GETVERSION _IOR('v', 1, int) 147 #define FS_IOC32_SETVERSION _IOW('v', 2, int) 148 #define FS_IOC_FSGETXATTR _IOR('X', 31, struct fsxattr) 149 #define FS_IOC_FSSETXATTR _IOW('X', 32, struct fsxattr) 150 #define FS_IOC_GETFSLABEL _IOR(0x94, 49, char[FSLABEL_MAX]) 151 #define FS_IOC_SETFSLABEL _IOW(0x94, 50, char[FSLABEL_MAX]) 152 #define FS_IOC_GETFSUUID _IOR(0x15, 0, struct fsuuid2) 153 #define FS_IOC_GETFSSYSFSPATH _IOR(0x15, 1, struct fs_sysfs_path) 154 #define FS_SECRM_FL 0x00000001 155 #define FS_UNRM_FL 0x00000002 156 #define FS_COMPR_FL 0x00000004 157 #define FS_SYNC_FL 0x00000008 158 #define FS_IMMUTABLE_FL 0x00000010 159 #define FS_APPEND_FL 0x00000020 160 #define FS_NODUMP_FL 0x00000040 161 #define FS_NOATIME_FL 0x00000080 162 #define FS_DIRTY_FL 0x00000100 163 #define FS_COMPRBLK_FL 0x00000200 164 #define FS_NOCOMP_FL 0x00000400 165 #define FS_ENCRYPT_FL 0x00000800 166 #define FS_BTREE_FL 0x00001000 167 #define FS_INDEX_FL 0x00001000 168 #define FS_IMAGIC_FL 0x00002000 169 #define FS_JOURNAL_DATA_FL 0x00004000 170 #define FS_NOTAIL_FL 0x00008000 171 #define FS_DIRSYNC_FL 0x00010000 172 #define FS_TOPDIR_FL 0x00020000 173 #define FS_HUGE_FILE_FL 0x00040000 174 #define FS_EXTENT_FL 0x00080000 175 #define FS_VERITY_FL 0x00100000 176 #define FS_EA_INODE_FL 0x00200000 177 #define FS_EOFBLOCKS_FL 0x00400000 178 #define FS_NOCOW_FL 0x00800000 179 #define FS_DAX_FL 0x02000000 180 #define FS_INLINE_DATA_FL 0x10000000 181 #define FS_PROJINHERIT_FL 0x20000000 182 #define FS_CASEFOLD_FL 0x40000000 183 #define FS_RESERVED_FL 0x80000000 184 #define FS_FL_USER_VISIBLE 0x0003DFFF 185 #define FS_FL_USER_MODIFIABLE 0x000380FF 186 #define SYNC_FILE_RANGE_WAIT_BEFORE 1 187 #define SYNC_FILE_RANGE_WRITE 2 188 #define SYNC_FILE_RANGE_WAIT_AFTER 4 189 #define SYNC_FILE_RANGE_WRITE_AND_WAIT (SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WAIT_AFTER) 190 typedef int __bitwise __kernel_rwf_t; 191 #define RWF_HIPRI (( __kernel_rwf_t) 0x00000001) 192 #define RWF_DSYNC (( __kernel_rwf_t) 0x00000002) 193 #define RWF_SYNC (( __kernel_rwf_t) 0x00000004) 194 #define RWF_NOWAIT (( __kernel_rwf_t) 0x00000008) 195 #define RWF_APPEND (( __kernel_rwf_t) 0x00000010) 196 #define RWF_NOAPPEND (( __kernel_rwf_t) 0x00000020) 197 #define RWF_SUPPORTED (RWF_HIPRI | RWF_DSYNC | RWF_SYNC | RWF_NOWAIT | RWF_APPEND | RWF_NOAPPEND) 198 #define PAGEMAP_SCAN _IOWR('f', 16, struct pm_scan_arg) 199 #define PAGE_IS_WPALLOWED (1 << 0) 200 #define PAGE_IS_WRITTEN (1 << 1) 201 #define PAGE_IS_FILE (1 << 2) 202 #define PAGE_IS_PRESENT (1 << 3) 203 #define PAGE_IS_SWAPPED (1 << 4) 204 #define PAGE_IS_PFNZERO (1 << 5) 205 #define PAGE_IS_HUGE (1 << 6) 206 #define PAGE_IS_SOFT_DIRTY (1 << 7) 207 struct page_region { 208 __u64 start; 209 __u64 end; 210 __u64 categories; 211 }; 212 #define PM_SCAN_WP_MATCHING (1 << 0) 213 #define PM_SCAN_CHECK_WPASYNC (1 << 1) 214 struct pm_scan_arg { 215 __u64 size; 216 __u64 flags; 217 __u64 start; 218 __u64 end; 219 __u64 walk_end; 220 __u64 vec; 221 __u64 vec_len; 222 __u64 max_pages; 223 __u64 category_inverted; 224 __u64 category_mask; 225 __u64 category_anyof_mask; 226 __u64 return_mask; 227 }; 228 #endif 229