Age | Commit message (Collapse) | Author |
|
For coherency with the existing RPCs
|
|
So that existing callers can still compile, and just get MIG_BAD_ID.
|
|
And add proc_complete_reauthentication ()
|
|
Now that it's completely unused.
procinfo.owner is now simply set to the first UID that a process has.
proc_setowner () is kept for compatibility, but now does nothing.
The clients still try to call it, though, for compatibility with older
proc server versions.
|
|
This is a new RPC to atomically change the UIDs of a process, recreate its
process port, and reassign a different task to it.
|
|
proc_wait assumes that the caller always wants WEXITED, but waitid()
does not. The new proc_waitid RPC requires the caller to specify at
least one of WEXITED, WSTOPPED, or WCONTINUED.
* hurd/process.defs (proc_waitid): New RPC.
* hurd/process_reply.defs (proc_waitid): New RPC.
* hurd/process_request.defs (proc_waitid): New RPC.
* proc/proc.h (struct proc): Add p_continued field.
* proc/wait.c (WCONTINUED, WEXITED): Define if not already defined.
(S_proc_wait): Rename implementation to S_proc_waitid, and modify to
stop assuming WEXITED. Add support for WCONTINUED.
(S_proc_wait): Reimplement by just calling S_proc_waitid with an
additional WEXITED.
(proc_mark_stop): Clear p_continued.
(proc_mark_cont): Set p_continued, clear p_waited, wake any waiting
parent.
|
|
* hurd/process.defs (proc_set_entry, proc_get_entry): New RPCs.
* hurd/process_reply.defs: Add skips for proc_set_entry, proc_get_entry.
* hurd/process_request.defs: Likewise.
* exec/exec.c (do_exec): Call proc_set_entry.
* proc/proc.h (proc): Add p_entry field.
* proc/mgt.c (S_proc_set_entry, S_proc_get_entry): New RPC
implementations.
* exec/elfcore.c (dump_core): Add at_entry note, call proc_get_entry to
get it, and write it with WRITE_NOTE.
|
|
* hurd/process.defs: Reserve IDs for proc_set_exe and proc_get_exe
* hurd/process_reply.defs: Likewise.
* hurd/process_request.defs: Likewise.
|
|
by fixing the subsystem name into containing _request.
* hurd/auth_request.defs: Set subsystem name to auth_request.
* hurd/io_request.defs: Set subsystem name to io_request.
* hurd/process_request.defs: Set subsystem name to process_request.
|
|
* hurd/process_request.defs (proc_make_task_namespace_request): New
definition.
* hurd/process_reply.defs (proc_make_task_namespace_reply): Skip definition.
|
|
* hurd/process.defs (proc_set_init_task): New procedure.
* hurd/process_reply.defs (proc_set_init_task): Likewise.
* hurd/process_request.defs (proc_set_init_task): Likewise.
* include/pids.h: Add HURD_PID_INIT as 1, adjust others accordingly.
* init/init.c (start_child): Register the child task.
* proc/proc.h (init_proc): New variable.
(create_startup_proc): Rename to create_init_proc.
* proc/main.c (main): Create placeholder proc object for pid 1.
* proc/mgt.c: Use init_proc instead of startup_proc, as the former is
the new root of the process tree.
(create_startup_proc): Rename to create_init_proc.
(S_proc_set_init_task): New function.
* doc/hurd.texi (Server Bootstrap): Update accordingly.
* procfs/main.c: Do not hard-code kernel pid, use pids.h instead.
|
|
Add routines to set and query the processes start_code and end_code
locations. Any executable segments loaded from the ELF binary are in
this range.
* hurd/process.defs: Add proc_{get,set}_code.
* hurd/process_reply.defs: Add proc_{get,set}_code.
* hurd/process_request.defs: Add proc_{get,set}_code_request.
|
|
This is based on a fragment of Guillem Jovers patch presented here:
http://lists.gnu.org/archive/html/bug-hurd/2006-02/msg00081.html
It has been refreshed, updated and the copyright year is adjusted
properly. It has been complemented with the necessary features to
address the issues the original patch set out to address, namely
that killall5 freezes the proc translator before it tries to walk
over /proc/*/stat to decide which process to kill. Prior to this
patch (and the one marking the procfs server as important
process), killall5 would deadlock trying to walk over the proc
file system.
Ironically it would not have killed any process later on even if
it had the chance, since two values obtained from /proc/*/stat
are currently hardcoded to zero in our procfs. Patches addressing
the problem as a whole are prepared and will be sent as a follow
up.
* hurd/process.defs (proc_mark_important): New routine definitions.
* hurd/process_reply.defs (proc_mark_important_request): Likewise.
* hurd/process_request.defs (proc_mark_important_request): Likewise.
|
|
* hurd/process.defs: Reserve RPC ID for proc_set_init_task.
* hurd/process_reply.defs: Likewise.
* hurd/process_request.defs: Likewise.
|
|
Add (and implement) a proc RPC to obtain the number of Mach ports used
by the target task.
Add infrastructure in libps to read this information.
* hurd/process.defs (proc_getnports): New RPC.
* hurd/process_request.defs (proc_getnports_request): New RPC.
* libps/procstat.c (proc_stat_set_flags): Call proc_getnports RPC if
needed.
* libps/ps.h (proc_stat): New `num_ports' field.
(PSTAT_NUM_PORTS): New macro.
(proc_stat_num_ports): New macro.
* libps/spec.c (ps_get_num_ports): New function.
(ps_num_ports_getter): New variable.
(specs): New entry for `ps_num_ports_getter'.
* proc/info.c (S_proc_getnports): New function.
|
|
* process_request.defs: Delete proc_sethostid, proc_gethostid,
proc_sethostname, and proc_gethostname.
|
|
|
|
|