Age | Commit message (Collapse) | Author |
|
* info.c (get_string_array): Use mmap instead of vm_allocate.
(S_proc_getprocinfo): Likewise.
(S_proc_getloginpids): Likewise.
* mgt.c (S_proc_getallpids): Likewise.
* pgrp.c (S_proc_getsessionpids): Likewise.
(S_proc_getsessionpgids): Likewise.
(S_proc_getpgrppids): Likewise.
|
|
* info.c: Add #include <sys/mman.h> for munmap decl.
* mgt.c: Likewise.
|
|
* info.c (get_string): Use munmap instead of vm_deallocate.
(get_vector): Likewise.
(get_string_array): Likewise.
(S_proc_getprocinfo): Likewise.
* mgt.c (S_proc_reauthenticate): Likewise.
(S_proc_dostop): Likewise.
(add_tasks): Likewise.
|
|
* mgt.c (create_startup_proc): Don't call add_proc_to_hash here.
* main.c (main): Do it here instead, after we have the task port.
|
|
* mgt.c (allocate_proc, complete_proc): New functions, broken
out of new_proc. Remove magic handling of PIDs 0 and 1.
(new_proc): Now just call those two. Made static.
(create_startup_proc): New function, also broken out of old new_proc.
Do special setup for PID 1 (init) proc structure here.
* proc.h: Update decls.
* main.c (main): Use create_startup_proc for startup_proc, and
allocate_proc + complete_proc (with PID 0) for self_proc.
* mgt.c (make_ids): Add const to arguments.
|
|
* mgt.c (add_tasks): Skip invalid (null) rights in tasks array.
* info.c (S_proc_pid2task): Add assert for p_task right validity.
|
|
* mgt.c (S_proc_reassign): Remove unused variable FOO.
|
|
* notify.c (do_mach_notify_dead_name): Remove unnecessary braces.
* msg.c (S_proc_setmsgport): Remove unused variable FOO.
(S_proc_getmsgport): Only check if the message port is still alive
if it is not MACH_PORT_NULL. Use mach_port_type instead of
mach_port_get_refs to check if the port is dead.
* mgt.c (S_proc_reassign): Use mach_port_destroy to release the
old task port.
|
|
* notify.c (do_mach_notify_dead_name): Don't check against
P->p_msgport anymore.
* msg.c (message_port_dead): Delete function.
(S_proc_setmsgport): Don't request a dead-name notification
anymore.
(S_proc_getmsgport): Check to see if P->p_msgport is dead before
returning it.
* mgt.c (S_proc_reassign): Only use mach_port_deallocate to
release P->msgport.
(process_has_exited): Likewise.
* proc.h (message_port_dead): Delete prototype.
|
|
* mgt.c (S_proc_reassign): It's not necessary to re-request the
task-death notification; we've moved both the task right and the
proc port that gets the notification, so delete that.
* mgt.c (S_proc_reassign): Use mach_port_destroy instead of
mach_port_deallocate to release P->p_msgport, for the same reasons
as the changes below.
|
|
* mgt.c (process_has_exited): Use mach_port_destroy instead of
mach_port_deallocate to release P->p_msgport.
(complete_exit): Likewise for P->p_task.
These changes eliminate a race; we are destroying the receiver of
the dead-name notifications on these ports, but if that means we
lose a notification, then the ref-count on the name will get
incremented and we can't re-decrement it since we never hear the
notification.
|
|
|
|
|
|
* mgt.c (add_tasks): Fix vm_deallocate call to use mach_task_self ()
instead of mach_host_self ().
|
|
interruptible RPC.
|
|
them is dead, alert init.
|
|
(which happens only if this is the stub process in proc_reassign).
This because the parent is uninvolved in the death of stubp.
|
|
HSD.
|
|
(S_proc_setowner): Expect and interpret new CLEAR parm.
(S_proc_exception_raise): Set P->p_sigcode; use new
_hurd_exception2signal args.
|
|
|
|
claim/install sequence; the latter has leaves the port out of any hash
table for a time, which produces a race with incoming messages.
|
|
the task port.
|
|
(process_has_exited): Not here.
|
|
|
|
(S_proc_handle_exceptions): Don't set E->replyport.
(S_proc_exception_raise_reply): Function removed.
|
|
Have notifications sent to the correct request port.
Once we've given STUBP's request port to P, don't leave it in STUBP, so
process_has_exited() doesn't dealloc it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|