[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH gnumach] kern: create send rights as they are inserted at bootstr

From: Justus Winter
Subject: [PATCH gnumach] kern: create send rights as they are inserted at bootstrap time
Date: Fri, 26 Sep 2014 17:30:07 +0200

Previously, it was impossible to hand e.g. the master device port to
more than one bootstrap task.  Fix this by creating the send right as
it is inserted into the target task.

* kern/bootstrap.c (bootstrap_create): Do not create the send rights
(boot_script_insert_right): ... but here.
 kern/bootstrap.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/kern/bootstrap.c b/kern/bootstrap.c
index d919e90..4edae7b 100644
--- a/kern/bootstrap.c
+++ b/kern/bootstrap.c
@@ -155,13 +155,13 @@ void bootstrap_create(void)
       /* Initialize boot script variables.  We leak these send rights.  */
       losers = boot_script_set_variable
        ("host-port", VAL_PORT,
-        (long)ipc_port_make_send(realhost.host_priv_self));
+        (long) realhost.host_priv_self);
       if (losers)
        panic ("cannot set boot-script variable host-port: %s",
               boot_script_error_string (losers));
       losers = boot_script_set_variable
        ("device-port", VAL_PORT,
-        (long) ipc_port_make_send(master_device_port));
+        (long) master_device_port);
       if (losers)
        panic ("cannot set boot-script variable device-port: %s",
               boot_script_error_string (losers));
@@ -838,7 +838,8 @@ boot_script_free_task (task_t task, int aborting)
 boot_script_insert_right (struct cmd *cmd, mach_port_t port, mach_port_t *name)
-  *name = task_insert_send_right (cmd->task, (ipc_port_t)port);
+  *name = task_insert_send_right (cmd->task,
+                                 ipc_port_make_send((ipc_port_t) port));
   return 0;

reply via email to

[Prev in Thread] Current Thread [Next in Thread]