Lines Matching refs:proc_config

147 typedef void (^child_action_handler_t)(proc_config_t proc_config, int child_id);
174 static child_action_handler_t proc_info_listpids_handler = ^void (proc_config_t proc_config, int ch…
175 close(proc_config->parent_pipe[PIPE_IN]);
176 close(proc_config->child_pipe[child_id][PIPE_OUT]);
179 retval = write(proc_config->parent_pipe[PIPE_OUT], &child_action, sizeof(child_action));
182 retval = read(proc_config->child_pipe[child_id][PIPE_IN], &child_action, sizeof(child_action));
208 retval = write(proc_config->parent_pipe[PIPE_OUT], &retval, sizeof(retval));
215 close(proc_config->parent_pipe[PIPE_OUT]);
216 close(proc_config->child_pipe[child_id][PIPE_IN]);
220 static child_action_handler_t proc_info_call_pidinfo_handler = ^void (proc_config_t proc_config, in…
221 close(proc_config->parent_pipe[PIPE_IN]);
222 close(proc_config->child_pipe[child_id][PIPE_OUT]);
233 retval = write(proc_config->parent_pipe[PIPE_OUT], &action, sizeof(action));
236 retval = read(proc_config->child_pipe[child_id][PIPE_IN], &action, sizeof(action));
291 *((int *)(proc_config->cow_map)) = 20;
340 if (proc_config->cow_map) {
341 munmap(proc_config->cow_map, PAGE_SIZE);
349 retval = write(proc_config->parent_pipe[PIPE_OUT], &action, sizeof(action));
355 close(proc_config->parent_pipe[PIPE_OUT]);
356 close(proc_config->child_pipe[child_id][PIPE_IN]);
362 free_proc_config(proc_config_t proc_config) in free_proc_config() argument
364 free(proc_config); in free_proc_config()
368 send_action_to_child_processes(proc_config_t proc_config, int action) in send_action_to_child_processes() argument
371 for (int i = 0; i < proc_config->child_count; i++) { in send_action_to_child_processes()
372 err = write(proc_config->child_pipe[i][PIPE_OUT], &action, sizeof(action)); in send_action_to_child_processes()
377 WAIT_FOR_CHILDREN(proc_config->parent_pipe[PIPE_IN], action, proc_config->child_count); in send_action_to_child_processes()
382 kill_child_processes(proc_config_t proc_config) in kill_child_processes() argument
386 send_action_to_child_processes(proc_config, ACT_EXIT); in kill_child_processes()
387 for (int child_id = 0; child_id < proc_config->child_count; child_id++) { in kill_child_processes()
388 close(proc_config->child_pipe[child_id][PIPE_OUT]); in kill_child_processes()
389 dt_waitpid(proc_config->child_pids[child_id], NULL, NULL, 5); in kill_child_processes()
393 close(proc_config->parent_pipe[PIPE_IN]); in kill_child_processes()
394 munmap(proc_config->cow_map, PAGE_SIZE); in kill_child_processes()
405 proc_config_t proc_config = malloc(sizeof(*proc_config)); in spawn_child_processes() local
410 proc_config->proc_grp_id = getpgid(0); in spawn_child_processes()
412 proc_config->child_count = child_count; in spawn_child_processes()
414 err = pipe(proc_config->parent_pipe); in spawn_child_processes()
421 proc_config->cow_map = mmap(0, PAGE_SIZE, PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); in spawn_child_processes()
423 T_ASSERT_NE_PTR(proc_config->cow_map, MAP_FAILED, "cow_map mmap()"); in spawn_child_processes()
424 *((int *)(proc_config->cow_map)) = 10; in spawn_child_processes()
430 err = pipe(proc_config->child_pipe[i]); in spawn_child_processes()
440 child_handler(proc_config, child_id); in spawn_child_processes()
442 proc_config->child_pids[child_id] = child_pid; in spawn_child_processes()
444 close(proc_config->child_pipe[child_id][PIPE_IN]); in spawn_child_processes()
449 close(proc_config->parent_pipe[PIPE_OUT]); in spawn_child_processes()
450 WAIT_FOR_CHILDREN(proc_config->parent_pipe[PIPE_IN], action, child_count); in spawn_child_processes()
452 return proc_config; in spawn_child_processes()
471 proc_config_t proc_config = spawn_child_processes(1, proc_info_call_pidinfo_handler); in proc_info_caller() local
472 int child_pid = proc_config->child_pids[0]; in proc_info_caller()
497 send_action_to_child_processes(proc_config, ACT_PHASE2); in proc_info_caller()
519 send_action_to_child_processes(proc_config, ACT_PHASE3); in proc_info_caller()
566 send_action_to_child_processes(proc_config, ACT_PHASE4); in proc_info_caller()
720 kill_child_processes(proc_config); in proc_info_caller()
721 free_proc_config(proc_config); in proc_info_caller()
753 proc_config_t proc_config = spawn_child_processes(CONF_PROC_COUNT, proc_info_listpids_handler); variable
783 if (proc_ids[j] == proc_config->child_pids[i]) {
800 kill_child_processes(proc_config);
801 free_proc_config(proc_config);
813 proc_config_t proc_config = spawn_child_processes(CONF_PROC_COUNT, proc_info_listpids_handler); variable
822 …int num_procs = __proc_info(PROC_INFO_CALL_LISTPIDS, PROC_PGRP_ONLY, (uint32_t)proc_config->pro…
826 kill_child_processes(proc_config);
827 free_proc_config(proc_config);
835 proc_config_t proc_config = spawn_child_processes(CONF_PROC_COUNT, proc_info_listpids_handler); variable
846 kill_child_processes(proc_config);
847 free_proc_config(proc_config);
855 proc_config_t proc_config = spawn_child_processes(CONF_PROC_COUNT, proc_info_listpids_handler); variable
859 send_action_to_child_processes(proc_config, ACT_CHANGE_UID);
865 kill_child_processes(proc_config);
866 free_proc_config(proc_config);
874 proc_config_t proc_config = spawn_child_processes(CONF_PROC_COUNT, proc_info_listpids_handler); variable
878 send_action_to_child_processes(proc_config, ACT_CHANGE_RUID);
884 kill_child_processes(proc_config);
885 free_proc_config(proc_config);
898 proc_config_t proc_config = spawn_child_processes(CONF_PROC_COUNT, proc_info_listpids_handler); variable
907 kill_child_processes(proc_config);
908 free_proc_config(proc_config);
1657 …proc_config_t proc_config = spawn_child_processes(1, proc_info_call_pidinfo_handler… variable
1658 int child_pid = proc_config->child_pids[0];
1699 free_proc_config(proc_config);
1706 proc_config_t proc_config = spawn_child_processes(1, proc_info_call_pidinfo_handler); variable
1707 int child_pid = proc_config->child_pids[0];
1726 free_proc_config(proc_config);
1733 proc_config_t proc_config = spawn_child_processes(1, proc_info_call_pidinfo_handler); variable
1734 int child_pid = proc_config->child_pids[0];
1735 send_action_to_child_processes(proc_config, ACT_PHASE5);
1752 kill_child_processes(proc_config);
1753 free_proc_config(proc_config);
1762 proc_config_t proc_config = spawn_child_processes(1, proc_info_call_pidinfo_handler); variable
1763 int child_pid = proc_config->child_pids[0];
1764 send_action_to_child_processes(proc_config, ACT_EXIT);
1773 free_proc_config(proc_config);
1780 proc_config_t proc_config = spawn_child_processes(1, proc_info_call_pidinfo_handler); variable
1781 int child_pid = proc_config->child_pids[0];
1800 free_proc_config(proc_config);