diff options
author | Roland McGrath <roland@gnu.org> | 1995-04-24 09:00:07 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-04-24 09:00:07 +0000 |
commit | 11872325e2cf0443e17d50eebbf883eb0c24ea27 (patch) | |
tree | 7b43aa9bc213e898d1f3add3cb6b6fec42503086 /hurd/hurd.h | |
parent | b96bdcd7d92fb44e9e2ad2458fdff03bda715151 (diff) | |
download | glibc-11872325e2cf0443e17d50eebbf883eb0c24ea27.tar glibc-11872325e2cf0443e17d50eebbf883eb0c24ea27.tar.gz glibc-11872325e2cf0443e17d50eebbf883eb0c24ea27.tar.bz2 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.h | 17 |
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. */ |