Changeset 21757 for branches/gcc-kmk/src
- Timestamp:
- Oct 29, 2011, 1:40:19 AM (14 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
branches/gcc-kmk/src/ntdll/initterm.cpp
r21735 r21757 1 1 /* 2 * DLL entry point2 * NTDLL DLL entry point 3 3 * 4 4 * Copyright 1998 Sander van Leeuwen 5 5 * Copyright 1998 Peter Fitzsimmons 6 6 * 7 *8 7 * Project Odin Software License can be found in LICENSE.TXT 9 *10 8 */ 11 9 12 /*-------------------------------------------------------------*/13 /* INITERM.C -- Source for a custom dynamic link library */14 /* initialization and termination (_DLL_InitTerm) */15 /* function. */16 /* */17 /* When called to perform initialization, this sample function */18 /* gets storage for an array of integers, and initializes its */19 /* elements with random integers. At termination time, it */20 /* frees the array. Substitute your own special processing. */21 /*-------------------------------------------------------------*/22 23 24 /* Include files */25 10 #include <os2.h> //Odin32 OS/2 api wrappers 26 11 #include <win32type.h> … … 34 19 #include <exitlist.h> 35 20 21 extern "C" 22 BOOL WIN32API NTDLL_LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved); 36 23 37 BOOL WIN32API NTDLL_LibMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved);38 24 extern DWORD ntdll_PEResTab; 39 25 40 26 static HMODULE dllHandle = 0; 41 27 42 //****************************************************************************** 43 //****************************************************************************** 44 ULONG APIENTRY inittermNTDLL(ULONG hModule, ULONG ulFlag) 28 ULONG SYSTEM DLL_Init(ULONG hModule) 45 29 { 46 /*-------------------------------------------------------------------------*/ 47 /* If ulFlag is zero then the DLL is being loaded so initialization should */ 48 /* be performed. If ulFlag is 1 then the DLL is being freed so */ 49 /* termination should be performed. */ 50 /*-------------------------------------------------------------------------*/ 30 if (DLL_InitDefault(hModule) == -1) 31 return -1; 51 32 52 switch (ulFlag) { 53 case 0 : 33 //Initialize kernel32 first (circular dependency between kernel32 & ntdll) 34 if (!InitializeKernel32()) 35 return -1; 54 36 55 //Initialize kernel32 first (circular dependency between kernel32 & ntdll) 56 if (!InitializeKernel32()) 57 return 0; 37 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 38 dllHandle = RegisterLxDll(hModule, (WIN32DLLENTRY)NTDLL_LibMain, 39 (PVOID)&ntdll_PEResTab, 40 0, 0, 0); 41 if(dllHandle == 0) 42 return -1; 58 43 59 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 60 dllHandle = RegisterLxDll(hModule, (WIN32DLLENTRY)NTDLL_LibMain, (PVOID)&ntdll_PEResTab, 61 0, 0, 0); 62 if(dllHandle == 0) 63 return 0UL; 44 dprintf(("NTDLL INIT %s %s (%x)", __DATE__, __TIME__, DLL_Init)); 45 } 64 46 65 dprintf(("ntdll init %s %s (%x)", __DATE__, __TIME__, inittermNTDLL)); 66 break; 67 case 1 : 68 if(dllHandle) { 69 UnregisterLxDll(dllHandle); 70 } 71 break; 72 default : 73 return 0UL; 74 } 47 void SYSTEM DLL_Term(ULONG hModule) 48 { 49 dprintf(("NTDLL TERM")); 75 50 76 /***********************************************************/ 77 /* A non-zero value must be returned to indicate success. */ 78 /***********************************************************/ 79 return 1UL; 51 UnregisterLxDll(dllHandle); 52 DLL_TermDefault(hModule); 80 53 } 81 //****************************************************************************** 82 //****************************************************************************** 54
Note:
See TracChangeset
for help on using the changeset viewer.