zig

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

commit e7912dee9bd63b03415f441b4de9b3babc79c859 (tree)
parent e9d795b025e55dcd9d8c4378141b996358634863
Author: Robin Voetter <robin@voetter.nl>
Date:   Sun,  1 Sep 2019 16:10:36 +0200

Fix up preadv, preadv2, pwritev and pwritev2


Diffstat:
Mstd/os/linux.zig | 42++++++++++++++++++++++++++++++++++++------
1 file changed, 36 insertions(+), 6 deletions(-)

diff --git a/std/os/linux.zig b/std/os/linux.zig @@ -210,11 +210,26 @@ pub fn read(fd: i32, buf: [*]u8, count: usize) usize { } pub fn preadv(fd: i32, iov: [*]const iovec, count: usize, offset: u64) usize { - return syscall4(SYS_preadv, @bitCast(usize, isize(fd)), @ptrToInt(iov), count, offset); + return syscall5( + SYS_preadv, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + ); } pub fn preadv2(fd: i32, iov: [*]const iovec, count: usize, offset: u64, flags: kernel_rwf) usize { - return syscall5(SYS_preadv2, @bitCast(usize, isize(fd)), @ptrToInt(iov), count, offset, flags); + return syscall6( + SYS_preadv2, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + flags + ); } pub fn readv(fd: i32, iov: [*]const iovec, count: usize) usize { @@ -226,11 +241,26 @@ pub fn writev(fd: i32, iov: [*]const iovec_const, count: usize) usize { } pub fn pwritev(fd: i32, iov: [*]const iovec_const, count: usize, offset: u64) usize { - return syscall4(SYS_pwritev, @bitCast(usize, isize(fd)), @ptrToInt(iov), count, offset); + return syscall5( + SYS_pwritev, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + ); } pub fn pwritev2(fd: i32, iov: [*]const iovec_const, count: usize, offset: u64, flags: kernel_rwf) usize { - return syscall5(SYS_pwritev2, @bitCast(usize, isize(fd)), @ptrToInt(iov), count, offset, flags); + return syscall6( + SYS_pwritev2, + @bitCast(usize, isize(fd)), + @ptrToInt(iov), + count, + @truncate(usize, offset), + @truncate(usize, offset >> 32), + flags + ); } // TODO https://github.com/ziglang/zig/issues/265 @@ -503,9 +533,9 @@ pub fn setgid(gid: u32) usize { pub fn setreuid(ruid: u32, euid: u32) usize { if (@hasDecl(@This(), "SYS_setreuid32")) { - return syscall2(SYS_setreuid32, ruid, euid)); + return syscall2(SYS_setreuid32, ruid, euid); } else { - return syscall2(SYS_setreuid, ruid, euid)); + return syscall2(SYS_setreuid, ruid, euid); } }