aboutsummaryrefslogtreecommitdiff
path: root/libdiskfs/boot-start.c
diff options
context:
space:
mode:
Diffstat (limited to 'libdiskfs/boot-start.c')
-rw-r--r--libdiskfs/boot-start.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/libdiskfs/boot-start.c b/libdiskfs/boot-start.c
index 7b8a84f5..9dd2751f 100644
--- a/libdiskfs/boot-start.c
+++ b/libdiskfs/boot-start.c
@@ -299,7 +299,7 @@ diskfs_start_bootstrap ()
call (as does any task) to get its state. We can't give it all of
its ports (we'll provide those with a later call to exec_init). */
kern_return_t
-diskfs_S_exec_startup_get_info (mach_port_t port,
+diskfs_S_exec_startup_get_info (struct bootinfo *upt,
vm_address_t *user_entry,
vm_address_t *phdr_data,
vm_size_t *phdr_size,
@@ -322,12 +322,10 @@ diskfs_S_exec_startup_get_info (mach_port_t port,
error_t err;
mach_port_t *portarray, *dtable;
mach_port_t rootport;
- struct ufsport *upt;
struct protid *rootpi;
struct peropen *rootpo;
- if (!(upt = ports_lookup_port (diskfs_port_bucket, port,
- diskfs_execboot_class)))
+ if (! upt)
return EOPNOTSUPP;
*user_entry = 0;
@@ -368,13 +366,12 @@ diskfs_S_exec_startup_get_info (mach_port_t port,
portarray[INIT_PORT_AUTH] = MACH_PORT_NULL;
portarray[INIT_PORT_PROC] = MACH_PORT_NULL;
portarray[INIT_PORT_CTTYID] = MACH_PORT_NULL;
- portarray[INIT_PORT_BOOTSTRAP] = port; /* use the same port */
+ portarray[INIT_PORT_BOOTSTRAP] = upt->pi.port_right; /* use the same port */
*portarraypoly = MACH_MSG_TYPE_MAKE_SEND;
*dtablepoly = MACH_MSG_TYPE_COPY_SEND;
- ports_port_deref (upt);
return 0;
}