Index: boot/boot.c
===================================================================
RCS file: /cvsroot/hurd/hurd/boot/boot.c,v
retrieving revision 1.108
diff -u -r1.108 boot.c
--- boot/boot.c	13 Jun 2002 20:57:45 -0000	1.108
+++ boot/boot.c	9 Aug 2003 12:03:56 -0000
@@ -33,7 +33,7 @@
 #include <fcntl.h>
 #include <elf.h>
 #include <mach/mig_support.h>
-#include <mach/default_pager.h>
+#include <mach/default_pager_object.h>
 #include <argp.h>
 #include <hurd/store.h>
 #include <sys/mman.h>
@@ -177,7 +177,9 @@
   extern int term_server (mach_msg_header_t *, mach_msg_header_t *);
 /*  extern int tioctl_server (mach_msg_header_t *, mach_msg_header_t *); */
   extern int bootstrap_server (mach_msg_header_t *, mach_msg_header_t *);
+#ifndef OSFMACH
   extern void bootstrap_compat ();
+#endif
 
 #if 0
   if (inp->msgh_local_port == bootport && boot_like_cmudef)
@@ -402,6 +404,17 @@
     thread_set_state (thread, ALPHA_THREAD_STATE,
 		      (thread_state_t) &regs, reg_size);
   }
+#elif defined PPC_THREAD_STATE_COUNT
+ {
+   struct ppc_thread_state regs;
+   reg_size = PPC_THREAD_STATE_COUNT;
+   thread_get_state (thread, PPC_THREAD_STATE,
+		     (thread_state_t) &regs, &reg_size);
+   regs.r1 = (natural_t) arg_pos;
+   regs.srr0 = startpc;
+   thread_set_state (thread, PPC_THREAD_STATE,
+		     (thread_state_t) &regs, reg_size);
+ }
 #else
 # error needs to be ported
 #endif
@@ -850,8 +863,54 @@
 /*
  *	Handle bootstrap requests.
  */
-/* These two functions from .../mk/bootstrap/default_pager.c. */
 
+#ifdef OSFMACH
+kern_return_t
+do_bootstrap_ports (bootstrap, priv_host, priv_device,
+		    wired_ledger, paged_ledger, host_security)
+     mach_port_t bootstrap;
+     mach_port_t *priv_host;
+     mach_port_t *priv_device;
+     mach_port_t *wired_ledger;
+     mach_port_t *paged_ledger;
+     mach_port_t *host_security;
+{
+  *priv_host = privileged_host_port;
+  *priv_device = pseudo_master_device_port;
+  *wired_ledger = *paged_ledger = *host_security = MACH_PORT_NULL;
+  return KERN_SUCCESS;
+}
+
+kern_return_t
+do_bootstrap_arguments (bootstrap, task, arguments, argumentsCnt)
+     mach_port_t bootstrap;
+     mach_port_t task;
+     vm_offset_t *arguments;
+     mach_msg_type_number_t *argumentsCnt;
+{
+  return EOPNOTSUPP;
+}
+
+kern_return_t
+do_bootstrap_environment (bootstrap, task, environment, environmentCnt)
+     mach_port_t bootstrap;
+     mach_port_t task;
+     vm_offset_t *environment;
+     mach_msg_type_number_t *environmentCnt;
+{
+  return EOPNOTSUPP;
+}
+
+kern_return_t
+do_bootstrap_completed (bootstrap, task)
+     mach_port_t bootstrap;
+     mach_port_t task;
+{
+  return EOPNOTSUPP;
+}
+#else
+
+/* These two functions from .../mk/bootstrap/default_pager.c. */
 kern_return_t
 do_bootstrap_privileged_ports(bootstrap, hostp, devicep)
 	mach_port_t bootstrap;
@@ -923,6 +982,7 @@
 
 	reply->RetCode = MIG_NO_REPLY;
 }
+#endif  /* OSFMACH */
 
 /* Implementation of device interface */
 
@@ -930,7 +990,13 @@
 ds_device_open (mach_port_t master_port,
 		mach_port_t reply_port,
 		mach_msg_type_name_t reply_type,
+#ifdef KERN_INVALID_LEDGER
+		mach_port_t ledger,
+#endif
 		dev_mode_t mode,
+#ifdef KERNEL_SECURITY_TOKEN_VALUE
+		security_token_t sec_token,
+#endif
 		dev_name_t name,
 		mach_port_t *device,
 		mach_msg_type_name_t *devicetype)
