Lines Matching full:child

28 struct child {  struct
33 static void release_child(struct child *child) in release_child() argument
37 if (!child) in release_child()
39 close(child->go[1]); in release_child()
40 close(child->go[0]); in release_child()
41 if (child->pid > 0) in release_child()
42 waitpid(child->pid, &child_status, 0); in release_child()
45 static void kick_child(struct child *child) in kick_child() argument
49 if (child) { in kick_child()
50 write(child->go[1], &c, 1); in kick_child()
51 release_child(child); in kick_child()
56 static struct child *spawn_child(void) in spawn_child()
58 static struct child child; in spawn_child() local
62 /* pipe to notify child to execute the trigger functions */ in spawn_child()
63 if (pipe(child.go)) in spawn_child()
66 child.pid = fork(); in spawn_child()
67 if (child.pid < 0) { in spawn_child()
68 release_child(&child); in spawn_child()
73 /* child */ in spawn_child()
74 if (child.pid == 0) { in spawn_child()
75 close(child.go[1]); in spawn_child()
78 err = read(child.go[0], &c, 1); in spawn_child()
89 return &child; in spawn_child()
92 static void uprobe_multi_test_run(struct uprobe_multi *skel, struct child *child) in uprobe_multi_test_run() argument
102 * because the probe should be executed only by child->pid in uprobe_multi_test_run()
105 skel->bss->pid = child ? 0 : getpid(); in uprobe_multi_test_run()
107 if (child) in uprobe_multi_test_run()
108 kick_child(child); in uprobe_multi_test_run()
129 if (child) in uprobe_multi_test_run()
130 ASSERT_EQ(skel->bss->child_pid, child->pid, "uprobe_multi_child_pid"); in uprobe_multi_test_run()
154 struct child *child) in __test_attach_api() argument
156 pid_t pid = child ? child->pid : -1; in __test_attach_api()
193 uprobe_multi_test_run(skel, child); in __test_attach_api()
202 struct child *child; in test_attach_api() local
208 child = spawn_child(); in test_attach_api()
209 if (!ASSERT_OK_PTR(child, "spawn_child")) in test_attach_api()
212 __test_attach_api(binary, pattern, opts, child); in test_attach_api()
408 static void __test_link_api(struct child *child) in __test_link_api() argument
430 opts.uprobe_multi.pid = child ? child->pid : 0; in __test_link_api()
467 uprobe_multi_test_run(skel, child); in __test_link_api()
487 struct child *child; in test_link_api() local
493 child = spawn_child(); in test_link_api()
494 if (!ASSERT_OK_PTR(child, "spawn_child")) in test_link_api()
497 __test_link_api(child); in test_link_api()