diff options
| author | Stephen Gregoratto <dev@sgregoratto.me> | 2025-12-24 13:10:38 +1100 |
|---|---|---|
| committer | Stephen Gregoratto <dev@sgregoratto.me> | 2025-12-24 13:10:38 +1100 |
| commit | c3f2de5e519926eb0029062fe8e782a6f9df9c05 (patch) | |
| tree | 137740d5ff2f6197afbca44ca74593d8f98fa6ce /lib/std/os/linux | |
| parent | 985a3565c6130c7279319e9c36642f0b958e6944 (diff) | |
| download | zig-c3f2de5e519926eb0029062fe8e782a6f9df9c05.tar.gz zig-c3f2de5e519926eb0029062fe8e782a6f9df9c05.zip | |
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
Diffstat (limited to 'lib/std/os/linux')
| -rw-r--r-- | lib/std/os/linux/syscalls.zig | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/lib/std/os/linux/syscalls.zig b/lib/std/os/linux/syscalls.zig index 58005cfa35..0eec4dafee 100644 --- a/lib/std/os/linux/syscalls.zig +++ b/lib/std/os/linux/syscalls.zig @@ -1,6 +1,6 @@ // This file is automatically generated, DO NOT edit it manually. // See tools/generate_linux_syscalls.zig for more info. -// This list current as of kernel: 6.16.0 +// This list current as of kernel: 6.18.2 pub const X86 = enum(usize) { restart_syscall = 0, @@ -460,6 +460,8 @@ pub const X86 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const X64 = enum(usize) { @@ -799,6 +801,7 @@ pub const X64 = enum(usize) { io_pgetevents = 333, rseq = 334, uretprobe = 335, + uprobe = 336, pidfd_send_signal = 424, io_uring_setup = 425, io_uring_enter = 426, @@ -843,6 +846,8 @@ pub const X64 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const X32 = enum(usize) { @@ -1135,6 +1140,7 @@ pub const X32 = enum(usize) { io_pgetevents = 1073742157, rseq = 1073742158, uretprobe = 1073742159, + uprobe = 1073742160, pidfd_send_signal = 1073742248, io_uring_setup = 1073742249, io_uring_enter = 1073742250, @@ -1179,6 +1185,8 @@ pub const X32 = enum(usize) { listxattrat = 1073742289, removexattrat = 1073742290, open_tree_attr = 1073742291, + file_getattr = 1073742292, + file_setattr = 1073742293, rt_sigaction = 1073742336, rt_sigreturn = 1073742337, ioctl = 1073742338, @@ -1640,6 +1648,8 @@ pub const Arm = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, breakpoint = arm_base + 1, cacheflush = arm_base + 2, @@ -2086,6 +2096,8 @@ pub const Sparc = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const Sparc64 = enum(usize) { @@ -2488,6 +2500,8 @@ pub const Sparc64 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const M68k = enum(usize) { @@ -2930,6 +2944,8 @@ pub const M68k = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const MipsO32 = enum(usize) { @@ -3366,6 +3382,8 @@ pub const MipsO32 = enum(usize) { listxattrat = 4465, removexattrat = 4466, open_tree_attr = 4467, + file_getattr = 4468, + file_setattr = 4469, }; pub const MipsN64 = enum(usize) { @@ -3738,6 +3756,8 @@ pub const MipsN64 = enum(usize) { listxattrat = 5465, removexattrat = 5466, open_tree_attr = 5467, + file_getattr = 5468, + file_setattr = 5469, }; pub const MipsN32 = enum(usize) { @@ -4134,6 +4154,8 @@ pub const MipsN32 = enum(usize) { listxattrat = 6465, removexattrat = 6466, open_tree_attr = 6467, + file_getattr = 6468, + file_setattr = 6469, }; pub const PowerPC = enum(usize) { @@ -4585,6 +4607,8 @@ pub const PowerPC = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const PowerPC64 = enum(usize) { @@ -5008,6 +5032,8 @@ pub const PowerPC64 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const S390x = enum(usize) { @@ -5397,6 +5423,8 @@ pub const S390x = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const Xtensa = enum(usize) { @@ -5790,6 +5818,8 @@ pub const Xtensa = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const Arm64 = enum(usize) { @@ -6116,6 +6146,8 @@ pub const Arm64 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const RiscV32 = enum(usize) { @@ -6433,6 +6465,8 @@ pub const RiscV32 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const RiscV64 = enum(usize) { @@ -6760,6 +6794,8 @@ pub const RiscV64 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const LoongArch64 = enum(usize) { @@ -7082,6 +7118,8 @@ pub const LoongArch64 = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const Arc = enum(usize) { @@ -7432,6 +7470,8 @@ pub const Arc = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const CSky = enum(usize) { @@ -7778,6 +7818,8 @@ pub const CSky = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const Hexagon = enum(usize) { @@ -8123,6 +8165,8 @@ pub const Hexagon = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; pub const OpenRisc = enum(usize) { @@ -8469,4 +8513,6 @@ pub const OpenRisc = enum(usize) { listxattrat = 465, removexattrat = 466, open_tree_attr = 467, + file_getattr = 468, + file_setattr = 469, }; |