@@ -959,7 +1025,15 @@
     }
 
   *devicetype = MACH_MSG_TYPE_MOVE_SEND;
-  return device_open (master_device_port, mode, name, device);
+  return device_open (master_device_port,
+#ifdef KERN_INVALID_LEDGER
+		      ledger,
+#endif
+		      mode,
+#ifdef KERNEL_SECURITY_TOKEN_VALUE
+		      sec_token,
+#endif
+		      name, device);
 }
 
 kern_return_t
@@ -1260,6 +1334,23 @@
     return D_NO_SUCH_DEVICE;
   return D_INVALID_OPERATION;
 }
+
+#ifdef OSFMACH
+kern_return_t
+ds_io_done_queue_create (host, queue)
+     mach_port_t host;
+     mach_port_t *queue;
+{
+  return EOPNOTSUPP;
+}
+
+kern_return_t
+ds_io_done_queue_terminate (queue)
+     mach_port_t queue;
+{
+  return EOPNOTSUPP;
+}
+#endif
 
 
 /* Implementation of notify interface */
Index: boot/boot_script.c
===================================================================
RCS file: /cvsroot/hurd/hurd/boot/boot_script.c,v
retrieving revision 1.15
diff -u -r1.15 boot_script.c
--- boot/boot_script.c	4 Jan 2003 21:30:10 -0000	1.15
+++ boot/boot_script.c	9 Aug 2003 12:03:56 -0000
@@ -2,13 +2,16 @@
 
 /* Written by Shantanu Goel (goel@cs.columbia.edu).  */
 
+#ifdef OSFMACH
+#include <mach.h>
+#else
 #include <mach/mach_types.h>
+#endif
 #if !KERNEL || OSKIT_MACH
 #include <string.h>
 #endif
 #include "boot_script.h"
 
-
 /* This structure describes a symbol.  */
 struct sym
 {
@@ -507,6 +510,7 @@
       cmdline_index = strlen (cmd->path) + 1;
       cmdline_alloc = cmdline_index + 100;
       cmdline = boot_script_malloc (cmdline_alloc);
+
       if (! cmdline)
 	{
 	  cleanup (1);
Index: boot/userland-boot.c
===================================================================
RCS file: /cvsroot/hurd/hurd/boot/userland-boot.c,v
retrieving revision 1.4
diff -u -r1.4 userland-boot.c
--- boot/userland-boot.c	17 Aug 2001 19:50:27 -0000	1.4
+++ boot/userland-boot.c	9 Aug 2003 12:03:57 -0000
@@ -40,7 +40,11 @@
 int
 boot_script_task_create (struct cmd *cmd)
 {
-  error_t err = task_create (mach_task_self (), 0, &cmd->task);
+  error_t err = task_create (mach_task_self (),
+#ifdef KERN_INVALID_LEDGER
+			     NULL, 0,  /* OSF Mach */
+#endif
+			     0, &cmd->task);
   if (err)
     {
       error (0, err, "%s: task_create", cmd->path);
@@ -49,9 +53,20 @@
   err = task_suspend (cmd->task);
   if (err)
     {
-      error (0, err, "%s: task_resume", cmd->path);
+      error (0, err, "%s: task_suspend", cmd->path);
       return BOOT_SCRIPT_MACH_ERROR;
     }
+#if 1
+  extern mach_port_t exception_port;
+  if (mach_port_insert_right (cmd->task, exception_port,
+			      exception_port, MACH_MSG_TYPE_COPY_SEND)
+      || task_set_exception_ports (cmd->task, EXC_MASK_ALL &
+				   ~(EXC_MASK_SYSCALL | EXC_MASK_MACH_SYSCALL
+				     | EXC_MASK_RPC_ALERT), exception_port,
+				   EXCEPTION_STATE_IDENTITY,
+				   MACHINE_THREAD_STATE))
+    fprintf (stderr, "warning: can't set exception port for child task\n");
+#endif
   return 0;
 }
 

