aboutsummaryrefslogtreecommitdiff
path: root/lib/std/os/linux.zig
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2019-10-12 14:55:02 +0200
committerLemonBoy <thatlemon@gmail.com>2019-10-12 20:51:51 +0200
commit40fc7a1fdac23b1799ebce69c2a65236886bc360 (patch)
tree724e184f57ab33daa05aa94959e5017dfd35d8a0 /lib/std/os/linux.zig
parent8b45921664c8f679c8154b45add84f84e3ec8128 (diff)
downloadzig-40fc7a1fdac23b1799ebce69c2a65236886bc360.tar.gz
zig-40fc7a1fdac23b1799ebce69c2a65236886bc360.zip
Add support for the statx syscall
Diffstat (limited to 'lib/std/os/linux.zig')
-rw-r--r--lib/std/os/linux.zig14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig
index 46aeb28f2f..c91b6ad98b 100644
--- a/lib/std/os/linux.zig
+++ b/lib/std/os/linux.zig
@@ -860,6 +860,20 @@ pub fn fstatat(dirfd: i32, path: [*]const u8, stat_buf: *Stat, flags: u32) usize
}
}
+pub fn statx(dirfd: i32, path: [*]const u8, flags: u32, mask: u32, statx_buf: *Statx) usize {
+ if (@hasDecl(@This(), "SYS_statx")) {
+ return syscall5(
+ SYS_statx,
+ @bitCast(usize, isize(dirfd)),
+ @ptrToInt(path),
+ flags,
+ mask,
+ @ptrToInt(statx_buf),
+ );
+ }
+ return @bitCast(usize, isize(-ENOSYS));
+}
+
// TODO https://github.com/ziglang/zig/issues/265
pub fn listxattr(path: [*]const u8, list: [*]u8, size: usize) usize {
return syscall3(SYS_listxattr, @ptrToInt(path), @ptrToInt(list), size);