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);
121 if (pidfd < 0)
126 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0);
128 close(pidfd);
201 int pidfd = -1;
220 pidfd = open(buf, O_DIRECTORY | O_CLOEXEC);
236 close(pidfd);
240 if (pidfd < 0)
280 * the one the pidfd refers to.
283 ret = sys_pidfd_send_signal(pidfd, SIGCONT,
353 int pidfd, ret;
356 pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC);
357 if (pidfd < 0)
362 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0);
375 close(pidfd);
395 static void poll_pidfd(const char *test_name, int pidfd)
407 event.data.fd = pidfd;
409 if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, pidfd, &event)) {
430 ksft_print_msg("Child (pidfd): starting. pid %d tid %ld\n", getpid(),
445 int pid, pidfd = 0;
451 pid = pidfd_clone(CLONE_PIDFD, &pidfd, child_poll_exec_test);
466 poll_pidfd(test_name, pidfd);
473 close(pidfd);
511 int pid, pidfd = 0;
524 pid = pidfd_clone(CLONE_PIDFD, &pidfd, child_poll_leader_exit_test);
542 poll_pidfd(test_name, pidfd);
552 close(pidfd);