diff options
| author | Sablin Viacheslav <sjava1902@gmail.com> | 2024-11-05 01:42:48 +0300 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-11-13 08:55:55 +0000 |
| commit | 8acebd3f596375b3c8c34ee8f9000a344064295a (patch) | |
| tree | c88ca114db9c0f7875a6b79be0c2588f9257e829 /sys/linux | |
| parent | c352ddf895e4f5a5b7e8f7caa37f476c6926326f (diff) | |
sys/linux: add new ioctls for io_uring, dev_block and fs
Diffstat (limited to 'sys/linux')
| -rw-r--r-- | sys/linux/dev_block.txt | 1 | ||||
| -rw-r--r-- | sys/linux/dev_block.txt.const | 1 | ||||
| -rw-r--r-- | sys/linux/fs_ioctl.txt | 25 | ||||
| -rw-r--r-- | sys/linux/fs_ioctl.txt.const | 2 | ||||
| -rw-r--r-- | sys/linux/io_uring.txt | 56 | ||||
| -rw-r--r-- | sys/linux/io_uring.txt.const | 11 |
6 files changed, 89 insertions, 7 deletions
diff --git a/sys/linux/dev_block.txt b/sys/linux/dev_block.txt index 34e283164..f08fcac06 100644 --- a/sys/linux/dev_block.txt +++ b/sys/linux/dev_block.txt @@ -42,6 +42,7 @@ ioctl$BLKPG(fd fd_block, cmd const[BLKPG], arg ptr[in, blkpg_ioctl_arg]) ioctl$BLKRRPART(fd fd_block, cmd const[BLKRRPART], arg const[0]) ioctl$BLKGETSIZE(fd fd_block, cmd const[BLKGETSIZE], arg ptr[out, intptr]) ioctl$BLKGETSIZE64(fd fd_block, cmd const[BLKGETSIZE64], arg ptr[out, int64]) +ioctl$BLKGETDISKSEQ(fd fd_block, cmd const[BLKGETDISKSEQ], arg ptr[out, int64]) ioctl$HDIO_GETGEO(fd fd_block, cmd const[HDIO_GETGEO], arg ptr[out, hd_geometry]) diff --git a/sys/linux/dev_block.txt.const b/sys/linux/dev_block.txt.const index fd9879645..889c850b7 100644 --- a/sys/linux/dev_block.txt.const +++ b/sys/linux/dev_block.txt.const @@ -7,6 +7,7 @@ BLKBSZSET = 1074270833, 386:arm:1074008689, mips64le:ppc64le:2148012657 BLKDISCARD = 4727, mips64le:ppc64le:536875639 BLKFLSBUF = 4705, mips64le:ppc64le:536875617 BLKFRASET = 4708, mips64le:ppc64le:536875620 +BLKGETDISKSEQ = 2148012672, mips64le:ppc64le:1074270848 BLKGETSIZE = 4704, mips64le:ppc64le:536875616 BLKGETSIZE64 = 2148012658, 386:arm:2147750514, mips64le:ppc64le:1074270834 BLKIOMIN = 4728, mips64le:ppc64le:536875640 diff --git a/sys/linux/fs_ioctl.txt b/sys/linux/fs_ioctl.txt index 54b367232..a74b96a16 100644 --- a/sys/linux/fs_ioctl.txt +++ b/sys/linux/fs_ioctl.txt @@ -25,6 +25,8 @@ ioctl$FS_IOC_FSSETXATTR(fd fd, cmd const[FS_IOC_FSSETXATTR], arg ptr[in, fsxattr ioctl$FS_IOC_GETFSLABEL(fd fd, cmd const[FS_IOC_GETFSLABEL], arg ptr[out, array[const[0, int8], FSLABEL_MAX]]) ioctl$FS_IOC_SETFSLABEL(fd fd, cmd const[FS_IOC_SETFSLABEL], arg ptr[in, array[int8, FSLABEL_MAX]]) ioctl$FS_IOC_GETFSMAP(fd fd, cmd const[FS_IOC_GETFSMAP], arg ptr[in, fsmap_head]) +ioctl$FS_IOC_GETFSUUID(fd fd, cmd const[FS_IOC_GETFSUUID], arg ptr[out, fsuuid2]) +ioctl$FS_IOC_GETFSSYSFSPATH(fd fd, cmd const[FS_IOC_GETFSSYSFSPATH], arg ptr[out, fs_sysfs_path]) space_resv { l_type const[0, int16] @@ -76,12 +78,13 @@ fsxattr { } fiemap { - start int64 - len int64 - flags flags[fiemap_flags, int32] - mapped int32 - count len[extent, int32] - extent array[fiemap_extent] + start int64 + len int64 + flags flags[fiemap_flags, int32] + mapped int32 + count len[extent, int32] + reserved const[0, int32] + extent array[fiemap_extent] } fiemap_extent { @@ -116,3 +119,13 @@ fsmap { fs_flags = FS_SECRM_FL, FS_UNRM_FL, FS_COMPR_FL, FS_SYNC_FL, FS_IMMUTABLE_FL, FS_APPEND_FL, FS_NODUMP_FL, FS_NOATIME_FL, FS_DIRTY_FL, FS_COMPRBLK_FL, FS_NOCOMP_FL, FS_ENCRYPT_FL, FS_BTREE_FL, FS_INDEX_FL, FS_IMAGIC_FL, FS_JOURNAL_DATA_FL, FS_NOTAIL_FL, FS_DIRSYNC_FL, FS_TOPDIR_FL, FS_HUGE_FILE_FL, FS_EXTENT_FL, FS_VERITY_FL, FS_EA_INODE_FL, FS_EOFBLOCKS_FL, FS_NOCOW_FL, FS_DAX_FL, FS_INLINE_DATA_FL, FS_PROJINHERIT_FL, FS_CASEFOLD_FL, FS_RESERVED_FL define FSMAP_SIZE sizeof(struct fsmap) + +fsuuid2 { + len const[16, int8] + uuid array[int8, 16] +} + +fs_sysfs_path { + len len[name, int8] + name array[int8, 128] +} diff --git a/sys/linux/fs_ioctl.txt.const b/sys/linux/fs_ioctl.txt.const index 65b7da969..5564972f3 100644 --- a/sys/linux/fs_ioctl.txt.const +++ b/sys/linux/fs_ioctl.txt.const @@ -31,6 +31,8 @@ FS_IOC_FSSETXATTR = 1075599392, mips64le:ppc64le:2149341216 FS_IOC_GETFLAGS = 2148034049, 386:arm:2147771905, mips64le:ppc64le:1074292225 FS_IOC_GETFSLABEL = 2164298801, mips64le:ppc64le:1090556977 FS_IOC_GETFSMAP = 3233830971 +FS_IOC_GETFSSYSFSPATH = 2155943169, mips64le:ppc64le:1082201345 +FS_IOC_GETFSUUID = 2148603136, mips64le:ppc64le:1074861312 FS_IOC_GETVERSION = 2148038145, 386:arm:2147776001, mips64le:ppc64le:1074296321 FS_IOC_RESVSP = 1076910120, 386:1076647976, mips64le:ppc64le:2150651944 FS_IOC_SETFLAGS = 1074292226, 386:arm:1074030082, mips64le:ppc64le:2148034050 diff --git a/sys/linux/io_uring.txt b/sys/linux/io_uring.txt index cf2a46d88..0d63c0f50 100644 --- a/sys/linux/io_uring.txt +++ b/sys/linux/io_uring.txt @@ -57,8 +57,15 @@ io_uring_register$IORING_UNREGISTER_RING_FDS(fd fd_io_uring, opcode const[IORING io_uring_register$IORING_REGISTER_PBUF_RING(fd fd_io_uring, opcode const[IORING_REGISTER_PBUF_RING], arg ptr[in, io_uring_buf_reg], nr_args const[1]) io_uring_register$IORING_UNREGISTER_PBUF_RING(fd fd_io_uring, opcode const[IORING_UNREGISTER_PBUF_RING], arg ptr[in, io_uring_buf_reg], nr_args const[1]) # IORING_REGISTER_PBUF_RING, IORING_UNREGISTER_PBUF_RING >= 5.19 +io_uring_register$IORING_REGISTER_SYNC_CANCEL(fd fd_io_uring, opcode const[IORING_REGISTER_SYNC_CANCEL], arg ptr[in, io_uring_sync_cancel_reg], nr_args const[1]) +io_uring_register$IORING_REGISTER_FILE_ALLOC_RANGE(fd fd_io_uring, opcode const[IORING_REGISTER_FILE_ALLOC_RANGE], arg ptr[in, io_uring_file_index_range], nr_args const[0]) +io_uring_register$IORING_REGISTER_PBUF_STATUS(fd fd_io_uring, opcode const[IORING_REGISTER_PBUF_STATUS], arg ptr[in, io_uring_buf_status], nr_args const[1]) +io_uring_register$IORING_REGISTER_NAPI(fd fd_io_uring, opcode const[IORING_REGISTER_NAPI], arg ptr[in, io_uring_napi], nr_args const[1]) +io_uring_register$IORING_UNREGISTER_NAPI(fd fd_io_uring, opcode const[IORING_UNREGISTER_NAPI], arg ptr[out, io_uring_napi], nr_args const[1]) +io_uring_register$IORING_REGISTER_CLOCK(fd fd_io_uring, opcode const[IORING_REGISTER_CLOCK], arg ptr[in, io_uring_clock_register], nr_args const[0]) +io_uring_register$IORING_REGISTER_CLONE_BUFFERS(fd fd_io_uring, opcode const[IORING_REGISTER_CLONE_BUFFERS], arg ptr[in, io_uring_clone_buffers], nr_args const[1]) -io_uring_register_opcodes = IORING_REGISTER_BUFFERS, IORING_UNREGISTER_BUFFERS, IORING_REGISTER_FILES, IORING_UNREGISTER_FILES, IORING_REGISTER_EVENTFD, IORING_UNREGISTER_EVENTFD, IORING_REGISTER_FILES_UPDATE, IORING_REGISTER_EVENTFD_ASYNC, IORING_REGISTER_PROBE, IORING_REGISTER_PERSONALITY, IORING_UNREGISTER_PERSONALITY, IORING_REGISTER_RESTRICTIONS, IORING_REGISTER_ENABLE_RINGS, IORING_REGISTER_FILES2, IORING_REGISTER_FILES_UPDATE2, IORING_REGISTER_BUFFERS2, IORING_REGISTER_BUFFERS_UPDATE, IORING_REGISTER_IOWQ_AFF, IORING_UNREGISTER_IOWQ_AFF, IORING_REGISTER_IOWQ_MAX_WORKERS, IORING_REGISTER_RING_FDS, IORING_UNREGISTER_RING_FDS, IORING_REGISTER_PBUF_RING, IORING_UNREGISTER_PBUF_RING, IORING_REGISTER_SYNC_CANCEL, IORING_REGISTER_FILE_ALLOC_RANGE +io_uring_register_opcodes = IORING_REGISTER_BUFFERS, IORING_UNREGISTER_BUFFERS, IORING_REGISTER_FILES, IORING_UNREGISTER_FILES, IORING_REGISTER_EVENTFD, IORING_UNREGISTER_EVENTFD, IORING_REGISTER_FILES_UPDATE, IORING_REGISTER_EVENTFD_ASYNC, IORING_REGISTER_PROBE, IORING_REGISTER_PERSONALITY, IORING_UNREGISTER_PERSONALITY, IORING_REGISTER_RESTRICTIONS, IORING_REGISTER_ENABLE_RINGS, IORING_REGISTER_FILES2, IORING_REGISTER_FILES_UPDATE2, IORING_REGISTER_BUFFERS2, IORING_REGISTER_BUFFERS_UPDATE, IORING_REGISTER_IOWQ_AFF, IORING_UNREGISTER_IOWQ_AFF, IORING_REGISTER_IOWQ_MAX_WORKERS, IORING_REGISTER_RING_FDS, IORING_UNREGISTER_RING_FDS, IORING_REGISTER_PBUF_RING, IORING_UNREGISTER_PBUF_RING, IORING_REGISTER_SYNC_CANCEL, IORING_REGISTER_FILE_ALLOC_RANGE, IORING_REGISTER_PBUF_STATUS, IORING_REGISTER_NAPI, IORING_UNREGISTER_NAPI, IORING_REGISTER_CLOCK, IORING_REGISTER_CLONE_BUFFERS # The mmap'ed area for SQ and CQ rings are really the same -- the difference is # accounted for with the usage of offsets. @@ -489,3 +496,50 @@ io_uring_sqe_tee_misc { splice_fd_in fd pad_unused array[const[0, int64], 2] } + +io_uring_sync_cancel_reg { + addr int64 + fd fd + flags flags[iouring_async_cancel_flags, int32] + timeout kernel_timespec + opcode int8 + pad array[const[0, int8], 7] + pad2 array[const[0, int64], 3] +} + +kernel_timespec { + tv_sec int64 + tv_nsec int64 +} + +iouring_async_cancel_flags = IORING_ASYNC_CANCEL_ALL, IORING_ASYNC_CANCEL_FD, IORING_ASYNC_CANCEL_ANY, IORING_ASYNC_CANCEL_FD_FIXED, IORING_ASYNC_CANCEL_USERDATA, IORING_ASYNC_CANCEL_OP + +io_uring_file_index_range { + off int32 + len int32 + resv int64 +} + +io_uring_buf_status { + buf_group int32 (in) + head int32 (out) + resv array[const[0, int32], 8] +} + +io_uring_napi { + busy_poll_to int32 + prefer_busy_poll int8 + pad array[const[0, int8], 3] + resv const[0, int64] +} + +io_uring_clock_register { + clockid flags[clock_type, int32] + resv array[const[0, int32], 3] +} + +io_uring_clone_buffers { + src_fd fd + flags const[1, int32] + pad array[const[0, int32], 6] +} diff --git a/sys/linux/io_uring.txt.const b/sys/linux/io_uring.txt.const index e6781da71..6cbf37efd 100644 --- a/sys/linux/io_uring.txt.const +++ b/sys/linux/io_uring.txt.const @@ -9,6 +9,12 @@ CQ_TAIL_OFFSET = 192 EPOLL_CTL_ADD = 1 EPOLL_CTL_DEL = 2 EPOLL_CTL_MOD = 3 +IORING_ASYNC_CANCEL_ALL = 1 +IORING_ASYNC_CANCEL_ANY = 4 +IORING_ASYNC_CANCEL_FD = 2 +IORING_ASYNC_CANCEL_FD_FIXED = 8 +IORING_ASYNC_CANCEL_OP = 32 +IORING_ASYNC_CANCEL_USERDATA = 16 IORING_ENTER_EXT_ARG = 8 IORING_ENTER_GETEVENTS = 1 IORING_ENTER_REGISTERED_RING = 16 @@ -76,6 +82,8 @@ IORING_RECV_MULTISHOT = 2 IORING_REGISTER_BUFFERS = 0 IORING_REGISTER_BUFFERS2 = 15 IORING_REGISTER_BUFFERS_UPDATE = 16 +IORING_REGISTER_CLOCK = 29 +IORING_REGISTER_CLONE_BUFFERS = 30 IORING_REGISTER_ENABLE_RINGS = 12 IORING_REGISTER_EVENTFD = 4 IORING_REGISTER_EVENTFD_ASYNC = 7 @@ -86,7 +94,9 @@ IORING_REGISTER_FILES_UPDATE2 = 14 IORING_REGISTER_FILE_ALLOC_RANGE = 25 IORING_REGISTER_IOWQ_AFF = 17 IORING_REGISTER_IOWQ_MAX_WORKERS = 19 +IORING_REGISTER_NAPI = 27 IORING_REGISTER_PBUF_RING = 22 +IORING_REGISTER_PBUF_STATUS = 26 IORING_REGISTER_PERSONALITY = 9 IORING_REGISTER_PROBE = 8 IORING_REGISTER_RESTRICTIONS = 11 @@ -116,6 +126,7 @@ IORING_UNREGISTER_BUFFERS = 1 IORING_UNREGISTER_EVENTFD = 5 IORING_UNREGISTER_FILES = 3 IORING_UNREGISTER_IOWQ_AFF = 18 +IORING_UNREGISTER_NAPI = 28 IORING_UNREGISTER_PBUF_RING = 23 IORING_UNREGISTER_PERSONALITY = 10 IORING_UNREGISTER_RING_FDS = 21 |
