Home
last modified time | relevance | path

Searched refs:pidfd (Results 1 - 25 of 63) sorted by relevance

123

/kernel/linux/linux-5.10/tools/testing/selftests/pidfd/
H A Dpidfd_wait.c19 #include "pidfd.h"
42 int pidfd = -1; in TEST() local
46 .pidfd = ptr_to_u64(&pidfd), in TEST()
55 pidfd = open("/proc/self", O_DIRECTORY | O_RDONLY | O_CLOEXEC); in TEST()
56 ASSERT_GE(pidfd, 0); in TEST()
58 pid = sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL); in TEST()
60 EXPECT_EQ(close(pidfd), 0); in TEST()
61 pidfd = -1; in TEST()
63 pidfd in TEST()
90 int pidfd = -1; TEST() local
142 int pidfd, status = 0; TEST() local
[all...]
H A Dpidfd_test.c22 #include "pidfd.h"
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()
59 int pidfd, ret; in test_pidfd_send_signal_simple_success() local
69 pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC); in test_pidfd_send_signal_simple_success()
70 if (pidfd < 0) in test_pidfd_send_signal_simple_success()
77 ret = sys_pidfd_send_signal(pidfd, SIGUSR1, NULL, 0); in test_pidfd_send_signal_simple_success()
78 close(pidfd); in test_pidfd_send_signal_simple_success()
94 int pidfd, re in test_pidfd_send_signal_exited_fail() local
200 int pidfd = -1; test_pidfd_send_signal_recycled_pid_fail() local
352 int pidfd, ret; test_pidfd_send_signal_syscall_support() local
394 poll_pidfd(const char *test_name, int pidfd) poll_pidfd() argument
442 int pid, pidfd = 0; test_pidfd_poll_exec() local
508 int pid, pidfd = 0; test_pidfd_poll_leader_exit() local
[all...]
H A Dpidfd_open_test.c21 #include "pidfd.h"
86 static pid_t get_pid_from_fdinfo_file(int pidfd, const char *key, size_t keylen) in get_pid_from_fdinfo_file() argument
95 snprintf(path, sizeof(path), "/proc/self/fdinfo/%d", pidfd); in get_pid_from_fdinfo_file()
123 int pidfd = -1, ret = 1; in main() local
128 pidfd = sys_pidfd_open(-1, 0); in main()
129 if (pidfd >= 0) { in main()
131 "%s - succeeded to open pidfd for invalid pid -1\n", in main()
137 pidfd = sys_pidfd_open(getpid(), 1); in main()
138 if (pidfd >= 0) { in main()
140 "%s - succeeded to open pidfd wit in main()
[all...]
H A Dpidfd_poll_test.c16 #include "pidfd.h"
44 ksft_print_msg("running pidfd poll test for %d iterations\n", in main()
48 int pidfd; in main() local
68 pidfd = sys_pidfd_open(child_pid, 0); in main()
69 if (pidfd < 0) in main()
80 if (sys_pidfd_send_signal(pidfd, SIGKILL, NULL, 0)) in main()
85 fds.fd = pidfd; in main()
106 close(pidfd); in main()
114 ksft_test_result_pass("pidfd poll test: pass\n"); in main()
H A Dpidfd_getfd_test.c20 #include "pidfd.h"
125 /* pidfd is the pidfd of the child */ in FIXTURE()
126 int pidfd; in FIXTURE() local
155 self->pidfd = sys_pidfd_open(self->pid, 0); in FIXTURE_SETUP()
156 ASSERT_GE(self->pidfd, 0); in FIXTURE_SETUP()
168 EXPECT_EQ(0, close(self->pidfd)); in FIXTURE_TEARDOWN()
192 fd = sys_pidfd_getfd(self->pidfd, self->remote_fd, 0); in TEST_F()
204 fd = sys_pidfd_getfd(self->pidfd, self->remote_fd, 0); in TEST_F()
223 fd = sys_pidfd_getfd(self->pidfd, UNKNOWN_F in TEST_F()
[all...]
H A Dpidfd_fdinfo_test.c17 #include "pidfd.h"
163 static int verify_fdinfo(int pidfd, struct error *err, const char *prefix, in verify_fdinfo() argument
180 snprintf(path, sizeof(path), "/proc/self/fdinfo/%d", pidfd); in verify_fdinfo()
184 pidfd); in verify_fdinfo()
210 prefix, pidfd); in verify_fdinfo()
218 int pidfd; in child_fdinfo_nspid_test() local
225 /* verify that we can not resolve the pidfd for a process in child_fdinfo_nspid_test()
242 pidfd = *(int *)args; in child_fdinfo_nspid_test()
243 r = verify_fdinfo(pidfd, &err, "NSpid:", 6, "\t0\n"); in child_fdinfo_nspid_test()
255 const char *test_name = "pidfd chec in test_pidfd_fdinfo_nspid()
[all...]
H A Dpidfd.h102 static inline int sys_pidfd_send_signal(int pidfd, int sig, siginfo_t *info, in sys_pidfd_send_signal() argument
105 return syscall(__NR_pidfd_send_signal, pidfd, sig, info, flags); in sys_pidfd_send_signal()
108 static inline int sys_pidfd_getfd(int pidfd, int fd, int flags) in sys_pidfd_getfd() argument
110 return syscall(__NR_pidfd_getfd, pidfd, fd, flags); in sys_pidfd_getfd()
H A Dpidfd_setns_test.c20 #include "pidfd.h"
55 int pidfd; in FIXTURE() local
75 pid_t create_child(int *pidfd, unsigned flags) in create_child() argument
80 .pidfd = ptr_to_u64(pidfd), in create_child()
153 self->pidfd = sys_pidfd_open(self->pid, 0); in FIXTURE_SETUP()
154 EXPECT_GT(self->pidfd, 0) { in FIXTURE_SETUP()
155 TH_LOG("%m - Failed to open pidfd for process %d", self->pid); in FIXTURE_SETUP()
168 self->pidfd = sys_pidfd_open(self->pid, 0); in FIXTURE_SETUP()
169 EXPECT_GE(self->pidfd, in FIXTURE_SETUP()
[all...]
/kernel/linux/linux-6.6/tools/testing/selftests/pidfd/
H A Dpidfd_wait.c19 #include "pidfd.h"
42 int pidfd = -1; in TEST() local
46 .pidfd = ptr_to_u64(&pidfd), in TEST()
55 pidfd = open("/proc/self", O_DIRECTORY | O_RDONLY | O_CLOEXEC); in TEST()
56 ASSERT_GE(pidfd, 0); in TEST()
58 pid = sys_waitid(P_PIDFD, pidfd, &info, WEXITED, NULL); in TEST()
60 EXPECT_EQ(close(pidfd), 0); in TEST()
61 pidfd = -1; in TEST()
63 pidfd in TEST()
90 int pidfd = -1; TEST() local
151 int pidfd; TEST() local
[all...]
H A Dpidfd_test.c22 #include "pidfd.h"
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()
59 int pidfd, ret; in test_pidfd_send_signal_simple_success() local
69 pidfd = open("/proc/self", O_DIRECTORY | O_CLOEXEC); in test_pidfd_send_signal_simple_success()
70 if (pidfd < 0) in test_pidfd_send_signal_simple_success()
77 ret = sys_pidfd_send_signal(pidfd, SIGUSR1, NULL, 0); in test_pidfd_send_signal_simple_success()
78 close(pidfd); in test_pidfd_send_signal_simple_success()
94 int pidfd, re in test_pidfd_send_signal_exited_fail() local
201 int pidfd = -1; test_pidfd_send_signal_recycled_pid_fail() local
353 int pidfd, ret; test_pidfd_send_signal_syscall_support() local
395 poll_pidfd(const char *test_name, int pidfd) poll_pidfd() argument
445 int pid, pidfd = 0; test_pidfd_poll_exec() local
511 int pid, pidfd = 0; test_pidfd_poll_leader_exit() local
[all...]
H A Dpidfd_open_test.c21 #include "pidfd.h"
86 static pid_t get_pid_from_fdinfo_file(int pidfd, const char *key, size_t keylen) in get_pid_from_fdinfo_file() argument
95 snprintf(path, sizeof(path), "/proc/self/fdinfo/%d", pidfd); in get_pid_from_fdinfo_file()
123 int pidfd = -1, ret = 1; in main() local
128 pidfd = sys_pidfd_open(-1, 0); in main()
129 if (pidfd >= 0) { in main()
131 "%s - succeeded to open pidfd for invalid pid -1\n", in main()
137 pidfd = sys_pidfd_open(getpid(), 1); in main()
138 if (pidfd >= 0) { in main()
140 "%s - succeeded to open pidfd wit in main()
[all...]
H A Dpidfd_poll_test.c16 #include "pidfd.h"
44 ksft_print_msg("running pidfd poll test for %d iterations\n", in main()
48 int pidfd; in main() local
68 pidfd = sys_pidfd_open(child_pid, 0); in main()
69 if (pidfd < 0) in main()
80 if (sys_pidfd_send_signal(pidfd, SIGKILL, NULL, 0)) in main()
85 fds.fd = pidfd; in main()
106 close(pidfd); in main()
114 ksft_test_result_pass("pidfd poll test: pass\n"); in main()
H A Dpidfd_getfd_test.c20 #include "pidfd.h"
125 /* pidfd is the pidfd of the child */ in FIXTURE()
126 int pidfd; in FIXTURE() local
155 self->pidfd = sys_pidfd_open(self->pid, 0); in FIXTURE_SETUP()
156 ASSERT_GE(self->pidfd, 0); in FIXTURE_SETUP()
168 EXPECT_EQ(0, close(self->pidfd)); in FIXTURE_TEARDOWN()
192 fd = sys_pidfd_getfd(self->pidfd, self->remote_fd, 0); in TEST_F()
204 fd = sys_pidfd_getfd(self->pidfd, self->remote_fd, 0); in TEST_F()
223 fd = sys_pidfd_getfd(self->pidfd, UNKNOWN_F in TEST_F()
[all...]
H A Dpidfd.h101 static inline int sys_pidfd_send_signal(int pidfd, int sig, siginfo_t *info, in sys_pidfd_send_signal() argument
104 return syscall(__NR_pidfd_send_signal, pidfd, sig, info, flags); in sys_pidfd_send_signal()
107 static inline int sys_pidfd_getfd(int pidfd, int fd, int flags) in sys_pidfd_getfd() argument
109 return syscall(__NR_pidfd_getfd, pidfd, fd, flags); in sys_pidfd_getfd()
H A Dpidfd_setns_test.c20 #include "pidfd.h"
55 int pidfd; in FIXTURE() local
75 pid_t create_child(int *pidfd, unsigned flags) in create_child() argument
80 .pidfd = ptr_to_u64(pidfd), in create_child()
153 self->pidfd = sys_pidfd_open(self->pid, 0); in FIXTURE_SETUP()
154 EXPECT_GT(self->pidfd, 0) { in FIXTURE_SETUP()
155 TH_LOG("%m - Failed to open pidfd for process %d", self->pid); in FIXTURE_SETUP()
168 self->pidfd = sys_pidfd_open(self->pid, 0); in FIXTURE_SETUP()
169 EXPECT_GE(self->pidfd, in FIXTURE_SETUP()
[all...]
H A Dpidfd_fdinfo_test.c17 #include "pidfd.h"
164 static int verify_fdinfo(int pidfd, struct error *err, const char *prefix, in verify_fdinfo() argument
181 snprintf(path, sizeof(path), "/proc/self/fdinfo/%d", pidfd); in verify_fdinfo()
185 pidfd); in verify_fdinfo()
211 prefix, pidfd); in verify_fdinfo()
219 int pidfd; in child_fdinfo_nspid_test() local
226 /* verify that we can not resolve the pidfd for a process in child_fdinfo_nspid_test()
243 pidfd = *(int *)args; in child_fdinfo_nspid_test()
244 r = verify_fdinfo(pidfd, &err, "NSpid:", 6, "\t0\n"); in child_fdinfo_nspid_test()
256 const char *test_name = "pidfd chec in test_pidfd_fdinfo_nspid()
[all...]
/kernel/linux/linux-5.10/samples/pidfd/
H A Dpidfd-metadata.c34 static pid_t pidfd_clone(int flags, int *pidfd) in pidfd_clone() argument
40 return __clone2(do_child, stack, stack_size, flags | SIGCHLD, NULL, pidfd); in pidfd_clone()
42 return clone(do_child, stack + stack_size, flags | SIGCHLD, NULL, pidfd); in pidfd_clone()
46 static inline int sys_pidfd_send_signal(int pidfd, int sig, siginfo_t *info, in sys_pidfd_send_signal() argument
49 return syscall(__NR_pidfd_send_signal, pidfd, sig, info, flags); in sys_pidfd_send_signal()
52 static int pidfd_metadata_fd(pid_t pid, int pidfd) in pidfd_metadata_fd() argument
68 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0); in pidfd_metadata_fd()
86 int pidfd = -1, ret = EXIT_FAILURE; in main() local
92 pid = pidfd_clone(CLONE_PIDFD, &pidfd); in main()
95 if (pidfd in main()
[all...]
/kernel/linux/linux-6.6/samples/pidfd/
H A Dpidfd-metadata.c34 static pid_t pidfd_clone(int flags, int *pidfd) in pidfd_clone() argument
40 return __clone2(do_child, stack, stack_size, flags | SIGCHLD, NULL, pidfd); in pidfd_clone()
42 return clone(do_child, stack + stack_size, flags | SIGCHLD, NULL, pidfd); in pidfd_clone()
46 static inline int sys_pidfd_send_signal(int pidfd, int sig, siginfo_t *info, in sys_pidfd_send_signal() argument
49 return syscall(__NR_pidfd_send_signal, pidfd, sig, info, flags); in sys_pidfd_send_signal()
52 static int pidfd_metadata_fd(pid_t pid, int pidfd) in pidfd_metadata_fd() argument
68 ret = sys_pidfd_send_signal(pidfd, 0, NULL, 0); in pidfd_metadata_fd()
86 int pidfd = -1, ret = EXIT_FAILURE; in main() local
92 pid = pidfd_clone(CLONE_PIDFD, &pidfd); in main()
95 if (pidfd in main()
[all...]
/kernel/linux/linux-6.6/tools/testing/selftests/mm/
H A Dmrelease_test.c55 static void run_negative_tests(int pidfd) in run_negative_tests() argument
59 if (!syscall(__NR_process_mrelease, pidfd, (unsigned int)-1) || in run_negative_tests()
69 if (!syscall(__NR_process_mrelease, pidfd, 0) || errno != EINVAL) { in run_negative_tests()
89 int pipefd[2], pidfd; in main() local
96 /* Test a wrong pidfd */ in main()
99 perror("process_mrelease with wrong pidfd"); in main()
143 pidfd = syscall(__NR_pidfd_open, pid, 0); in main()
144 if (pidfd < 0) { in main()
152 run_negative_tests(pidfd); in main()
160 success = (syscall(__NR_process_mrelease, pidfd, in main()
[all...]
/kernel/linux/linux-6.6/kernel/
H A Dpid.c46 #include <uapi/linux/pidfd.h>
547 * pidfd_get_task() - Get the task associated with a pidfd
549 * @pidfd: pidfd for which to get the task
550 * @flags: flags associated with this pidfd
552 * Return the task associated with @pidfd. The function takes a reference on
555 * Currently, the process identified by @pidfd is always a thread-group leader.
556 * This restriction currently exists for all aspects of pidfds including pidfd
557 * creation (CLONE_PIDFD cannot be used with CLONE_THREAD) and pidfd polling
560 * Return: On success, the task_struct associated with the pidfd
563 pidfd_get_task(int pidfd, unsigned int *flags) pidfd_get_task() argument
600 int pidfd; pidfd_create() local
[all...]
/kernel/linux/linux-6.6/tools/testing/selftests/net/af_unix/
H A Dscm_pidfd.c93 /* borrowed (with all helpers) from pidfd/pidfd_open_test.c */
94 static pid_t get_pid_from_fdinfo_file(int pidfd, const char *key, size_t keylen) in get_pid_from_fdinfo_file() argument
103 snprintf(path, sizeof(path), "/proc/self/fdinfo/%d", pidfd); in get_pid_from_fdinfo_file()
138 int *pidfd = NULL; in cmsg_check() local
165 if (cmsg->cmsg_len < sizeof(*pidfd)) { in cmsg_check()
170 pidfd = (void *)CMSG_DATA(cmsg); in cmsg_check()
190 if (!pidfd) { in cmsg_check()
200 /* pidfd from SCM_PIDFD should point to the parent process PID */ in cmsg_check()
202 get_pid_from_fdinfo_file(*pidfd, "Pid:", sizeof("Pid:") - 1); in cmsg_check()
/kernel/linux/linux-6.6/tools/testing/selftests/pid_namespace/
H A DMakefile6 LOCAL_HDRS += $(selfdir)/pidfd/pidfd.h
/kernel/linux/linux-5.10/tools/testing/selftests/pid_namespace/
H A DMakefile8 $(OUTPUT)/regression_enomem: regression_enomem.c ../pidfd/pidfd.h
/kernel/linux/linux-6.6/include/net/
H A Dscm.h127 int len, pidfd; in scm_pidfd_recv() local
145 pidfd = pidfd_prepare(scm->pid, 0, &pidfd_file); in scm_pidfd_recv()
147 if (put_cmsg(msg, SOL_SOCKET, SCM_PIDFD, sizeof(int), &pidfd)) { in scm_pidfd_recv()
149 put_unused_fd(pidfd); in scm_pidfd_recv()
157 fd_install(pidfd, pidfd_file); in scm_pidfd_recv()
/kernel/linux/linux-6.6/tools/testing/selftests/cgroup/
H A DMakefile18 LOCAL_HDRS += $(selfdir)/clone3/clone3_selftests.h $(selfdir)/pidfd/pidfd.h

Completed in 9 milliseconds

123