diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2001-05-03 09:35:08 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2001-05-03 09:35:08 +0000 |
commit | a6a0193b2fe6f83c7c0970afd5afecf28fba5595 (patch) | |
tree | 909bd43eb5c04aab1d3246d390ea4372bc01800b /winsup/cygwin/autoload.h | |
parent | b09e3cf8fdb7927bc14af200b418841ebbae070d (diff) | |
download | cygnal-a6a0193b2fe6f83c7c0970afd5afecf28fba5595.tar.gz cygnal-a6a0193b2fe6f83c7c0970afd5afecf28fba5595.tar.bz2 cygnal-a6a0193b2fe6f83c7c0970afd5afecf28fba5595.zip |
* autoload.cc: Use new definition of LoadDLLinitfunc throughout.
Redefine wrapper for wsock32.dll and ws2_32.dll.
(std_dll_init): New function.
* autoload.h: Rename LoadDLLinitfunc to LoadDLLinitfuncdef.
Add new defines LoadDLLinitfunc and LoadDLLstdfunc.
* net.cc (wsock_init): Add guard variable handling. Take care
to call WSAStartup only once. Load WSAStartup without using
autoload wrapper to eliminate recursion. Eliminate FIONBIO
and srandom stuff.
Diffstat (limited to 'winsup/cygwin/autoload.h')
-rw-r--r-- | winsup/cygwin/autoload.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/winsup/cygwin/autoload.h b/winsup/cygwin/autoload.h index b51df4121..c7f8e32e1 100644 --- a/winsup/cygwin/autoload.h +++ b/winsup/cygwin/autoload.h @@ -11,10 +11,20 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for details. */ #define LoadDLLinitfunc(dllname) \ +LoadDLLinitfuncdef(dllname) \ +{ \ + return LoadDLLstdfunc(dllname); \ +} + +#define LoadDLLinitfuncdef(dllname) \ HANDLE NO_COPY dllname ## _handle = NULL; \ +LONG NO_COPY dllname ## _here = -1L; \ /*static*/ int dllname ## _init () __asm__ (#dllname "_init"); \ /*static*/ int dllname ## _init () +#define LoadDLLstdfunc(dllname) \ + std_dll_init (dllname ## _handle, #dllname ".dll", dllname ## _here) + #define LoadDLLinitnow(dllname) \ ({__asm__ ("movl $cygwin_dll_func_load, " #dllname "_init_holder"); dllname##_init ();}) |