summaryrefslogtreecommitdiff
path: root/hurd
diff options
context:
space:
mode:
authorJustus Winter <4winter@informatik.uni-hamburg.de>2013-09-18 15:59:31 +0200
committerJustus Winter <4winter@informatik.uni-hamburg.de>2014-11-21 05:48:19 +0100
commit8d16db0cc28b2d911aee918d5c3582ad29ddfeed (patch)
tree4d957d790ce8a0470ad2dee353d3718a614b7e7d /hurd
parentc99cb9e4ab1bd2683759f35a6878a685bf5e8dd7 (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.defs6
-rw-r--r--hurd/process_reply.defs2
-rw-r--r--hurd/process_request.defs7
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 (