#ifndef _process_server_ #define _process_server_ /* Module process */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "mig-decls.h" /* Routine proc_getprivports */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getprivports ( pstruct_t process, mach_port_t *host_priv, mach_port_t *device_master ); /* Routine proc_getallpids */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getallpids ( pstruct_t process, pidarray_t *pidarray, mach_msg_type_number_t *pidarrayCnt ); /* Routine proc_setexecdata */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_setexecdata ( pstruct_t process, portarray_t ports, mach_msg_type_number_t portsCnt, intarray_t ints, mach_msg_type_number_t intsCnt ); /* Routine proc_getexecdata */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getexecdata ( pstruct_t process, portarray_t *ports, mach_msg_type_name_t *portsPoly, mach_msg_type_number_t *portsCnt, intarray_t *ints, mach_msg_type_number_t *intsCnt ); /* Routine proc_execdata_notify */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_execdata_notify ( pstruct_t process, mach_port_t notify ); /* Routine proc_uname */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_uname ( pstruct_t process, utsname_t *uname ); /* Routine proc_register_version */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_register_version ( pstruct_t process, mach_port_t credential, string_t name, string_t release, string_t version ); /* SimpleRoutine proc_reauthenticate */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_reauthenticate ( pstruct_t process, mach_port_t rendezvous2 ); /* Routine proc_child */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_child ( pstruct_t process, mach_port_t child ); /* Routine proc_setmsgport */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_setmsgport ( pstruct_t process, mach_port_t reply_port, mach_msg_type_name_t reply_portPoly, mach_port_t newmsgport, mach_port_t *oldmsgport, mach_msg_type_name_t *oldmsgportPoly ); /* Routine proc_reassign */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_reassign ( pstruct_t process, mach_port_t newtask ); /* Routine proc_setowner */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_setowner ( pstruct_t process, uid_t owner, int clear ); /* Routine proc_getpids */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getpids ( pstruct_t process, pid_t *pid, pid_t *ppid, int *orphaned ); /* Routine proc_set_arg_locations */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_set_arg_locations ( pstruct_t process, vm_address_t argv, vm_address_t envp ); /* Routine proc_get_arg_locations */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_get_arg_locations ( pstruct_t process, vm_address_t *argv, vm_address_t *envp ); /* Routine proc_getmsgport */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getmsgport ( pstruct_t process, mach_port_t reply_port, mach_msg_type_name_t reply_portPoly, pid_t pid, mach_port_t *msgport ); /* Routine proc_wait */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_wait ( pstruct_t process, mach_port_t reply_port, mach_msg_type_name_t reply_portPoly, pid_t pid, int options, int *status, int *sigcode, rusage_t *rusage, pid_t *pid_status ); /* Routine proc_dostop */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_dostop ( pstruct_t process, mach_port_t contthread ); /* Routine proc_handle_exceptions */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_handle_exceptions ( pstruct_t process, mach_port_t msgport, mach_port_t forwardport, int flavor, thread_state_t new_state, mach_msg_type_number_t new_stateCnt ); /* Routine proc_mark_stop */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_mark_stop ( pstruct_t process, int signo, int sigcode ); /* Routine proc_mark_cont */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_mark_cont ( pstruct_t process ); /* Routine proc_mark_exit */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_mark_exit ( pstruct_t process, int status, int sigcode ); /* Routine proc_mark_exec */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_mark_exec ( pstruct_t process ); /* Routine proc_mark_traced */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_mark_traced ( pstruct_t process ); /* Routine proc_mod_stopchild */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_mod_stopchild ( pstruct_t process, int doit ); /* Routine proc_pid2task */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_pid2task ( pstruct_t process, pid_t pid, mach_port_t *task ); /* Routine proc_task2pid */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_task2pid ( pstruct_t process, mach_port_t task, pid_t *pid ); /* Routine proc_task2proc */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_task2proc ( pstruct_t process, mach_port_t task, mach_port_t *proc ); /* Routine proc_proc2task */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_proc2task ( pstruct_t process, mach_port_t *task ); /* Routine proc_pid2proc */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_pid2proc ( pstruct_t process, pid_t pid, mach_port_t *proc ); /* Routine proc_getprocinfo */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getprocinfo ( pstruct_t process, pid_t which, int *flags, procinfo_t *procinfo, mach_msg_type_number_t *procinfoCnt, data_t *threadwaits, mach_msg_type_number_t *threadwaitsCnt ); /* Routine proc_getprocargs */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getprocargs ( pstruct_t process, pid_t which, data_t *procargs, mach_msg_type_number_t *procargsCnt ); /* Routine proc_getprocenv */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getprocenv ( pstruct_t process, pid_t which, data_t *procenv, mach_msg_type_number_t *procenvCnt ); /* Routine proc_make_login_coll */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_make_login_coll ( pstruct_t process ); /* Routine proc_getloginid */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getloginid ( pstruct_t process, pid_t pid, pid_t *login_id ); /* Routine proc_getloginpids */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getloginpids ( pstruct_t process, pid_t id, pidarray_t *pids, mach_msg_type_number_t *pidsCnt ); /* Routine proc_setlogin */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_setlogin ( pstruct_t process, string_t logname ); /* Routine proc_getlogin */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getlogin ( pstruct_t process, string_t logname ); /* Routine proc_setsid */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_setsid ( pstruct_t process ); /* Routine proc_getsid */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getsid ( pstruct_t process, pid_t pid, pid_t *sid ); /* Routine proc_getsessionpgids */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getsessionpgids ( pstruct_t process, pid_t sid, pidarray_t *pgidset, mach_msg_type_number_t *pgidsetCnt ); /* Routine proc_getsessionpids */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getsessionpids ( pstruct_t process, pid_t sid, pidarray_t *pidset, mach_msg_type_number_t *pidsetCnt ); /* Routine proc_getsidport */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getsidport ( pstruct_t process, mach_port_t *sessport, mach_msg_type_name_t *sessportPoly ); /* Routine proc_setpgrp */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_setpgrp ( pstruct_t process, pid_t pid, pid_t pgrp ); /* Routine proc_getpgrp */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getpgrp ( pstruct_t process, pid_t pid, pid_t *pgrp ); /* Routine proc_getpgrppids */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getpgrppids ( pstruct_t process, pid_t pgrp, pidarray_t *pidset, mach_msg_type_number_t *pidsetCnt ); /* Routine proc_get_tty */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_get_tty ( pstruct_t calling_process, pid_t target_process, mach_port_t *tty, mach_msg_type_name_t *ttyPoly ); /* Routine proc_getnports */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_getnports ( pstruct_t process, pid_t which, mach_msg_type_number_t *nports ); /* Routine proc_set_init_task */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_set_init_task ( pstruct_t process, mach_port_t task ); /* Routine proc_mark_important */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_mark_important ( pstruct_t process ); /* Routine proc_is_important */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_is_important ( pstruct_t process, boolean_t *essential ); /* Routine proc_set_code */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_set_code ( pstruct_t process, vm_address_t start_code, vm_address_t end_code ); /* Routine proc_get_code */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_get_code ( pstruct_t process, vm_address_t *start_code, vm_address_t *end_code ); /* Routine proc_make_task_namespace */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_make_task_namespace ( pstruct_t process, mach_port_t notify ); /* Routine proc_user_identify */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_user_identify ( pstruct_t process, mach_port_t rendezvous, mach_port_t *newport, mach_msg_type_name_t *newportPoly, pid_t pid ); /* Routine proc_server_identify */ #ifdef mig_external mig_external #else extern #endif kern_return_t S_proc_server_identify ( pstruct_t process, mach_port_t rendezvous, mach_port_t newport, mach_msg_type_name_t newportPoly, pid_t *pid ); extern mig_routine_t process_server_routines[]; extern inline mig_routine_t process_server_routine (const mach_msg_header_t *InHeadP) { int msgh_id; msgh_id = InHeadP->msgh_id - 24000; if ((msgh_id > 59) || (msgh_id < 0)) return 0; return process_server_routines[msgh_id]; } #endif /* not defined(_process_server_) */