diff options
author | Roland McGrath <roland@gnu.org> | 1994-10-29 03:14:41 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1994-10-29 03:14:41 +0000 |
commit | a84625a01068054e3d07d1bb819a56d92214d8db (patch) | |
tree | d685e991fd63484278362300ac782ecb0321fc34 /boot | |
parent | 18527e1f057b67c3a3eebb2d402e36e5cba18bf2 (diff) |
entered into RCS
Diffstat (limited to 'boot')
-rw-r--r-- | boot/boot.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/boot/boot.c b/boot/boot.c index 2c9150c8..94d60ef2 100644 --- a/boot/boot.c +++ b/boot/boot.c @@ -383,6 +383,9 @@ main (int argc, char **argv, char **envp) mach_port_deallocate (mach_task_self (), foo); #endif } + else + /* Remove inherited port. The kernel gives none. */ + task_set_bootstrap_port (newtask, MACH_PORT_NULL); child_task = newtask; @@ -410,9 +413,14 @@ main (int argc, char **argv, char **envp) __mach_setup_thread (newtask, newthread, (char *)startpc, &fs_stack_base, &fs_stack_size); else if (boot_like_kernel) - set_mach_stack_args (newtask, newthread, (char *)startpc, - "[BOOTSTRAP fs]", bootstrap_args, php_child_name, - psmdp_child_name, bootdevice, 0); + { + char hp[20], mdp[20]; + sprintf (hp, "%d", (int) php_child_name); + sprintf (mdp, "%d", (int) psmdp_child_name); + set_mach_stack_args (newtask, newthread, (void *) startpc, + "[BOOTSTRAP fs]", bootstrap_args, + hp, mdp, bootdevice, 0); + } else set_mach_stack_args (newtask, newthread, (char *)startpc, "[BOOTSTRAP fs]", bootstrap_args, @@ -513,7 +521,7 @@ set_mach_stack_args (user_task, (thread_state_t)®s, ®_size); - regs.eip = startpc; + regs.eip = (int) startpc; regs.uesp = (int)((stack_end - arg_len) & ~(sizeof(int)-1)); (void)thread_set_state(user_thread, @@ -521,7 +529,7 @@ set_mach_stack_args (user_task, (thread_state_t)®s, reg_size); - arg_pos = regs.uesp; + arg_pos = (void *) regs.uesp; } /* |