Changeset 3582 for trunk/kStuff/kLdr/kLdrModNative.c
- Timestamp:
- Sep 3, 2007, 12:26:42 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kStuff/kLdr/kLdrModNative.c
r3579 r3582 31 31 #include <k/kLdr.h> 32 32 #include "kLdrInternal.h" 33 #ifdef __OS2__ 33 34 #if K_OS == K_OS_OS2 34 35 # define INCL_BASE 35 36 # include <os2.h> … … 48 49 # define QHINF_MAPSEL 8 /* NE only */ 49 50 50 #elif defined(__WIN__)51 #elif K_OS == K_OS_WINDOWS 51 52 # undef IMAGE_NT_SIGNATURE 52 53 # undef IMAGE_DOS_SIGNATURE … … 59 60 #include <winnt.h> */ 60 61 61 #elif defined(__DARWIN__)62 #elif K_OS == K_OS_DARWIN 62 63 # include <dlfcn.h> 63 64 # include <errno.h> … … 85 86 #endif 86 87 87 #if defined(__WIN__) || defined(__NT__)88 #if K_OS == K_OS_WINDOWS 88 89 /** @def KLDRMODNATIVE_RVA2TYPE 89 90 * Converts a RVA to a pointer of the specified type. … … 114 115 * If ~(KU32)0 this hasn't been determined yet. */ 115 116 KU32 cImportModules; 116 #if def __OS2__117 #if K_OS == K_OS_OS2 117 118 /** The module handle. */ 118 119 HMODULE hmod; 119 120 120 #elif defined(__WIN__)121 #elif K_OS == K_OS_WINDOWS 121 122 /** The module handle. */ 122 123 HANDLE hmod; … … 126 127 const IMAGE_SECTION_HEADER *paShdrs; 127 128 128 #elif defined(__DARWIN__)129 #elif K_OS == K_OS_DARWIN 129 130 /** The dlopen() handle.*/ 130 131 void *pvMod; … … 179 180 * Load the image. 180 181 */ 181 #if def __OS2__182 #if K_OS == K_OS_OS2 182 183 HMODULE hmod; 183 184 … … 189 190 DosFreeModule(hmod); 190 191 191 #elif defined(__WIN__)192 #elif K_OS == K_OS_WINDOWS 192 193 HMODULE hmod; 193 194 … … 199 200 FreeLibrary(hmod); 200 201 201 #elif defined(__DARWIN__)202 #elif K_OS == K_OS_DARWIN 202 203 void *pvMod; 203 204 … … 238 239 * size of the module instance. 239 240 */ 240 #if def __OS2__241 #if K_OS == K_OS_OS2 241 242 char szFilename[CCHMAXPATH]; 242 243 int rc; … … 254 255 cSegments = 1; 255 256 256 #elif defined(__WIN__)257 #elif K_OS == K_OS_WINDOWS 257 258 DWORD dw; 258 259 char szFilename[MAX_PATH]; … … 288 289 paShdrs = (const IMAGE_SECTION_HEADER *)(pNtHdrs + 1); 289 290 290 #elif defined(__DARWIN__)291 #elif K_OS == K_OS_DARWIN 291 292 char szFilename[1] = ""; 292 293 cSegments = 0; /** @todo Figure out the Mac OS X dynamic loader. */ … … 341 342 * Set native instance data. 342 343 */ 343 #if def __OS2__344 #if K_OS == K_OS_OS2 344 345 pModNative->hmod = (HMODULE)uHandle; 345 346 … … 358 359 pMod->aSegments[0].MapAddress = 0; 359 360 360 #elif defined(__WIN__)361 #elif K_OS == K_OS_WINDOWS 361 362 pModNative->hmod = (HMODULE)uHandle; 362 363 pModNative->pNtHdrs = pNtHdrs; … … 495 496 } 496 497 497 #elif defined(__DARWIN__)498 #elif K_OS == K_OS_DARWIN 498 499 /** @todo Figure out the Mac OS X dynamic loader. */ 499 500 … … 516 517 int rc; 517 518 518 #if def __OS2__519 #if K_OS == K_OS_OS2 519 520 rc = DosFreeModule(pModNative->hmod); 520 521 521 #elif defined(__WIN__)522 #elif K_OS == K_OS_WINDOWS 522 523 if (FreeLibrary(pModNative->hmod)) 523 524 rc = 0; … … 525 526 rc = GetLastError(); 526 527 527 #elif defined(__DARWIN__)528 #elif K_OS == K_OS_DARWIN 528 529 dlclose(pModNative->pvMod); 529 530 … … 546 547 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 547 548 const char *pszSymbol = pchSymbol; 548 #if def __OS2__549 #if K_OS == K_OS_OS2 549 550 APIRET rc; 550 551 PFN pfn; 551 #elif defined(__WIN__)552 #elif K_OS == K_OS_WINDOWS 552 553 FARPROC pfn; 553 #elif defined(__DARWIN__)554 #elif K_OS == K_OS_DARWIN 554 555 void *pfn; 555 556 #else … … 566 567 } 567 568 568 #if def __OS2__569 #if K_OS == K_OS_OS2 569 570 if (!pchSymbol && iSymbol >= 0x10000) 570 571 return KLDR_ERR_SYMBOL_NOT_FOUND; … … 597 598 } 598 599 599 #elif defined(__WIN__)600 #elif K_OS == K_OS_WINDOWS 600 601 if (!pszSymbol && iSymbol >= 0x10000) 601 602 return KLDR_ERR_SYMBOL_NOT_FOUND; … … 609 610 | KLDRSYMKIND_NO_TYPE; 610 611 611 #elif defined(__DARWIN__)612 #elif K_OS == K_OS_DARWIN 612 613 if (!pszSymbol && iSymbol != NIL_KLDRMOD_SYM_ORDINAL) 613 614 return KLDR_ERR_SYMBOL_NOT_FOUND; … … 635 636 { 636 637 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 637 #if def __OS2__638 #if K_OS == K_OS_OS2 638 639 639 640 /** @todo implement export enumeration on OS/2. */ … … 641 642 return ERROR_NOT_SUPPORTED; 642 643 643 #elif defined(__WIN__)|| defined(__NT__)644 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 644 645 const KU32 *paFunctions; 645 646 const IMAGE_EXPORT_DIRECTORY *pExpDir; … … 713 714 return 0; 714 715 715 #elif defined(__DARWIN__)716 #elif K_OS == K_OS_DARWIN 716 717 /** @todo implement enumeration on darwin. */ 717 718 (void)pModNative; … … 729 730 { 730 731 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 731 #if def __OS2__732 #if K_OS == K_OS_OS2 732 733 733 734 /** @todo implement import enumeration on OS/2. */ … … 735 736 return ERROR_NOT_SUPPORTED; 736 737 737 #elif defined(__WIN__)|| defined(__NT__)738 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 738 739 const IMAGE_IMPORT_DESCRIPTOR *pImpDesc; 739 740 const char *pszImportName; … … 771 772 return rc; 772 773 773 #elif defined(__DARWIN__)774 #elif K_OS == K_OS_DARWIN 774 775 /** @todo Implement import enumeration on darwin. */ 775 776 (void)pModNative; … … 786 787 { 787 788 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 788 #if def __OS2__789 #if K_OS == K_OS_OS2 789 790 790 791 /** @todo implement import counting on OS/2. */ … … 792 793 return -1; 793 794 794 #elif defined(__WIN__)|| defined(__NT__)795 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 795 796 if (pModNative->cImportModules == ~(KU32)0) 796 797 { … … 816 817 return pModNative->cImportModules; 817 818 818 #elif defined(__DARWIN__)819 #elif K_OS == K_OS_DARWIN 819 820 /** @todo Implement import counting on Darwin. */ 820 821 (void)pModNative; … … 831 832 { 832 833 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 833 #if def __OS2__834 #if K_OS == K_OS_OS2 834 835 835 836 /** @todo implement stack info on OS/2. */ … … 837 838 return ERROR_NOT_SUPPORTED; 838 839 839 #elif defined(__WIN__)|| defined(__NT__)840 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 840 841 pStackInfo->Address = NIL_KLDRADDR; 841 842 pStackInfo->LinkAddress = NIL_KLDRADDR; … … 844 845 return 0; 845 846 846 #elif defined(__DARWIN__)847 #elif K_OS == K_OS_DARWIN 847 848 /** @todo Implement stack info on Darwin. */ 848 849 (void)pModNative; … … 859 860 { 860 861 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 861 #if def __OS2__862 #if K_OS == K_OS_OS2 862 863 863 864 /** @todo implement me on OS/2. */ … … 865 866 return ERROR_NOT_SUPPORTED; 866 867 867 #elif defined(__WIN__)|| defined(__NT__)868 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 868 869 /* 869 870 * Convert the address from the header. … … 874 875 return 0; 875 876 876 #elif defined(__DARWIN__)877 #elif K_OS == K_OS_DARWIN 877 878 /** @todo Implement me on Darwin. */ 878 879 (void)pModNative; … … 889 890 { 890 891 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 891 #if def __OS2__892 #if K_OS == K_OS_OS2 892 893 893 894 /** @todo implement me on OS/2. */ … … 895 896 return ERROR_NOT_SUPPORTED; 896 897 897 #elif defined(__WIN__)|| defined(__NT__)898 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 898 899 const IMAGE_DEBUG_DIRECTORY *pDbgDir; 899 900 KU32 iDbgInfo; … … 954 955 return rc; 955 956 956 #elif defined(__DARWIN__)957 #elif K_OS == K_OS_DARWIN 957 958 /** @todo Implement me on Darwin. */ 958 959 (void)pModNative; … … 969 970 { 970 971 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 971 #if def __OS2__972 #if K_OS == K_OS_OS2 972 973 973 974 /** @todo implement me on OS/2. */ … … 975 976 return KLDR_ERR_NO_DEBUG_INFO; 976 977 977 #elif defined(__WIN__)|| defined(__NT__)978 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 978 979 /* 979 980 * Base this entirely on the presence of a debug directory. … … 985 986 return 0; 986 987 987 #elif defined(__DARWIN__)988 #elif K_OS == K_OS_DARWIN 988 989 /** @todo Implement me on Darwin. */ 989 990 (void)pModNative; … … 1061 1062 static KLDRADDR kldrModNativeSize(PKLDRMOD pMod) 1062 1063 { 1063 #if def __OS2__1064 #if K_OS == K_OS_OS2 1064 1065 return 0; /* don't bother */ 1065 1066 1066 #elif defined(__WIN__)|| defined(__NT__)1067 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 1067 1068 /* just because we can. */ 1068 1069 PKLDRMODNATIVE pModNative = (PKLDRMODNATIVE)pMod->pvData; 1069 1070 return pModNative->pNtHdrs->OptionalHeader.SizeOfImage; 1070 1071 1071 #elif defined(__DARWIN__)1072 #elif K_OS == K_OS_DARWIN 1072 1073 /** @todo Implement me on Darwin. */ 1073 1074 return 0; … … 1082 1083 static int kldrModNativeGetBits(PKLDRMOD pMod, void *pvBits, KLDRADDR BaseAddress, PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser) 1083 1084 { 1084 #if def __OS2__1085 #if K_OS == K_OS_OS2 1085 1086 return ERROR_NOT_SUPPORTED; /* don't bother */ 1086 1087 1087 #elif defined(__WIN__)|| defined(__NT__)1088 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 1088 1089 return ERROR_NOT_SUPPORTED; /* don't bother even if we could implement this. */ 1089 1090 1090 #elif defined(__DARWIN__)1091 #elif K_OS == K_OS_DARWIN 1091 1092 return KLDR_ERR_TODO; /* don't bother. */ 1092 1093 … … 1101 1102 PFNKLDRMODGETIMPORT pfnGetImport, void *pvUser) 1102 1103 { 1103 #if def __OS2__1104 #if K_OS == K_OS_OS2 1104 1105 return ERROR_NOT_SUPPORTED; /* don't bother */ 1105 1106 1106 #elif defined(__WIN__)|| defined(__NT__)1107 #elif K_OS == K_OS_WINDOWS || defined(__NT__) 1107 1108 return ERROR_NOT_SUPPORTED; /* don't bother even if we could implement this. */ 1108 1109 1109 #elif defined(__DARWIN__)1110 #elif K_OS == K_OS_DARWIN 1110 1111 return KLDR_ERR_TODO; /* don't bother. */ 1111 1112
Note:
See TracChangeset
for help on using the changeset viewer.