diff options
author | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-04-04 18:17:54 +0200 |
---|---|---|
committer | Justus Winter <4winter@informatik.uni-hamburg.de> | 2014-04-05 13:40:08 +0200 |
commit | e27425e63392683b85101961489a83e0abef133b (patch) | |
tree | 19f3df8c48ab61a069fa661c5973af8ee6925678 /libdiskfs/boot-start.c | |
parent | f274c66b2141aca0f332e272b77cd0a048cef7f6 (diff) | |
download | hurd-e27425e63392683b85101961489a83e0abef133b.tar.gz hurd-e27425e63392683b85101961489a83e0abef133b.tar.bz2 hurd-e27425e63392683b85101961489a83e0abef133b.zip |
libdiskfs: fix receiver lookup
* libdiskfs/Makefile (exec_startup-MIGSFLAGS): New variable.
* libdiskfs/diskfs.h (struct bootinfo): New struct declaration.
(diskfs_begin_using_bootinfo_port): New function.
(diskfs_end_using_bootinfo): Likewise.
* libdiskfs/fsmutations.h: Add mutators for exec_startup_t.
* libdiskfs/priv.h (bootinfo_t): New type declaration to appease mig.
* libdiskfs/boot-start.c (S_exec_startup_get_info): Fix receiver lookup.
Diffstat (limited to 'libdiskfs/boot-start.c')
-rw-r--r-- | libdiskfs/boot-start.c | 9 |
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; } |