Ignore:
Timestamp:
Dec 18, 2011, 10:28:22 PM (14 years ago)
Author:
dmik
Message:

Merge branch gcc-kmk to trunk.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk

    • Property svn:ignore
      •  

        old new  
        1 bin
        2 Makefile.inc
         1env.cmd
         2LocalConfig.kmk
    • Property svn:mergeinfo set to
      /branches/gcc-kmkmergedeligible
  • trunk/src/dllentry/dllentry.cpp

    r6917 r21916  
    22
    33/*
    4  * DLL entry point
     4 * Ordinary DLL entry point
    55 *
    66 * Copyright 1998 Sander van Leeuwen
    77 * Copyright 1998 Peter Fitzsimmons
    88 *
    9  *
    109 * Project Odin Software License can be found in LICENSE.TXT
    11  *
    1210 */
    1311
    14 /*-------------------------------------------------------------*/
    15 /* INITERM.C -- Source for a custom dynamic link library       */
    16 /*              initialization and termination (_DLL_InitTerm) */
    17 /*              function.                                      */
    18 /*                                                             */
    19 /* When called to perform initialization, this sample function */
    20 /* gets storage for an array of integers, and initializes its  */
    21 /* elements with random integers.  At termination time, it     */
    22 /* frees the array.  Substitute your own special processing.   */
    23 /*-------------------------------------------------------------*/
    24 
    25 
    26 /* Include files */
    2712#define  INCL_DOSMODULEMGR
    2813#define  INCL_DOSPROCESS
     
    3823#include <initdll.h>
    3924
    40 extern "C" {
    41  //Win32 resource table (produced by wrc)
    42  extern DWORD _Resource_PEResTab;
    43 }
     25// Win32 resource table (produced by wrc)
     26extern DWORD Resource_PEResTab;
    4427
    4528static HMODULE dllHandle = 0;
    4629
    47 //******************************************************************************
    48 //******************************************************************************
    49 BOOL WINAPI OdinLibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
     30#if 0
     31
     32// Not currently needed
     33
     34BOOL WINAPI LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID fImpLoad)
    5035{
    51    switch (fdwReason)
    52    {
    53       case DLL_PROCESS_ATTACH:
    54          return TRUE;
     36    switch (fdwReason)
     37    {
     38    case DLL_PROCESS_ATTACH:
     39        return TRUE;
    5540
    56       case DLL_THREAD_ATTACH:
    57       case DLL_THREAD_DETACH:
    58          return TRUE;
     41    case DLL_THREAD_ATTACH:
     42    case DLL_THREAD_DETACH:
     43        return TRUE;
    5944
    60       case DLL_PROCESS_DETACH:
    61 #ifdef __IBMCPP__
    62          ctordtorTerm();
    63 #endif
    64          return TRUE;
    65    }
    66    return FALSE;
     45    case DLL_PROCESS_DETACH:
     46        return TRUE;
     47    }
     48
     49    return FALSE;
    6750}
    6851
     52#endif
    6953
    70 #ifdef __IBMCPP__
     54ULONG SYSTEM DLL_Init(ULONG hModule)
     55{
     56    if (DLL_InitDefault(hModule) == -1)
     57        return -1;
    7158
    72 /****************************************************************************/
    73 /* _DLL_InitTerm is the function that gets called by the operating system   */
    74 /* loader when it loads and frees this DLL for each process that accesses   */
    75 /* this DLL.  However, it only gets called the first time the DLL is loaded */
    76 /* and the last time it is freed for a particular process.  The system      */
    77 /* linkage convention MUST be used because the operating system loader is   */
    78 /* calling this function.                                                   */
    79 /****************************************************************************/
    80 ULONG DLLENTRYPOINT_CCONV DLLENTRYPOINT_NAME(ULONG hModule, ULONG ulFlag)
    81 {
    82    /*-------------------------------------------------------------------------*/
    83    /* If ulFlag is zero then the DLL is being loaded so initialization should */
    84    /* be performed.  If ulFlag is 1 then the DLL is being freed so            */
    85    /* termination should be performed.                                        */
    86    /*-------------------------------------------------------------------------*/
     59    CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
     60    dllHandle = RegisterLxDll(hModule, NULL, (PVOID)&Resource_PEResTab);
     61    if (dllHandle == 0)
     62        return -1;
    8763
    88    switch (ulFlag)
    89    {
    90       case 0:
    91          ctordtorInit();
    92          CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed  98-03-18 05:28:48*/
    93          dllHandle = RegisterLxDll(hModule, OdinLibMain, (PVOID)&_Resource_PEResTab);
    94          if (dllHandle == 0)
    95             return 0UL;
    96          break;
    97 
    98       case 1:
    99          if (dllHandle)
    100             UnregisterLxDll(dllHandle);
    101          break;
    102 
    103       default:
    104          return 0UL;
    105    }
    106 
    107    /***********************************************************/
    108    /* A non-zero value must be returned to indicate success.  */
    109    /***********************************************************/
    110    return 1UL;
    111 }
    112 #elif defined(__WATCOM_CPLUSPLUS__)
    113 /*
    114  * Watcom dll init and term routines.
    115  */
    116 
    117 int __dll_initialize(unsigned long hModule, unsigned long ulFlag)
    118 {
    119     CheckVersionFromHMOD(PE2LX_VERSION, hModule);
    120     dllHandle = RegisterLxDll(hModule, OdinLibMain, (PVOID)&_Resource_PEResTab);
    121     if (dllHandle == 0)
    122         return 0;
    123     return 1;
     64    return 0;
    12465}
    12566
    126 int __dll_terminate(unsigned long hModule, unsigned long ulFlag)
     67void SYSTEM DLL_Term(ULONG hModule)
    12768{
    128     if (dllHandle)
     69    if(dllHandle)
    12970        UnregisterLxDll(dllHandle);
    130     return 1;
     71
     72    DLL_TermDefault(hModule);
    13173}
    132 
    133 #else
    134 #error message("compiler is not supported!\n");
    135 #endif
Note: See TracChangeset for help on using the changeset viewer.