summary refs log tree commit diff
path: root/hurd/hurd.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-04-24 09:00:07 +0000
committerRoland McGrath <roland@gnu.org>1995-04-24 09:00:07 +0000
commit11872325e2cf0443e17d50eebbf883eb0c24ea27 (patch)
tree7b43aa9bc213e898d1f3add3cb6b6fec42503086 /hurd/hurd.h
parentb96bdcd7d92fb44e9e2ad2458fdff03bda715151 (diff)
downloadglibc-11872325e2cf0443e17d50eebbf883eb0c24ea27.tar.gz
glibc-11872325e2cf0443e17d50eebbf883eb0c24ea27.tar.xz
glibc-11872325e2cf0443e17d50eebbf883eb0c24ea27.zip
Sat Apr 22 14:48:03 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
	* mach/Machrules [interface-library]
 	(LDFLAGS-$(interface-library:lib%=%.so)): New variable, set to
 	-nostdlib.

	* sysdeps/mach/hurd/fork.c: Subfunction `unlockss' removed.  Lock
 	_hurd_siglock only around initial task creation in parent.  Use
 	_hurd_critical_section_unlock at end.  Handle dead name rights
 	properly, and deal with a send right dying while we try to copy
 	it.  For the time being, use assert_perror for kernel and proc RPC
 	failures.

Fri Apr 21 01:10:15 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* extra-lib.mk: Don't include $(o-iterator); construct it by hand
 	using $(object-suffixes-$(lib)) instead.

	* sysdeps/mach/hurd/Makefile (LDLIBS-c.so): New variable.

	* Makerules (lib%.so: lib%_pic.a): Pass $(LDFLAGS-$(notdir $*).so).
	(LDFLAGS-c.so): New variable.

	* resolv/res_init.c (res_init): Don't clobber _res.options with
 	RES_DEFAULT.  If RES_INIT is clear, OR in RES_DEFAULT.

	* hurd/hurd.h: Declare _hurd_startup.
	* hurd/hurdstartup.c: New file.
	* hurd/Makefile (routines): Add hurdstartup.
Diffstat (limited to 'hurd/hurd.h')
-rw-r--r--hurd/hurd.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/hurd/hurd.h b/hurd/hurd.h
index 968910fffb..77b8acf9d0 100644
--- a/hurd/hurd.h
+++ b/hurd/hurd.h
@@ -227,6 +227,23 @@ extern error_t _hurd_exec (task_t task,
 extern void _hurd_exit (int status) __attribute__ ((noreturn));
 
 
+/* Initialize Mach RPCs and essential Hurd things (_hurd_preinit_hook); do
+   initial handshake with the exec server (or extract the arguments from
+   the stack in the case of the bootstrap task); if cthreads is in use,
+   initialize it now and switch the calling thread to a cthread stack;
+   finally, call *MAIN with the information gleaned.  That function is not
+   expected to return.  ARGPTR should be the address of the first argument
+   of the entry point function that is called with the stack exactly as the
+   exec server or kernel sets it.  */
+
+extern void _hurd_startup (void **argptr,
+			   void (*main) (int argc, char **argv, char **envp,
+					 mach_port_t *portarray,
+					 mach_msg_type_number_t portarraysize,
+					 int *intarray,
+					 mach_msg_type_number_t intarraysize))
+     __attribute__ ((noreturn));
+
 /* Initialize the library data structures from the
    ints and ports passed to us by the exec server.
    Then vm_deallocate PORTARRAY and INTARRAY.  */