authorgravatar for dev@sgregoratto.meStephen Gregoratto <dev@sgregoratto.me> 2025-12-24 13:10:38+11:00
committergravatar for dev@sgregoratto.meStephen Gregoratto <dev@sgregoratto.me> 2025-12-24 13:10:38+11:00
logc3f2de5e519926eb0029062fe8e782a6f9df9c05
tree137740d5ff2f6197afbca44ca74593d8f98fa6ce
parent985a3565c6130c7279319e9c36642f0b958e6944

Linux: Update syscall list for 6.17

The 6.17 kernel added[1] syscalls for getting/setting certain file flags and attributes. It's meant to be a more extensible replacement for these ioctl's: - `FS_IOC_GETFLAGS`/`FS_IOC_SETFLAGS`. - `FS_IOC_FSGETXATTR`/`FS_IOC_FSSETXATTR`. The definitions of these calls are as follows: ```zig const file_attr = extern struct { /// Extended flags that apply to this file. (get/set). xflags: u64, /// Preferred extent allocation size, in bytes. (get/set). extsize: u32, /// One of: /// - The number of data extents in this file. /// - If `FS_IOC_FSGETXATTRA` is set, the number of extended attribute events in the file. /// (get) nextents: u32, /// Project Identifier (get/set). projid: u32, /// Preferred extent allocation size for CoW operations, in bytes (get/set). cowextsize: u32, }; // size=@sizeOf(file_attr) fn file_getattr(dirfd: fd_t, path: [*:0], fattr: *file_attr, size: usize, at_flags: u32) {} fn file_setattr(dirfd: fd_t, path: [*:0], fattr: *file_attr, size: usize, at_flags: u32) {} ``` Users need to set/check `xflags` with the `FS_XFLAG` flags defined in `linux/fs.h`. `ioctl_xfs_fsgetxattr(2)` has more information about the type of information one can retrieve. [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=57fcb7d930d8f00f383e995aeebdcd2b416a187a

1 files changed, 47 insertions(+), 1 deletions(-)

lib/std/os/linux/syscalls.zig+47-1
......@@ -1,6 +1,6 @@
11// This file is automatically generated, DO NOT edit it manually.
22// See tools/generate_linux_syscalls.zig for more info.
3// This list current as of kernel: 6.16.0
3// This list current as of kernel: 6.18.2
44
55pub const X86 = enum(usize) {
66 restart_syscall = 0,
......@@ -460,6 +460,8 @@ pub const X86 = enum(usize) {
460460 listxattrat = 465,
461461 removexattrat = 466,
462462 open_tree_attr = 467,
463 file_getattr = 468,
464 file_setattr = 469,
463465};
464466
465467pub const X64 = enum(usize) {
......@@ -799,6 +801,7 @@ pub const X64 = enum(usize) {
799801 io_pgetevents = 333,
800802 rseq = 334,
801803 uretprobe = 335,
804 uprobe = 336,
802805 pidfd_send_signal = 424,
803806 io_uring_setup = 425,
804807 io_uring_enter = 426,
......@@ -843,6 +846,8 @@ pub const X64 = enum(usize) {
843846 listxattrat = 465,
844847 removexattrat = 466,
845848 open_tree_attr = 467,
849 file_getattr = 468,
850 file_setattr = 469,
846851};
847852
848853pub const X32 = enum(usize) {
......@@ -1135,6 +1140,7 @@ pub const X32 = enum(usize) {
11351140 io_pgetevents = 1073742157,
11361141 rseq = 1073742158,
11371142 uretprobe = 1073742159,
1143 uprobe = 1073742160,
11381144 pidfd_send_signal = 1073742248,
11391145 io_uring_setup = 1073742249,
11401146 io_uring_enter = 1073742250,
......@@ -1179,6 +1185,8 @@ pub const X32 = enum(usize) {
11791185 listxattrat = 1073742289,
11801186 removexattrat = 1073742290,
11811187 open_tree_attr = 1073742291,
1188 file_getattr = 1073742292,
1189 file_setattr = 1073742293,
11821190 rt_sigaction = 1073742336,
11831191 rt_sigreturn = 1073742337,
11841192 ioctl = 1073742338,
......@@ -1640,6 +1648,8 @@ pub const Arm = enum(usize) {
16401648 listxattrat = 465,
16411649 removexattrat = 466,
16421650 open_tree_attr = 467,
1651 file_getattr = 468,
1652 file_setattr = 469,
16431653
16441654 breakpoint = arm_base + 1,
16451655 cacheflush = arm_base + 2,
......@@ -2086,6 +2096,8 @@ pub const Sparc = enum(usize) {
20862096 listxattrat = 465,
20872097 removexattrat = 466,
20882098 open_tree_attr = 467,
2099 file_getattr = 468,
2100 file_setattr = 469,
20892101};
20902102
20912103pub const Sparc64 = enum(usize) {
......@@ -2488,6 +2500,8 @@ pub const Sparc64 = enum(usize) {
24882500 listxattrat = 465,
24892501 removexattrat = 466,
24902502 open_tree_attr = 467,
2503 file_getattr = 468,
2504 file_setattr = 469,
24912505};
24922506
24932507pub const M68k = enum(usize) {
......@@ -2930,6 +2944,8 @@ pub const M68k = enum(usize) {
29302944 listxattrat = 465,
29312945 removexattrat = 466,
29322946 open_tree_attr = 467,
2947 file_getattr = 468,
2948 file_setattr = 469,
29332949};
29342950
29352951pub const MipsO32 = enum(usize) {
......@@ -3366,6 +3382,8 @@ pub const MipsO32 = enum(usize) {
33663382 listxattrat = 4465,
33673383 removexattrat = 4466,
33683384 open_tree_attr = 4467,
3385 file_getattr = 4468,
3386 file_setattr = 4469,
33693387};
33703388
33713389pub const MipsN64 = enum(usize) {
......@@ -3738,6 +3756,8 @@ pub const MipsN64 = enum(usize) {
37383756 listxattrat = 5465,
37393757 removexattrat = 5466,
37403758 open_tree_attr = 5467,
3759 file_getattr = 5468,
3760 file_setattr = 5469,
37413761};
37423762
37433763pub const MipsN32 = enum(usize) {
......@@ -4134,6 +4154,8 @@ pub const MipsN32 = enum(usize) {
41344154 listxattrat = 6465,
41354155 removexattrat = 6466,
41364156 open_tree_attr = 6467,
4157 file_getattr = 6468,
4158 file_setattr = 6469,
41374159};
41384160
41394161pub const PowerPC = enum(usize) {
......@@ -4585,6 +4607,8 @@ pub const PowerPC = enum(usize) {
45854607 listxattrat = 465,
45864608 removexattrat = 466,
45874609 open_tree_attr = 467,
4610 file_getattr = 468,
4611 file_setattr = 469,
45884612};
45894613
45904614pub const PowerPC64 = enum(usize) {
......@@ -5008,6 +5032,8 @@ pub const PowerPC64 = enum(usize) {
50085032 listxattrat = 465,
50095033 removexattrat = 466,
50105034 open_tree_attr = 467,
5035 file_getattr = 468,
5036 file_setattr = 469,
50115037};
50125038
50135039pub const S390x = enum(usize) {
......@@ -5397,6 +5423,8 @@ pub const S390x = enum(usize) {
53975423 listxattrat = 465,
53985424 removexattrat = 466,
53995425 open_tree_attr = 467,
5426 file_getattr = 468,
5427 file_setattr = 469,
54005428};
54015429
54025430pub const Xtensa = enum(usize) {
......@@ -5790,6 +5818,8 @@ pub const Xtensa = enum(usize) {
57905818 listxattrat = 465,
57915819 removexattrat = 466,
57925820 open_tree_attr = 467,
5821 file_getattr = 468,
5822 file_setattr = 469,
57935823};
57945824
57955825pub const Arm64 = enum(usize) {
......@@ -6116,6 +6146,8 @@ pub const Arm64 = enum(usize) {
61166146 listxattrat = 465,
61176147 removexattrat = 466,
61186148 open_tree_attr = 467,
6149 file_getattr = 468,
6150 file_setattr = 469,
61196151};
61206152
61216153pub const RiscV32 = enum(usize) {
......@@ -6433,6 +6465,8 @@ pub const RiscV32 = enum(usize) {
64336465 listxattrat = 465,
64346466 removexattrat = 466,
64356467 open_tree_attr = 467,
6468 file_getattr = 468,
6469 file_setattr = 469,
64366470};
64376471
64386472pub const RiscV64 = enum(usize) {
......@@ -6760,6 +6794,8 @@ pub const RiscV64 = enum(usize) {
67606794 listxattrat = 465,
67616795 removexattrat = 466,
67626796 open_tree_attr = 467,
6797 file_getattr = 468,
6798 file_setattr = 469,
67636799};
67646800
67656801pub const LoongArch64 = enum(usize) {
......@@ -7082,6 +7118,8 @@ pub const LoongArch64 = enum(usize) {
70827118 listxattrat = 465,
70837119 removexattrat = 466,
70847120 open_tree_attr = 467,
7121 file_getattr = 468,
7122 file_setattr = 469,
70857123};
70867124
70877125pub const Arc = enum(usize) {
......@@ -7432,6 +7470,8 @@ pub const Arc = enum(usize) {
74327470 listxattrat = 465,
74337471 removexattrat = 466,
74347472 open_tree_attr = 467,
7473 file_getattr = 468,
7474 file_setattr = 469,
74357475};
74367476
74377477pub const CSky = enum(usize) {
......@@ -7778,6 +7818,8 @@ pub const CSky = enum(usize) {
77787818 listxattrat = 465,
77797819 removexattrat = 466,
77807820 open_tree_attr = 467,
7821 file_getattr = 468,
7822 file_setattr = 469,
77817823};
77827824
77837825pub const Hexagon = enum(usize) {
......@@ -8123,6 +8165,8 @@ pub const Hexagon = enum(usize) {
81238165 listxattrat = 465,
81248166 removexattrat = 466,
81258167 open_tree_attr = 467,
8168 file_getattr = 468,
8169 file_setattr = 469,
81268170};
81278171
81288172pub const OpenRisc = enum(usize) {
......@@ -8469,4 +8513,6 @@ pub const OpenRisc = enum(usize) {
84698513 listxattrat = 465,
84708514 removexattrat = 466,
84718515 open_tree_attr = 467,
8516 file_getattr = 468,
8517 file_setattr = 469,
84728518};