Commit ae2c88754d
lib/std/c/linux.zig
@@ -93,7 +93,7 @@ pub extern "c" fn sendfile(
pub extern "c" fn copy_file_range(fd_in: fd_t, off_in: ?*i64, fd_out: fd_t, off_out: ?*i64, len: usize, flags: c_uint) isize;
-pub extern "c" fn signalfd(fd: fd_t, mask: *const sigset_t, flags: i32) usize;
+pub extern "c" fn signalfd(fd: fd_t, mask: *const sigset_t, flags: c_uint) c_int;
pub const pthread_attr_t = extern struct {
__size: [56]u8,
lib/std/os/linux.zig
@@ -1200,14 +1200,8 @@ pub fn ioctl(fd: fd_t, request: u32, arg: usize) usize {
return syscall3(.ioctl, @bitCast(usize, @as(isize, fd)), request, arg);
}
-pub fn signalfd(fd: fd_t, mask: *const sigset_t, flags: i32) usize {
- return syscall4(
- .signalfd4,
- @bitCast(usize, @as(isize, fd)),
- @ptrToInt(mask),
- @bitCast(usize, @as(usize, NSIG / 8)),
- @intCast(usize, flags),
- );
+pub fn signalfd(fd: fd_t, mask: *const sigset_t, flags: u32) usize {
+ return syscall4(.signalfd4, @bitCast(usize, @as(isize, fd)), @ptrToInt(mask), NSIG / 8, flags);
}
pub fn copy_file_range(fd_in: fd_t, off_in: ?*i64, fd_out: fd_t, off_out: ?*i64, len: usize, flags: u32) usize {
lib/std/os/test.zig
@@ -522,3 +522,9 @@ test "fcntl" {
expect((flags & os.FD_CLOEXEC) != 0);
}
}
+
+test "signalfd" {
+ if (builtin.os.tag != .linux)
+ return error.SkipZigTest;
+ _ = std.os.signalfd;
+}
lib/std/os.zig
@@ -5308,7 +5308,7 @@ pub fn ioctl_SIOCGIFINDEX(fd: fd_t, ifr: *ifreq) IoCtl_SIOCGIFINDEX_Error!void {
}
}
-pub fn signalfd(fd: fd_t, mask: *const sigset_t, flags: i32) !fd_t {
+pub fn signalfd(fd: fd_t, mask: *const sigset_t, flags: u32) !fd_t {
const rc = system.signalfd(fd, mask, flags);
switch (errno(rc)) {
0 => return @intCast(fd_t, rc),