Lines Matching refs:pidfd
33 static pid_t pidfd_clone(int flags, int *pidfd, int (*fn)(void *)) in pidfd_clone() argument
39 return __clone2(fn, stack, stack_size, flags | SIGCHLD, NULL, pidfd); in pidfd_clone()
41 return clone(fn, stack + stack_size, flags | SIGCHLD, NULL, pidfd); in pidfd_clone()
53 static int send_signal(int pidfd) in send_signal() argument
57 if (sys_pidfd_send_signal(pidfd, SIGUSR1, NULL, 0) < 0) { in send_signal()
74 int pidfd = (int)(intptr_t)arg; in send_signal_worker() local
78 ret = send_signal(pidfd); in send_signal_worker()
88 int pidfd; in test_pidfd_send_signal_simple_success() local
104 pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC); in test_pidfd_send_signal_simple_success()
105 if (pidfd < 0) in test_pidfd_send_signal_simple_success()
109 err = send_signal(pidfd); in test_pidfd_send_signal_simple_success()
114 close(pidfd); in test_pidfd_send_signal_simple_success()
146 int pidfd, ret, saved_errno; in test_pidfd_send_signal_exited_fail() local
168 pidfd = open(buf, O_DIRECTORY | O_CLOEXEC); in test_pidfd_send_signal_exited_fail()
173 if (pidfd < 0) in test_pidfd_send_signal_exited_fail()
178 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0); in test_pidfd_send_signal_exited_fail()
180 close(pidfd); in test_pidfd_send_signal_exited_fail()
253 int pidfd = -1; in test_pidfd_send_signal_recycled_pid_fail() local
272 pidfd = open(buf, O_DIRECTORY | O_CLOEXEC); in test_pidfd_send_signal_recycled_pid_fail()
288 close(pidfd); in test_pidfd_send_signal_recycled_pid_fail()
292 if (pidfd < 0) in test_pidfd_send_signal_recycled_pid_fail()
335 ret = sys_pidfd_send_signal(pidfd, SIGCONT, in test_pidfd_send_signal_recycled_pid_fail()
405 int pidfd, ret; in test_pidfd_send_signal_syscall_support() local
408 pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC); in test_pidfd_send_signal_syscall_support()
409 if (pidfd < 0) in test_pidfd_send_signal_syscall_support()
414 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0); in test_pidfd_send_signal_syscall_support()
427 close(pidfd); in test_pidfd_send_signal_syscall_support()
447 static void poll_pidfd(const char *test_name, int pidfd) in poll_pidfd() argument
459 event.data.fd = pidfd; in poll_pidfd()
461 if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, pidfd, &event)) { in poll_pidfd()
497 int pid, pidfd = 0; in test_pidfd_poll_exec() local
503 pid = pidfd_clone(CLONE_PIDFD, &pidfd, child_poll_exec_test); in test_pidfd_poll_exec()
518 poll_pidfd(test_name, pidfd); in test_pidfd_poll_exec()
525 close(pidfd); in test_pidfd_poll_exec()
563 int pid, pidfd = 0; in test_pidfd_poll_leader_exit() local
576 pid = pidfd_clone(CLONE_PIDFD, &pidfd, child_poll_leader_exit_test); in test_pidfd_poll_leader_exit()
594 poll_pidfd(test_name, pidfd); in test_pidfd_poll_leader_exit()
604 close(pidfd); in test_pidfd_poll_leader_exit()