zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit ebd9efa85052fc19d8296e8e0f4da079da9cab45 (tree)
parent 40bab4df69fb6d77c83ae79b9d6bc47ac4ff67fd
Author: Techatrix <techatrix@mailbox.org>
Date:   Thu, 18 Jul 2024 22:44:36 +0200

fix fanotify_mark on 32-bit

Diffstat:
Mlib/std/os/linux.zig | 29+++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/lib/std/os/linux.zig b/lib/std/os/linux.zig @@ -712,14 +712,27 @@ pub fn fanotify_mark( dirfd: fd_t, pathname: ?[*:0]const u8, ) usize { - return syscall5( - .fanotify_mark, - @bitCast(@as(isize, fd)), - @as(u32, @bitCast(flags)), - @bitCast(mask), - @bitCast(@as(isize, dirfd)), - @intFromPtr(pathname), - ); + if (usize_bits < 64) { + const mask_halves = splitValue64(@bitCast(mask)); + return syscall6( + .fanotify_mark, + @bitCast(@as(isize, fd)), + @as(u32, @bitCast(flags)), + mask_halves[0], + mask_halves[1], + @bitCast(@as(isize, dirfd)), + @intFromPtr(pathname), + ); + } else { + return syscall5( + .fanotify_mark, + @bitCast(@as(isize, fd)), + @as(u32, @bitCast(flags)), + @bitCast(mask), + @bitCast(@as(isize, dirfd)), + @intFromPtr(pathname), + ); + } } pub fn name_to_handle_at(