diff options
author | Christopher Faylor <me@cgf.cx> | 2005-03-22 19:00:31 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-03-22 19:00:31 +0000 |
commit | b1d9a0bd41fbd1b8bb1424ae79d3be26fb3a4dcd (patch) | |
tree | c98214c49d0cbf3978df204493f9f59441596ee2 /winsup/cygwin/external.cc | |
parent | 7e3fd32b1cfee93aa4d73570940e3781ad2d5680 (diff) | |
download | newlib-b1d9a0bd41fbd1b8bb1424ae79d3be26fb3a4dcd.zip newlib-b1d9a0bd41fbd1b8bb1424ae79d3be26fb3a4dcd.tar.gz newlib-b1d9a0bd41fbd1b8bb1424ae79d3be26fb3a4dcd.tar.bz2 |
* Makefile.in (DLL_OFILES): Add hookapi.o. Eliminate some cruft.
* cygheap.h (cygheap_types): Add new enum: HEAP_1_HOOK.
(hook_chain): New struct.
(init_cygheap::hooks): Define new element.
* cygheap.cc (cygheap_fixup_in_child): Zero hook chain on exec.
* dcrt0.cc (dll_crt0_1): Call ld_preload just before calling main function.
* external.cc (cygwin_internal): Implement CW_HOOK.
* fork.cc (fork_child): Call fixup_hooks_after_fork.
* init.cc (cygwin_hmodule): Reinstate after a long absence.
* include/sys/cygwin.h: Define CW_HOOK.
* hookapi.cc: New file.
* select.cc (start_thread_socket): Add debugging output.
* fhandler_disk_file.cc (fhandler_disk_file::fchmod): gcc 4.x accommodation.
* fhandler_socket.cc (fhandler_socket::connect): Make sure that err is
initialized.
Diffstat (limited to 'winsup/cygwin/external.cc')
-rw-r--r-- | winsup/cygwin/external.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index 56ef0c6..c28039c 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -28,6 +28,8 @@ details. */ #include "pwdgrp.h" #include "cygtls.h" +void *hook_cygwin (const char *, const void *); + static external_pinfo * fillout_pinfo (pid_t pid, int winpid) { @@ -298,6 +300,12 @@ cygwin_internal (cygwin_getinfo_types t, ...) } return p.binmode (); } + case CW_HOOK: + { + const char *name = va_arg (arg, const char *); + const void *hookfn = va_arg (arg, const void *); + return (unsigned long) hook_cygwin (name, hookfn); + } default: return (DWORD) -1; } |