std: signalfd: fix the types of things; add test

master
Andrew Kelley 2020-08-17 16:19:57 -07:00
parent 293b07df12
commit ae2c88754d
4 changed files with 10 additions and 10 deletions

View File

@ -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,

View File

@ -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),

View File

@ -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 {

View File

@ -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;
}