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 @@...@@ -1,6 +1,6 @@
1// This file is automatically generated, DO NOT edit it manually.1// This file is automatically generated, DO NOT edit it manually.
2// See tools/generate_linux_syscalls.zig for more info.2// See tools/generate_linux_syscalls.zig for more info.
3// This list current as of kernel: 6.16.03// This list current as of kernel: 6.18.2
44
5pub const X86 = enum(usize) {5pub const X86 = enum(usize) {
6 restart_syscall = 0,6 restart_syscall = 0,
...@@ -460,6 +460,8 @@ pub const X86 = enum(usize) {...@@ -460,6 +460,8 @@ pub const X86 = enum(usize) {
460 listxattrat = 465,460 listxattrat = 465,
461 removexattrat = 466,461 removexattrat = 466,
462 open_tree_attr = 467,462 open_tree_attr = 467,
463 file_getattr = 468,
464 file_setattr = 469,
463};465};
464466
465pub const X64 = enum(usize) {467pub const X64 = enum(usize) {
...@@ -799,6 +801,7 @@ pub const X64 = enum(usize) {...@@ -799,6 +801,7 @@ pub const X64 = enum(usize) {
799 io_pgetevents = 333,801 io_pgetevents = 333,
800 rseq = 334,802 rseq = 334,
801 uretprobe = 335,803 uretprobe = 335,
804 uprobe = 336,
802 pidfd_send_signal = 424,805 pidfd_send_signal = 424,
803 io_uring_setup = 425,806 io_uring_setup = 425,
804 io_uring_enter = 426,807 io_uring_enter = 426,
...@@ -843,6 +846,8 @@ pub const X64 = enum(usize) {...@@ -843,6 +846,8 @@ pub const X64 = enum(usize) {
843 listxattrat = 465,846 listxattrat = 465,
844 removexattrat = 466,847 removexattrat = 466,
845 open_tree_attr = 467,848 open_tree_attr = 467,
849 file_getattr = 468,
850 file_setattr = 469,
846};851};
847852
848pub const X32 = enum(usize) {853pub const X32 = enum(usize) {
...@@ -1135,6 +1140,7 @@ pub const X32 = enum(usize) {...@@ -1135,6 +1140,7 @@ pub const X32 = enum(usize) {
1135 io_pgetevents = 1073742157,1140 io_pgetevents = 1073742157,
1136 rseq = 1073742158,1141 rseq = 1073742158,
1137 uretprobe = 1073742159,1142 uretprobe = 1073742159,
1143 uprobe = 1073742160,
1138 pidfd_send_signal = 1073742248,1144 pidfd_send_signal = 1073742248,
1139 io_uring_setup = 1073742249,1145 io_uring_setup = 1073742249,
1140 io_uring_enter = 1073742250,1146 io_uring_enter = 1073742250,
...@@ -1179,6 +1185,8 @@ pub const X32 = enum(usize) {...@@ -1179,6 +1185,8 @@ pub const X32 = enum(usize) {
1179 listxattrat = 1073742289,1185 listxattrat = 1073742289,
1180 removexattrat = 1073742290,1186 removexattrat = 1073742290,
1181 open_tree_attr = 1073742291,1187 open_tree_attr = 1073742291,
1188 file_getattr = 1073742292,
1189 file_setattr = 1073742293,
1182 rt_sigaction = 1073742336,1190 rt_sigaction = 1073742336,
1183 rt_sigreturn = 1073742337,1191 rt_sigreturn = 1073742337,
1184 ioctl = 1073742338,1192 ioctl = 1073742338,
...@@ -1640,6 +1648,8 @@ pub const Arm = enum(usize) {...@@ -1640,6 +1648,8 @@ pub const Arm = enum(usize) {
1640 listxattrat = 465,1648 listxattrat = 465,
1641 removexattrat = 466,1649 removexattrat = 466,
1642 open_tree_attr = 467,1650 open_tree_attr = 467,
1651 file_getattr = 468,
1652 file_setattr = 469,
16431653
1644 breakpoint = arm_base + 1,1654 breakpoint = arm_base + 1,
1645 cacheflush = arm_base + 2,1655 cacheflush = arm_base + 2,
...@@ -2086,6 +2096,8 @@ pub const Sparc = enum(usize) {...@@ -2086,6 +2096,8 @@ pub const Sparc = enum(usize) {
2086 listxattrat = 465,2096 listxattrat = 465,
2087 removexattrat = 466,2097 removexattrat = 466,
2088 open_tree_attr = 467,2098 open_tree_attr = 467,
2099 file_getattr = 468,
2100 file_setattr = 469,
2089};2101};
20902102
2091pub const Sparc64 = enum(usize) {2103pub const Sparc64 = enum(usize) {
...@@ -2488,6 +2500,8 @@ pub const Sparc64 = enum(usize) {...@@ -2488,6 +2500,8 @@ pub const Sparc64 = enum(usize) {
2488 listxattrat = 465,2500 listxattrat = 465,
2489 removexattrat = 466,2501 removexattrat = 466,
2490 open_tree_attr = 467,2502 open_tree_attr = 467,
2503 file_getattr = 468,
2504 file_setattr = 469,
2491};2505};
24922506
2493pub const M68k = enum(usize) {2507pub const M68k = enum(usize) {
...@@ -2930,6 +2944,8 @@ pub const M68k = enum(usize) {...@@ -2930,6 +2944,8 @@ pub const M68k = enum(usize) {
2930 listxattrat = 465,2944 listxattrat = 465,
2931 removexattrat = 466,2945 removexattrat = 466,
2932 open_tree_attr = 467,2946 open_tree_attr = 467,
2947 file_getattr = 468,
2948 file_setattr = 469,
2933};2949};
29342950
2935pub const MipsO32 = enum(usize) {2951pub const MipsO32 = enum(usize) {
...@@ -3366,6 +3382,8 @@ pub const MipsO32 = enum(usize) {...@@ -3366,6 +3382,8 @@ pub const MipsO32 = enum(usize) {
3366 listxattrat = 4465,3382 listxattrat = 4465,
3367 removexattrat = 4466,3383 removexattrat = 4466,
3368 open_tree_attr = 4467,3384 open_tree_attr = 4467,
3385 file_getattr = 4468,
3386 file_setattr = 4469,
3369};3387};
33703388
3371pub const MipsN64 = enum(usize) {3389pub const MipsN64 = enum(usize) {
...@@ -3738,6 +3756,8 @@ pub const MipsN64 = enum(usize) {...@@ -3738,6 +3756,8 @@ pub const MipsN64 = enum(usize) {
3738 listxattrat = 5465,3756 listxattrat = 5465,
3739 removexattrat = 5466,3757 removexattrat = 5466,
3740 open_tree_attr = 5467,3758 open_tree_attr = 5467,
3759 file_getattr = 5468,
3760 file_setattr = 5469,
3741};3761};
37423762
3743pub const MipsN32 = enum(usize) {3763pub const MipsN32 = enum(usize) {
...@@ -4134,6 +4154,8 @@ pub const MipsN32 = enum(usize) {...@@ -4134,6 +4154,8 @@ pub const MipsN32 = enum(usize) {
4134 listxattrat = 6465,4154 listxattrat = 6465,
4135 removexattrat = 6466,4155 removexattrat = 6466,
4136 open_tree_attr = 6467,4156 open_tree_attr = 6467,
4157 file_getattr = 6468,
4158 file_setattr = 6469,
4137};4159};
41384160
4139pub const PowerPC = enum(usize) {4161pub const PowerPC = enum(usize) {
...@@ -4585,6 +4607,8 @@ pub const PowerPC = enum(usize) {...@@ -4585,6 +4607,8 @@ pub const PowerPC = enum(usize) {
4585 listxattrat = 465,4607 listxattrat = 465,
4586 removexattrat = 466,4608 removexattrat = 466,
4587 open_tree_attr = 467,4609 open_tree_attr = 467,
4610 file_getattr = 468,
4611 file_setattr = 469,
4588};4612};
45894613
4590pub const PowerPC64 = enum(usize) {4614pub const PowerPC64 = enum(usize) {
...@@ -5008,6 +5032,8 @@ pub const PowerPC64 = enum(usize) {...@@ -5008,6 +5032,8 @@ pub const PowerPC64 = enum(usize) {
5008 listxattrat = 465,5032 listxattrat = 465,
5009 removexattrat = 466,5033 removexattrat = 466,
5010 open_tree_attr = 467,5034 open_tree_attr = 467,
5035 file_getattr = 468,
5036 file_setattr = 469,
5011};5037};
50125038
5013pub const S390x = enum(usize) {5039pub const S390x = enum(usize) {
...@@ -5397,6 +5423,8 @@ pub const S390x = enum(usize) {...@@ -5397,6 +5423,8 @@ pub const S390x = enum(usize) {
5397 listxattrat = 465,5423 listxattrat = 465,
5398 removexattrat = 466,5424 removexattrat = 466,
5399 open_tree_attr = 467,5425 open_tree_attr = 467,
5426 file_getattr = 468,
5427 file_setattr = 469,
5400};5428};
54015429
5402pub const Xtensa = enum(usize) {5430pub const Xtensa = enum(usize) {
...@@ -5790,6 +5818,8 @@ pub const Xtensa = enum(usize) {...@@ -5790,6 +5818,8 @@ pub const Xtensa = enum(usize) {
5790 listxattrat = 465,5818 listxattrat = 465,
5791 removexattrat = 466,5819 removexattrat = 466,
5792 open_tree_attr = 467,5820 open_tree_attr = 467,
5821 file_getattr = 468,
5822 file_setattr = 469,
5793};5823};
57945824
5795pub const Arm64 = enum(usize) {5825pub const Arm64 = enum(usize) {
...@@ -6116,6 +6146,8 @@ pub const Arm64 = enum(usize) {...@@ -6116,6 +6146,8 @@ pub const Arm64 = enum(usize) {
6116 listxattrat = 465,6146 listxattrat = 465,
6117 removexattrat = 466,6147 removexattrat = 466,
6118 open_tree_attr = 467,6148 open_tree_attr = 467,
6149 file_getattr = 468,
6150 file_setattr = 469,
6119};6151};
61206152
6121pub const RiscV32 = enum(usize) {6153pub const RiscV32 = enum(usize) {
...@@ -6433,6 +6465,8 @@ pub const RiscV32 = enum(usize) {...@@ -6433,6 +6465,8 @@ pub const RiscV32 = enum(usize) {
6433 listxattrat = 465,6465 listxattrat = 465,
6434 removexattrat = 466,6466 removexattrat = 466,
6435 open_tree_attr = 467,6467 open_tree_attr = 467,
6468 file_getattr = 468,
6469 file_setattr = 469,
6436};6470};
64376471
6438pub const RiscV64 = enum(usize) {6472pub const RiscV64 = enum(usize) {
...@@ -6760,6 +6794,8 @@ pub const RiscV64 = enum(usize) {...@@ -6760,6 +6794,8 @@ pub const RiscV64 = enum(usize) {
6760 listxattrat = 465,6794 listxattrat = 465,
6761 removexattrat = 466,6795 removexattrat = 466,
6762 open_tree_attr = 467,6796 open_tree_attr = 467,
6797 file_getattr = 468,
6798 file_setattr = 469,
6763};6799};
67646800
6765pub const LoongArch64 = enum(usize) {6801pub const LoongArch64 = enum(usize) {
...@@ -7082,6 +7118,8 @@ pub const LoongArch64 = enum(usize) {...@@ -7082,6 +7118,8 @@ pub const LoongArch64 = enum(usize) {
7082 listxattrat = 465,7118 listxattrat = 465,
7083 removexattrat = 466,7119 removexattrat = 466,
7084 open_tree_attr = 467,7120 open_tree_attr = 467,
7121 file_getattr = 468,
7122 file_setattr = 469,
7085};7123};
70867124
7087pub const Arc = enum(usize) {7125pub const Arc = enum(usize) {
...@@ -7432,6 +7470,8 @@ pub const Arc = enum(usize) {...@@ -7432,6 +7470,8 @@ pub const Arc = enum(usize) {
7432 listxattrat = 465,7470 listxattrat = 465,
7433 removexattrat = 466,7471 removexattrat = 466,
7434 open_tree_attr = 467,7472 open_tree_attr = 467,
7473 file_getattr = 468,
7474 file_setattr = 469,
7435};7475};
74367476
7437pub const CSky = enum(usize) {7477pub const CSky = enum(usize) {
...@@ -7778,6 +7818,8 @@ pub const CSky = enum(usize) {...@@ -7778,6 +7818,8 @@ pub const CSky = enum(usize) {
7778 listxattrat = 465,7818 listxattrat = 465,
7779 removexattrat = 466,7819 removexattrat = 466,
7780 open_tree_attr = 467,7820 open_tree_attr = 467,
7821 file_getattr = 468,
7822 file_setattr = 469,
7781};7823};
77827824
7783pub const Hexagon = enum(usize) {7825pub const Hexagon = enum(usize) {
...@@ -8123,6 +8165,8 @@ pub const Hexagon = enum(usize) {...@@ -8123,6 +8165,8 @@ pub const Hexagon = enum(usize) {
8123 listxattrat = 465,8165 listxattrat = 465,
8124 removexattrat = 466,8166 removexattrat = 466,
8125 open_tree_attr = 467,8167 open_tree_attr = 467,
8168 file_getattr = 468,
8169 file_setattr = 469,
8126};8170};
81278171
8128pub const OpenRisc = enum(usize) {8172pub const OpenRisc = enum(usize) {
...@@ -8469,4 +8513,6 @@ pub const OpenRisc = enum(usize) {...@@ -8469,4 +8513,6 @@ pub const OpenRisc = enum(usize) {
8469 listxattrat = 465,8513 listxattrat = 465,
8470 removexattrat = 466,8514 removexattrat = 466,
8471 open_tree_attr = 467,8515 open_tree_attr = 467,
8516 file_getattr = 468,
8517 file_setattr = 469,
8472};8518};