Changeset 21889 for branches/gcc-kmk/src


Ignore:
Timestamp:
Dec 15, 2011, 12:21:58 PM (14 years ago)
Author:
dmik
Message:

Port IMAGEHLP to GCC/kBuild.

Location:
branches/gcc-kmk/src
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • branches/gcc-kmk/src/Makefile.kmk

    r21884 r21889  
    4949include $(PATH_SUB_CURRENT)/avicap32/Makefile.kmk
    5050include $(PATH_SUB_CURRENT)/avifil32/Makefile.kmk
     51include $(PATH_SUB_CURRENT)/imagehlp/Makefile.kmk
    5152
    5253include $(FILE_KBUILD_SUB_FOOTER)
  • branches/gcc-kmk/src/imagehlp/imagehlp.def

    r4809 r21889  
    99
    1010EXPORTS
    11     BindImage           = _BindImage@12         @1
    12     BindImageEx         = _BindImageEx@20       @2
    13     CheckSumMappedFile      = _CheckSumMappedFile@16    @3
    14     EnumerateLoadedModules  = _EnumerateLoadedModules@12    @4
    15     FindDebugInfoFile       = _FindDebugInfoFile@12     @5
    16     FindExecutableImage     = _FindExecutableImage@12  @6
    17     GetImageConfigInformation   = _GetImageConfigInformation@8  @7
    18     GetImageUnusedHeaderBytes   = _GetImageUnusedHeaderBytes@8  @8
    19     GetTimestampForLoadedLibrary= _GetTimestampForLoadedLibrary@4  @9
    20     ImageAddCertificate     = _ImageAddCertificate@12  @10
    21     ImageDirectoryEntryToData   = _ImageDirectoryEntryToData@16 @11
    22     ImageEnumerateCertificates  = _ImageEnumerateCertificates@20    @12
    23     ImageGetCertificateData = _ImageGetCertificateData@16  @13
    24     ImageGetCertificateHeader   = _ImageGetCertificateHeader@12 @14
    25     ImageGetDigestStream    = _ImageGetDigestStream@16  @15
    26     ImageLoad           = _ImageLoad@8          @16
    27     ImageNtHeader       = _ImageNtHeader@4      @17
    28     ImageRemoveCertificate  = _ImageRemoveCertificate@8 @18
    29     ImageRvaToSection       = _ImageRvaToSection@12     @19
    30     ImageRvaToVa        = _ImageRvaToVa@16      @20
    31     ImageUnload         = _ImageUnload@4        @21
    32     ImagehlpApiVersion      = _ImagehlpApiVersion@0     @22
    33     ImagehlpApiVersionEx    = _ImagehlpApiVersionEx@4  @23
    34     MakeSureDirectoryPathExists = _MakeSureDirectoryPathExists@4    @24
    35     MapAndLoad          = _MapAndLoad@20        @25
    36     MapDebugInformation     = _MapDebugInformation@16  @26
    37     MapFileAndCheckSumA     = _MapFileAndCheckSumA@12  @27
    38     MapFileAndCheckSumW     = _MapFileAndCheckSumW@12  @28
     11    BindImage           = "_BindImage@12"       @1
     12    BindImageEx         = "_BindImageEx@20"     @2
     13    CheckSumMappedFile      = "_CheckSumMappedFile@16"  @3
     14    EnumerateLoadedModules  = "_EnumerateLoadedModules@12"  @4
     15    FindDebugInfoFile       = "_FindDebugInfoFile@12"   @5
     16    FindExecutableImage     = "_FindExecutableImage@12" @6
     17    GetImageConfigInformation   = "_GetImageConfigInformation@8"  @7
     18    GetImageUnusedHeaderBytes   = "_GetImageUnusedHeaderBytes@8"  @8
     19    GetTimestampForLoadedLibrary= "_GetTimestampForLoadedLibrary@4" @9
     20    ImageAddCertificate     = "_ImageAddCertificate@12" @10
     21    ImageDirectoryEntryToData   = "_ImageDirectoryEntryToData@16" @11
     22    ImageEnumerateCertificates  = "_ImageEnumerateCertificates@20"  @12
     23    ImageGetCertificateData = "_ImageGetCertificateData@16" @13
     24    ImageGetCertificateHeader   = "_ImageGetCertificateHeader@12" @14
     25    ImageGetDigestStream    = "_ImageGetDigestStream@16"  @15
     26    ImageLoad           = "_ImageLoad@8"        @16
     27    ImageNtHeader       = "_ImageNtHeader@4"    @17
     28    ImageRemoveCertificate  = "_ImageRemoveCertificate@8" @18
     29    ImageRvaToSection       = "_ImageRvaToSection@12"   @19
     30    ImageRvaToVa        = "_ImageRvaToVa@16"    @20
     31    ImageUnload         = "_ImageUnload@4"      @21
     32    ImagehlpApiVersion      = "_ImagehlpApiVersion@0"   @22
     33    ImagehlpApiVersionEx    = "_ImagehlpApiVersionEx@4" @23
     34    MakeSureDirectoryPathExists = "_MakeSureDirectoryPathExists@4"  @24
     35    MapAndLoad          = "_MapAndLoad@20"      @25
     36    MapDebugInformation     = "_MapDebugInformation@16" @26
     37    MapFileAndCheckSumA     = "_MapFileAndCheckSumA@12" @27
     38    MapFileAndCheckSumW     = "_MapFileAndCheckSumW@12" @28
    3939;    MarkImageAsRunFromSwap = _MarkImageAsRunFromSwap   @29
    40     ReBaseImage         = _ReBaseImage@44       @30
    41     RemovePrivateCvSymbolic = _RemovePrivateCvSymbolic@12  @31
    42     RemoveRelocations       = _RemoveRelocations@4      @32
    43     SearchTreeForFile       = _SearchTreeForFile@12     @33
    44     SetImageConfigInformation   = _SetImageConfigInformation@8  @34
    45     SplitSymbols        = _SplitSymbols@16      @35
    46     StackWalk           = _StackWalk@36         @36
    47     SymCleanup          = _SymCleanup@4         @37
    48     SymEnumerateModules     = _SymEnumerateModules@12  @38
    49     SymEnumerateSymbols     = _SymEnumerateSymbols@16  @39
    50     SymFunctionTableAccess  = _SymFunctionTableAccess@8 @40
    51     SymGetModuleBase        = _SymGetModuleBase@8       @41
    52     SymGetModuleInfo        = _SymGetModuleInfo@12      @42
    53     SymGetOptions       = _SymGetOptions@0      @43
    54     SymGetSearchPath        = _SymGetSearchPath@12      @44
    55     SymGetSymFromAddr       = _SymGetSymFromAddr@16     @45
    56     SymGetSymFromName       = _SymGetSymFromName@12     @46
    57     SymGetSymNext       = _SymGetSymNext@8      @47
    58     SymGetSymPrev       = _SymGetSymPrev@8      @48
    59     SymInitialize       = _SymInitialize@12     @49
    60     SymLoadModule       = _SymLoadModule@24     @50
    61     SymRegisterCallback     = _SymRegisterCallback@12  @51
    62     SymSetOptions       = _SymSetOptions@4      @52
    63     SymSetSearchPath        = _SymSetSearchPath@8       @53
    64     SymUnDName          = _SymUnDName@12        @54
    65     SymUnloadModule     = _SymUnloadModule@8        @55
    66     TouchFileTimes      = _TouchFileTimes@8     @56
    67     UnDecorateSymbolName    = _UnDecorateSymbolName@16  @57
    68     UnMapAndLoad        = _UnMapAndLoad@4       @58
    69     UnmapDebugInformation   = _UnmapDebugInformation@4  @59
    70     UpdateDebugInfoFile     = _UpdateDebugInfoFile@16  @60
    71     UpdateDebugInfoFileEx   = _UpdateDebugInfoFileEx@20 @61
     40    ReBaseImage         = "_ReBaseImage@44"     @30
     41    RemovePrivateCvSymbolic = "_RemovePrivateCvSymbolic@12" @31
     42    RemoveRelocations       = "_RemoveRelocations@4"    @32
     43    SearchTreeForFile       = "_SearchTreeForFile@12"   @33
     44    SetImageConfigInformation   = "_SetImageConfigInformation@8"  @34
     45    SplitSymbols        = "_SplitSymbols@16"    @35
     46    StackWalk           = "_StackWalk@36"       @36
     47    SymCleanup          = "_SymCleanup@4"       @37
     48    SymEnumerateModules     = "_SymEnumerateModules@12" @38
     49    SymEnumerateSymbols     = "_SymEnumerateSymbols@16" @39
     50    SymFunctionTableAccess  = "_SymFunctionTableAccess@8" @40
     51    SymGetModuleBase        = "_SymGetModuleBase@8"     @41
     52    SymGetModuleInfo        = "_SymGetModuleInfo@12"    @42
     53    SymGetOptions       = "_SymGetOptions@0"    @43
     54    SymGetSearchPath        = "_SymGetSearchPath@12"    @44
     55    SymGetSymFromAddr       = "_SymGetSymFromAddr@16"   @45
     56    SymGetSymFromName       = "_SymGetSymFromName@12"   @46
     57    SymGetSymNext       = "_SymGetSymNext@8"    @47
     58    SymGetSymPrev       = "_SymGetSymPrev@8"    @48
     59    SymInitialize       = "_SymInitialize@12"   @49
     60    SymLoadModule       = "_SymLoadModule@24"   @50
     61    SymRegisterCallback     = "_SymRegisterCallback@12" @51
     62    SymSetOptions       = "_SymSetOptions@4"    @52
     63    SymSetSearchPath        = "_SymSetSearchPath@8"     @53
     64    SymUnDName          = "_SymUnDName@12"      @54
     65    SymUnloadModule     = "_SymUnloadModule@8"      @55
     66    TouchFileTimes      = "_TouchFileTimes@8"   @56
     67    UnDecorateSymbolName    = "_UnDecorateSymbolName@16"  @57
     68    UnMapAndLoad        = "_UnMapAndLoad@4"     @58
     69    UnmapDebugInformation   = "_UnmapDebugInformation@4"  @59
     70    UpdateDebugInfoFile     = "_UpdateDebugInfoFile@16" @60
     71    UpdateDebugInfoFileEx   = "_UpdateDebugInfoFileEx@20" @61
  • branches/gcc-kmk/src/imagehlp/initterm.cpp

    r6646 r21889  
    11/* $Id: initterm.cpp,v 1.7 2001-09-05 12:55:49 bird Exp $
    22 *
    3  * DLL entry point
     3 * IMAGEHLP DLL entry point
    44 *
    55 * Copyright 1998 Sander van Leeuwen
    66 * Copyright 1998 Peter Fitzsimmons
    77 *
    8  *
    98 * Project Odin Software License can be found in LICENSE.TXT
    10  *
    119 */
    1210
    13 /*-------------------------------------------------------------*/
    14 /* INITERM.C -- Source for a custom dynamic link library       */
    15 /*              initialization and termination (_DLL_InitTerm) */
    16 /*              function.                                      */
    17 /*                                                             */
    18 /* When called to perform initialization, this sample function */
    19 /* gets storage for an array of integers, and initializes its  */
    20 /* elements with random integers.  At termination time, it     */
    21 /* frees the array.  Substitute your own special processing.   */
    22 /*-------------------------------------------------------------*/
    23 
    24 
    25 /* Include files */
    2611#define  INCL_DOSMODULEMGR
    2712#define  INCL_DOSPROCESS
     
    3722#include <initdll.h>
    3823
    39 extern "C" {
    40  //Win32 resource table (produced by wrc)
    41  extern DWORD _Resource_PEResTab;
    42 }
     24// Win32 resource table (produced by wrc)
     25extern DWORD imagehlp_PEResTab;
     26
    4327static HMODULE dllHandle = 0;
    4428
    4529BOOL WINAPI IMAGEHLP_LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);
    4630
    47 //******************************************************************************
    48 //******************************************************************************
    4931BOOL WINAPI LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
    5032{
    51    switch (fdwReason)
    52    {
    53    case DLL_PROCESS_ATTACH:
    54    case DLL_THREAD_ATTACH:
    55    case DLL_THREAD_DETACH:
    56     return IMAGEHLP_LibMain(hinstDLL, fdwReason, fImpLoad);
     33    switch (fdwReason)
     34    {
     35    case DLL_PROCESS_ATTACH:
     36    case DLL_THREAD_ATTACH:
     37    case DLL_THREAD_DETACH:
     38        return IMAGEHLP_LibMain(hinstDLL, fdwReason, fImpLoad);
    5739
    58    case DLL_PROCESS_DETACH:
    59     IMAGEHLP_LibMain(hinstDLL, fdwReason, fImpLoad);
    60     ctordtorTerm();
    61     return TRUE;
    62    }
    63    return FALSE;
     40    case DLL_PROCESS_DETACH:
     41        IMAGEHLP_LibMain(hinstDLL, fdwReason, fImpLoad);
     42#ifdef __IBMC__
     43        ctordtorTerm();
     44#endif
     45        return TRUE;
     46    }
     47    return FALSE;
    6448}
    65 /****************************************************************************/
    66 /* _DLL_InitTerm is the function that gets called by the operating system   */
    67 /* loader when it loads and frees this DLL for each process that accesses   */
    68 /* this DLL.  However, it only gets called the first time the DLL is loaded */
    69 /* and the last time it is freed for a particular process.  The system      */
    70 /* linkage convention MUST be used because the operating system loader is   */
    71 /* calling this function.                                                   */
    72 /****************************************************************************/
    73 unsigned long SYSTEM _DLL_InitTerm(unsigned long hModule, unsigned long
    74                                    ulFlag)
     49
     50ULONG SYSTEM DLL_InitImageHlp(ULONG hModule)
    7551{
    76    size_t i;
    77    APIRET rc;
     52    CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
    7853
    79    /*-------------------------------------------------------------------------*/
    80    /* If ulFlag is zero then the DLL is being loaded so initialization should */
    81    /* be performed.  If ulFlag is 1 then the DLL is being freed so            */
    82    /* termination should be performed.                                        */
    83    /*-------------------------------------------------------------------------*/
     54    dllHandle = RegisterLxDll(hModule, LibMain, (PVOID)&imagehlp_PEResTab);
     55    if(dllHandle == 0)
     56        return -1;
    8457
    85    switch (ulFlag) {
    86       case 0 :
    87          ctordtorInit();
     58    return 0;
     59}
    8860
    89          CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
     61void SYSTEM DLL_TermImageHlp(ULONG hModule)
     62{
     63    if (dllHandle)
     64       UnregisterLxDll(dllHandle);
     65}
    9066
    91      dllHandle = RegisterLxDll(hModule, LibMain, (PVOID)&_Resource_PEResTab);
    92          if(dllHandle == 0)
    93         return 0UL;
     67ULONG SYSTEM DLL_Init(ULONG hModule)
     68{
     69    if (DLL_InitDefault(hModule) == -1)
     70        return -1;
     71    return DLL_InitImageHlp(hModule);
     72}
    9473
    95          break;
    96       case 1 :
    97          if(dllHandle) {
    98         UnregisterLxDll(dllHandle);
    99          }
    100          break;
    101 
    102       default  :
    103          return 0UL;
    104    }
    105 
    106    /***********************************************************/
    107    /* A non-zero value must be returned to indicate success.  */
    108    /***********************************************************/
    109    return 1UL;
     74void SYSTEM DLL_Term(ULONG hModule)
     75{
     76    DLL_TermImageHlp(hModule);
     77    DLL_TermDefault(hModule);
    11078}
    111 //******************************************************************************
    112 //******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.