authorgravatar for 124872+jedisct1@users.noreply.github.comFrank Denis <124872+jedisct1@users.noreply.github.com> 2021-04-17 15:03:25+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2021-04-17 15:03:25+02:00
log9f6b56ab4ba263f751927d0eee6a87064d65c049
treef44edeed9493dc595cbfb3f58e00738d18fab548
parentafb9f695b1bdbf81185e7d55d5783bcbab880989
parent5134fb72ef794f96bf936dea7e3e780d149dba8c
signature Signed by PGP key 4AEE18F83AFDEB23

Merge pull request #8555 from chivay/pidfd

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");