diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2013-09-18 15:59:31 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-11-21 05:48:19 +0100 |
commit | 8d16db0cc28b2d911aee918d5c3582ad29ddfeed (patch) | |
tree | 4d957d790ce8a0470ad2dee353d3718a614b7e7d /hurd | |
parent | c99cb9e4ab1bd2683759f35a6878a685bf5e8dd7 (diff) |
Add proc_set_init_task, make runsystem pid 1
* 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.
Diffstat (limited to 'hurd')
-rw-r--r-- | hurd/process.defs | 6 | ||||
-rw-r--r-- | hurd/process_reply.defs | 2 | ||||
-rw-r--r-- | hurd/process_request.defs | 7 |
3 files changed, 12 insertions, 3 deletions
diff --git a/hurd/process.defs b/hurd/process.defs index bf905564..498faba8 100644 --- a/hurd/process.defs +++ b/hurd/process.defs @@ -373,7 +373,11 @@ routine proc_getnports ( /*** Routines related to early server bootstrapping ***/ -skip; /* Reserved for proc_set_init_task */ +/* Set the task of process HURD_PID_INIT. Only the startup process + HURD_PID_STARTUP may use this interface. */ +routine proc_set_init_task ( + process: process_t; + task: task_t); /* Inform the process server that the process is important. */ routine proc_mark_important ( diff --git a/hurd/process_reply.defs b/hurd/process_reply.defs index ed46d55b..80454a6b 100644 --- a/hurd/process_reply.defs +++ b/hurd/process_reply.defs @@ -177,7 +177,7 @@ simpleroutine proc_getnports_reply ( /*** Routines related to early server bootstrapping ***/ -skip; /* Reserved for proc_set_init_task */ +skip; /* proc_set_init_task */ skip; /* proc_mark_important */ simpleroutine proc_is_important_reply ( diff --git a/hurd/process_request.defs b/hurd/process_request.defs index 38e71461..7565f03f 100644 --- a/hurd/process_request.defs +++ b/hurd/process_request.defs @@ -374,7 +374,12 @@ simpleroutine proc_getnports_request ( /*** Routines related to early server bootstrapping ***/ -skip; /* Reserved for proc_set_init_task */ +/* Set the task of process HURD_PID_INIT. Only the startup process + HURD_PID_STARTUP may use this interface. */ +simpleroutine proc_set_init_task_request ( + process: process_t; + ureplyport reply: reply_port_t; + task: task_t); /* Inform the process server that the process is important. */ simpleroutine proc_mark_important_request ( |