summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/autoload.cc
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2005-04-28 23:59:44 +0000
committerChristopher Faylor <me@cgf.cx>2005-04-28 23:59:44 +0000
commitc4ffa3c427f77224e8a2d58219c9de25666b0b69 (patch)
tree628c949a7dca65aea4684a1a97207f47cf9bdbd5 /winsup/cygwin/autoload.cc
parente525f6d51a38d6648ebba2a2c2b25f31d7bfe5ce (diff)
downloadcygnal-c4ffa3c427f77224e8a2d58219c9de25666b0b69.tar.gz
cygnal-c4ffa3c427f77224e8a2d58219c9de25666b0b69.tar.bz2
cygnal-c4ffa3c427f77224e8a2d58219c9de25666b0b69.zip
* shared_info.h (cygwin_shared_address): Bump to a higher value to avoid
collision with large data areas. * fhandler_console.cc (fhandler_console::get_tty_stuff): Accommodate changes to open_shared arguments. * fhandler_tape.cc (mtinfo_init): Ditto. * pinfo.cc (pinfo::init): Use open_shared rather than win32 mmap calls. * shared.cc (user_shared_initialize): Ditto. (memory_init): Ditto. (open_shared): Change to allow use a smore general mmap handler. * shared_info.h (shared_locations): Add SH_JUSTCREATE, SH_JUSTOPEN. (open_shared): Change declaration to match new usage. * autoload.cc (LoadDLLfuncEx2): Define in terms of LoadDLLfuncEx3. (LoadDLLfuncEx3): New macro.
Diffstat (limited to 'winsup/cygwin/autoload.cc')
-rw-r--r--winsup/cygwin/autoload.cc18
1 files changed, 11 insertions, 7 deletions
diff --git a/winsup/cygwin/autoload.cc b/winsup/cygwin/autoload.cc
index 8986c7924..f264b8608 100644
--- a/winsup/cygwin/autoload.cc
+++ b/winsup/cygwin/autoload.cc
@@ -75,11 +75,15 @@ details. */
/* Standard DLL load macro. May invoke a fatal error if the function isn't
found. */
-#define LoadDLLfunc(name, n, dllname) LoadDLLfuncEx (name, n, dllname, 0)
-#define LoadDLLfuncEx(name, n, dllname, notimp) LoadDLLfuncEx2(name, n, dllname, notimp, 0)
+#define LoadDLLfunc(name, n, dllname) \
+ LoadDLLfuncEx (name, n, dllname, 0)
+#define LoadDLLfuncEx(name, n, dllname, notimp) \
+ LoadDLLfuncEx2(name, n, dllname, notimp, 0)
+#define LoadDLLfuncEx2(name, n, dllname, notimp, err) \
+ LoadDLLfuncEx3(name, n, dllname, notimp, err, 0)
/* Main DLL setup stuff. */
-#define LoadDLLfuncEx2(name, n, dllname, notimp, err) \
+#define LoadDLLfuncEx3(name, n, dllname, notimp, err, fn) \
LoadDLLprime (dllname, dll_func_load) \
__asm__ (" \n\
.section ." #dllname "_text,\"wx\" \n\
@@ -91,11 +95,11 @@ _win32_" mangle (name, n) ": \n\
.byte 0xe9 \n\
.long -4 + 1f - . \n\
1:movl (2f),%eax \n\
- call *(%eax) \n\
+ call *(%eax) \n\
2:.long ." #dllname "_info \n\
- .long (" #n "+" #notimp ") | (((" #err ") & 0xffff) <<16) \n\
- .asciz \"" #name "\" \n\
- .text \n\
+ .long (" #n "+" #notimp ") | (((" #err ") & 0xff) <<16) | (((" #fn ") & 0xff) << 24) \n\
+ .asciz \"" #name "\" \n\
+ .text \n\
");
/* DLL loader helper functions used during initialization. */