summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/autoload.h
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2001-05-03 09:35:08 +0000
committerCorinna Vinschen <corinna@vinschen.de>2001-05-03 09:35:08 +0000
commita6a0193b2fe6f83c7c0970afd5afecf28fba5595 (patch)
tree909bd43eb5c04aab1d3246d390ea4372bc01800b /winsup/cygwin/autoload.h
parentb09e3cf8fdb7927bc14af200b418841ebbae070d (diff)
downloadcygnal-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.h10
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 ();})