authorgravatar for hubert.jasudowicz@gmail.comHubert Jasudowicz <hubert.jasudowicz@gmail.com> 2021-04-17 01:08:13+02:00
committergravatar for hubert.jasudowicz@gmail.comHubert Jasudowicz <hubert.jasudowicz@gmail.com> 2021-04-17 01:13:16+02:00
log5134fb72ef794f96bf936dea7e3e780d149dba8c
treebc85c49f6c13e6c37e6874e09cd86a55e0f545a4
parent01a1365857ad1bd209f9967c0ec8ce8aaa387138

std: Add pidfd wrappers


1 files changed, 23 insertions(+), 0 deletions(-)

lib/std/os/linux.zig+23
...@@ -1387,6 +1387,29 @@ pub fn madvise(address: [*]u8, len: usize, advice: u32) usize {...@@ -1387,6 +1387,29 @@ pub fn madvise(address: [*]u8, len: usize, advice: u32) usize {
1387 return syscall3(.madvise, @ptrToInt(address), len, advice);1387 return syscall3(.madvise, @ptrToInt(address), len, advice);
1388}1388}
13891389
1390pub fn pidfd_open(pid: pid_t, flags: u32) usize {
1391 return syscall2(.pidfd_open, @bitCast(usize, @as(isize, pid)), flags);
1392}
1393
1394pub fn pidfd_getfd(pidfd: fd_t, targetfd: fd_t, flags: u32) usize {
1395 return syscall3(
1396 .pidfd_getfd,
1397 @bitCast(usize, @as(isize, pidfd)),
1398 @bitCast(usize, @as(isize, targetfd)),
1399 flags,
1400 );
1401}
1402
1403pub fn pidfd_send_signal(pidfd: fd_t, sig: i32, info: ?*siginfo_t, flags: u32) usize {
1404 return syscall4(
1405 .pidfd_send_signal,
1406 @bitCast(usize, @as(isize, pidfd)),
1407 @bitCast(usize, @as(isize, sig)),
1408 @ptrToInt(info),
1409 flags,
1410 );
1411}
1412
1390test {1413test {
1391 if (builtin.os.tag == .linux) {1414 if (builtin.os.tag == .linux) {
1392 _ = @import("linux/test.zig");1415 _ = @import("linux/test.zig");