Lines Matching refs:pidfd
22 #include "pidfd.h"
33 static pid_t pidfd_clone(int flags, int *pidfd, int (*fn)(void *))
39 return __clone2(fn, stack, stack_size, flags | SIGCHLD, NULL, pidfd);
41 return clone(fn, stack + stack_size, flags | SIGCHLD, NULL, pidfd);
59 int pidfd, ret;
69 pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC);
70 if (pidfd < 0)
77 ret = sys_pidfd_send_signal(pidfd, SIGUSR1, NULL, 0);
78 close(pidfd);
94 int pidfd, ret, saved_errno;
116 pidfd = open(buf, O_DIRECTORY | O_CLOEXEC);
120 if (pidfd < 0)
125 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0);
127 close(pidfd);
200 int pidfd = -1;
219 pidfd = open(buf, O_DIRECTORY | O_CLOEXEC);
235 close(pidfd);
239 if (pidfd < 0)
279 * the one the pidfd refers to.
282 ret = sys_pidfd_send_signal(pidfd, SIGCONT,
352 int pidfd, ret;
355 pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC);
356 if (pidfd < 0)
361 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0);
374 close(pidfd);
394 static void poll_pidfd(const char *test_name, int pidfd)
406 event.data.fd = pidfd;
408 if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, pidfd, &event)) {
429 ksft_print_msg("Child (pidfd): starting. pid %d tid %ld\n", getpid(),
442 int pid, pidfd = 0;
448 pid = pidfd_clone(CLONE_PIDFD, &pidfd, child_poll_exec_test);
463 poll_pidfd(test_name, pidfd);
470 close(pidfd);
508 int pid, pidfd = 0;
521 pid = pidfd_clone(CLONE_PIDFD, &pidfd, child_poll_leader_exit_test);
539 poll_pidfd(test_name, pidfd);
549 close(pidfd);