This commit was manufactured by cvs2svn to create branch 'cygwin-1-3-2'.
Sprout from cygwin-1-3-1 2001-04-22 16:19:29 UTC cvs2svn 'This commit was manufactured by cvs2svn to create branch 'cygwin-1-3-1'.' Cherrypick from master 2001-05-08 15:16:49 UTC Christopher Faylor <me@cgf.cx> '* cygheap.cc (_cfree): Add regparm attribute.': winsup/cygwin/lib/_cygwin_S_IEXEC.cc winsup/cygwin/localtime.c winsup/cygwin/regexp/regexp.c winsup/cygwin/shortcut.c Delete: winsup/cygwin/autoload.h
This commit is contained in:
parent
4a39e41e48
commit
fbd1d6e2a3
|
@ -1,82 +0,0 @@
|
|||
/* autoload.h: Define functions for auto-loading symbols from a DLL.
|
||||
|
||||
Copyright 1999, 2000 Cygnus Solutions.
|
||||
|
||||
Written by Christopher Faylor <cgf@cygnus.com>
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
This software is a copyrighted work licensed under the terms of the
|
||||
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||
details. */
|
||||
|
||||
#define LoadDLLinitfunc(dllname) \
|
||||
HANDLE NO_COPY dllname ## _handle = NULL; \
|
||||
/*static*/ int dllname ## _init () __asm__ (#dllname "_init"); \
|
||||
/*static*/ int dllname ## _init ()
|
||||
|
||||
#define LoadDLLinitnow(dllname) \
|
||||
({__asm__ ("movl $cygwin_dll_func_load, " #dllname "_init_holder"); dllname##_init ();})
|
||||
|
||||
#define _LoadDLLinitnow(dllname) \
|
||||
__asm__ ("movl $cygwin_dll_func_load, " #dllname "_init_holder"); \
|
||||
__asm__ ("call " #dllname "_init"); \
|
||||
|
||||
#define LoadDLLinit(dllname) \
|
||||
__asm__ (".section .data_cygwin_nocopy,\"w\""); \
|
||||
__asm__ (#dllname "_init_holder: .long " #dllname "_init_and_load"); \
|
||||
__asm__ (".text"); \
|
||||
__asm__ (#dllname "_init_and_load:"); \
|
||||
_LoadDLLinitnow (dllname); \
|
||||
__asm__ ("jmp cygwin_dll_func_load");
|
||||
|
||||
|
||||
/* Macro for defining "auto-load" functions.
|
||||
* Note that this is self-modifying code *gasp*.
|
||||
* The first invocation of a routine will trigger the loading of
|
||||
* the DLL. This will then be followed by the discovery of
|
||||
* the procedure's entry point, which is placed into the location
|
||||
* pointed to by the stack pointer. This code then changes
|
||||
* the "call" operand which invoked it to a "jmp" which will
|
||||
* transfer directly to the DLL function on the next invocation.
|
||||
*
|
||||
* Subsequent calls to routines whose transfer address has not been
|
||||
* determined will skip the "load the dll" step, starting at the
|
||||
* "discovery of the DLL" step.
|
||||
*
|
||||
* So, immediately following the the call to one of the above routines
|
||||
* we have:
|
||||
* foojmp (4 bytes) Pointer to a word containing the routine used
|
||||
* to eventually invoke the function. Initially
|
||||
* points to an init function which loads the
|
||||
* DLL, gets the process's load address,
|
||||
* changes the contents here to point to the
|
||||
* function address, and changes the call *(%eax)
|
||||
* to a jmp %eax. If the initialization has been
|
||||
* done, only the load part is done.
|
||||
* DLL handle (4 bytes) The handle to use when loading the DLL.
|
||||
* flag (4 bytes) If "TRUE" then it is not a fatal error if this
|
||||
* function cannot be found. Instead, error is set
|
||||
* to ERROR_PROC_NOT_FOUND and 0 is returned.
|
||||
* func name (n bytes) asciz string containing the name of the function
|
||||
* to be loaded.
|
||||
*/
|
||||
|
||||
#define LoadDLLmangle(name, n) #name "@" #n
|
||||
#define LoadDLLfunc(name, n, dllname) LoadDLLfuncEx (name, n, dllname, 0)
|
||||
#define LoadDLLfuncEx(name, n, dllname, notimp) \
|
||||
__asm__ (".section .data_cygwin_nocopy,\"w\""); \
|
||||
__asm__ (".global _" LoadDLLmangle (name, n)); \
|
||||
__asm__ (".global _win32_" LoadDLLmangle (name, n)); \
|
||||
__asm__ (".align 8"); \
|
||||
__asm__ ("_" LoadDLLmangle (name, n) ":"); \
|
||||
__asm__ ("_win32_" LoadDLLmangle (name, n) ":"); \
|
||||
__asm__ ("movl (" #name "jump),%eax"); \
|
||||
__asm__ ("call *(%eax)"); \
|
||||
__asm__ (#name "jump: .long " #dllname "_init_holder"); \
|
||||
__asm__ (" .long _" #dllname "_handle"); \
|
||||
__asm__ (" .long " #n "+" #notimp); \
|
||||
__asm__ (".asciz \"" #name "\""); \
|
||||
__asm__ (".text"); \
|
||||
|
||||
extern "C" void cygwin_dll_func_load () __asm__ ("cygwin_dll_func_load");
|
|
@ -19,9 +19,3 @@ unsigned _cygwin_S_IXGRP = S_IXGRP;
|
|||
unsigned _cygwin_S_IXOTH = S_IXOTH;
|
||||
unsigned _cygwin_X_OK = X_OK;
|
||||
};
|
||||
|
||||
extern int __declspec (dllimport) _check_for_executable;
|
||||
struct _cygwin_bob__
|
||||
{
|
||||
_cygwin_bob__ () {_check_for_executable = 1;}
|
||||
} _cygwin_dummy_bob__;
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
/* CYGNUS LOCAL */
|
||||
#include "winsup.h"
|
||||
#define lint
|
||||
#include <windows.h>
|
||||
#define lint
|
||||
|
||||
#define USG_COMPAT
|
||||
|
||||
|
@ -1429,7 +1429,7 @@ tzsetwall P((void))
|
|||
}
|
||||
}
|
||||
#endif /* defined ALL_STATE */
|
||||
#ifdef _WIN32
|
||||
#if defined (_WIN32) || defined (__CYGWIN__)
|
||||
#define is_upper(c) ((unsigned)(c) - 'A' <= 26)
|
||||
{
|
||||
TIME_ZONE_INFORMATION tz;
|
||||
|
|
|
@ -39,9 +39,9 @@
|
|||
#include "winsup.h"
|
||||
#include "regexp.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "regmagic.h"
|
||||
|
||||
/*
|
||||
|
|
|
@ -10,8 +10,9 @@ This software is a copyrighted work licensed under the terms of the
|
|||
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include "winsup.h"
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <shlobj.h>
|
||||
#include "winsup.h"
|
||||
#include <ctype.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mount.h>
|
||||
|
|
Loading…
Reference in New Issue