Changeset 3567 for trunk/kStuff/kLdr/kLdrDyld.c
- Timestamp:
- Aug 27, 2007, 9:54:05 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kStuff/kLdr/kLdrDyld.c
r3537 r3567 96 96 97 97 /** The default flags. */ 98 uint32_tkLdrDyldFlags = 0;98 KU32 kLdrDyldFlags = 0; 99 99 /** The default search method. */ 100 100 KLDRDYLDSEARCH kLdrDyldSearch = KLDRDYLD_SEARCH_HOST; … … 110 110 void *g_pvkLdrDyldMainStack = NULL; 111 111 /** The size of the main stack object. */ 112 size_tg_cbkLdrDyldMainStack = 0;112 KSIZE g_cbkLdrDyldMainStack = 0; 113 113 /** @} */ 114 114 … … 123 123 static PPKLDRDYLDMOD g_papStackMods; 124 124 /** The number of used entries in the g_papStackMods array. */ 125 static uint32_tg_cStackMods;125 static KU32 g_cStackMods; 126 126 /** The number of entries allocated for the g_papStackMods array. */ 127 static uint32_tg_cStackModsAllocated;127 static KU32 g_cStackModsAllocated; 128 128 /** Number of active load calls. */ 129 static uint32_tg_cActiveLoadCalls;129 static KU32 g_cActiveLoadCalls; 130 130 /** Number of active unload calls. */ 131 static uint32_tg_cActiveUnloadCalls;131 static KU32 g_cActiveUnloadCalls; 132 132 /** Total number of load calls. */ 133 static uint32_tg_cTotalLoadCalls;133 static KU32 g_cTotalLoadCalls; 134 134 /** Total mumber of unload calls. */ 135 static uint32_tg_cTotalUnloadCalls;135 static KU32 g_cTotalUnloadCalls; 136 136 /** Boolean flag indicating that GC is active. */ 137 static uint32_tg_fActiveGC;137 static KU32 g_fActiveGC; 138 138 139 139 … … 145 145 * @internal 146 146 * @{ */ 147 void kldrDyldDoLoadExeStackSwitch(PKLDRDYLDMOD pExe, void *pvStack, size_tcbStack);147 void kldrDyldDoLoadExeStackSwitch(PKLDRDYLDMOD pExe, void *pvStack, KSIZE cbStack); 148 148 static int kldrDyldDoLoad(const char *pszDll, const char *pszPrefix, const char *pszSuffix, KLDRDYLDSEARCH enmSearch, 149 unsigned fFlags, PPKLDRDYLDMOD ppMod, char *pszErr, size_tcchErr);149 unsigned fFlags, PPKLDRDYLDMOD ppMod, char *pszErr, KSIZE cchErr); 150 150 static int kldrDyldDoLoad2(PKLDRDYLDMOD pLoadedMod, const char *pszPrefix, const char *pszSuffix, 151 151 KLDRDYLDSEARCH enmSearch, unsigned fFlags); … … 155 155 static int kldrDyldDoFindByName(const char *pszDll, const char *pszPrefix, const char *pszSuffix, KLDRDYLDSEARCH enmSearch, 156 156 unsigned fFlags, PPKLDRDYLDMOD ppMod); 157 static int kldrDyldDoFindByAddress( uintptr_t Address, PPKLDRDYLDMOD ppMod, uint32_t *piSegment, uintptr_t*poffSegment);158 static int kldrDyldDoGetName(PKLDRDYLDMOD pMod, char *pszName, size_tcchName);159 static int kldrDyldDoGetFilename(PKLDRDYLDMOD pMod, char *pszFilename, size_tcchFilename);160 static int kldrDyldDoQuerySymbol(PKLDRDYLDMOD pMod, uint32_t uSymbolOrdinal, const char *pszSymbolName, uintptr_t *pValue, uint32_t*pfKind);157 static int kldrDyldDoFindByAddress(KUPTR Address, PPKLDRDYLDMOD ppMod, KU32 *piSegment, KUPTR *poffSegment); 158 static int kldrDyldDoGetName(PKLDRDYLDMOD pMod, char *pszName, KSIZE cchName); 159 static int kldrDyldDoGetFilename(PKLDRDYLDMOD pMod, char *pszFilename, KSIZE cchFilename); 160 static int kldrDyldDoQuerySymbol(PKLDRDYLDMOD pMod, KU32 uSymbolOrdinal, const char *pszSymbolName, KUPTR *pValue, KU32 *pfKind); 161 161 /** @} */ 162 162 … … 171 171 * @internal 172 172 * @{ */ 173 static uint32_tkldrDyldStackNewFrame(PKLDRDYLDMOD pMod);173 static KU32 kldrDyldStackNewFrame(PKLDRDYLDMOD pMod); 174 174 static int kldrDyldStackAddModule(PKLDRDYLDMOD pMod); 175 175 static int kldrDyldStackFrameCompleted(void); 176 176 static void kldrDyldStackCleanupOne(PKLDRDYLDMOD pMod, int rc); 177 static void kldrDyldStackDropFrame( uint32_t iLoad1st, uint32_tiLoadEnd, int rc);177 static void kldrDyldStackDropFrame(KU32 iLoad1st, KU32 iLoadEnd, int rc); 178 178 /** @} */ 179 179 180 static int kldrDyldCopyError(int rc, char *pszErr, size_tcchErr);180 static int kldrDyldCopyError(int rc, char *pszErr, KSIZE cchErr); 181 181 182 182 … … 235 235 { 236 236 void *pvStack; 237 size_tcbStack;237 KSIZE cbStack; 238 238 PKLDRDYLDMOD pExe; 239 239 int rc; … … 325 325 */ 326 326 int kLdrDyldLoad(const char *pszDll, const char *pszPrefix, const char *pszSuffix, KLDRDYLDSEARCH enmSearch, 327 unsigned fFlags, PHKLDRMOD phMod, char *pszErr, size_tcchErr)327 unsigned fFlags, PHKLDRMOD phMod, char *pszErr, KSIZE cchErr) 328 328 { 329 329 int rc; … … 434 434 * @param poffSegment Where to store the offset into the segment. (optional) 435 435 */ 436 int kLdrDyldFindByAddress( uintptr_t Address, PHKLDRMOD phMod, uint32_t *piSegment, uintptr_t*poffSegment)436 int kLdrDyldFindByAddress(KUPTR Address, PHKLDRMOD phMod, KU32 *piSegment, KUPTR *poffSegment) 437 437 { 438 438 int rc; … … 441 441 *phMod = NIL_HKLDRMOD; 442 442 if (piSegment) 443 *piSegment = ~( uint32_t)0;443 *piSegment = ~(KU32)0; 444 444 if (poffSegment) 445 *poffSegment = ~( uintptr_t)0;445 *poffSegment = ~(KUPTR)0; 446 446 447 447 /* get sem & do work */ … … 468 468 * @see kLdrDyldGetFilename 469 469 */ 470 int kLdrDyldGetName(HKLDRMOD hMod, char *pszName, size_tcchName)470 int kLdrDyldGetName(HKLDRMOD hMod, char *pszName, KSIZE cchName) 471 471 { 472 472 int rc; … … 499 499 * @see kLdrDyldGetName 500 500 */ 501 int kLdrDyldGetFilename(HKLDRMOD hMod, char *pszFilename, size_tcchFilename)501 int kLdrDyldGetFilename(HKLDRMOD hMod, char *pszFilename, KSIZE cchFilename) 502 502 { 503 503 int rc; … … 532 532 * @param pfKind Where to put the symbol kind flags. Optional if pValue is non-zero. 533 533 */ 534 int kLdrDyldQuerySymbol(HKLDRMOD hMod, uint32_tuSymbolOrdinal, const char *pszSymbolName,535 const char *pszSymbolVersion, uintptr_t *pValue, uint32_t*pfKind)534 int kLdrDyldQuerySymbol(HKLDRMOD hMod, KU32 uSymbolOrdinal, const char *pszSymbolName, 535 const char *pszSymbolVersion, KUPTR *pValue, KU32 *pfKind) 536 536 { 537 537 int rc; … … 592 592 */ 593 593 static int kldrDyldDoLoad(const char *pszDll, const char *pszPrefix, const char *pszSuffix, KLDRDYLDSEARCH enmSearch, 594 unsigned fFlags, PPKLDRDYLDMOD ppMod, char *pszErr, size_tcchErr)594 unsigned fFlags, PPKLDRDYLDMOD ppMod, char *pszErr, KSIZE cchErr) 595 595 { 596 596 int rc; … … 692 692 * Load prerequisites. 693 693 */ 694 uint32_ti;695 uint32_tiLoad1st = kldrDyldStackNewFrame(pLoadedMod);694 KU32 i; 695 KU32 iLoad1st = kldrDyldStackNewFrame(pLoadedMod); 696 696 int rc = kldrDyldDoLoadPrerequisites(pLoadedMod, pszPrefix, pszSuffix, enmSearch, fFlags); 697 uint32_tiLoadEnd = kldrDyldStackFrameCompleted();697 KU32 iLoadEnd = kldrDyldStackFrameCompleted(); 698 698 if (rc) 699 699 { … … 882 882 if (cEntries < sizeof(s_aEntries) / sizeof(s_aEntries[0])) 883 883 { 884 s_aEntries[cEntries].cLeft = ~( uint32_t)0;884 s_aEntries[cEntries].cLeft = ~(KU32)0; 885 885 s_aEntries[cEntries].pMod = pMod->papPrereqs[pMod->cPrereqs - s_aEntries[i].cLeft]; 886 886 s_aEntries[i].cLeft--; … … 1024 1024 * @param pLoadMod The module being loaded (only used for asserting). 1025 1025 */ 1026 static uint32_tkldrDyldStackNewFrame(PKLDRDYLDMOD pLoadMod)1026 static KU32 kldrDyldStackNewFrame(PKLDRDYLDMOD pLoadMod) 1027 1027 { 1028 1028 /* … … 1084 1084 if (g_cStackMods + 1 > g_cStackModsAllocated) 1085 1085 { 1086 uint32_tcNew = g_cStackModsAllocated ? g_cStackModsAllocated * 2 : 128;1086 KU32 cNew = g_cStackModsAllocated ? g_cStackModsAllocated * 2 : 128; 1087 1087 void *pvOld = g_papStackMods; 1088 1088 void *pvNew = kldrHlpAlloc(cNew * sizeof(g_papStackMods[0])); … … 1199 1199 * @param rc Used for state verification. 1200 1200 */ 1201 static void kldrDyldStackDropFrame( uint32_t iLoad1st, uint32_tiLoadEnd, int rc)1202 { 1203 uint32_ti;1201 static void kldrDyldStackDropFrame(KU32 iLoad1st, KU32 iLoadEnd, int rc) 1202 { 1203 KU32 i; 1204 1204 KLDRDYLD_ASSERT(iLoad1st <= g_cStackMods); 1205 1205 KLDRDYLD_ASSERT(iLoadEnd == g_cStackMods); … … 1318 1318 case KLDRSTATE_PENDING_TERMINATION: 1319 1319 { 1320 const uint32_tcTotalLoadCalls = g_cTotalLoadCalls;1321 const uint32_tcTotalUnloadCalls = g_cTotalUnloadCalls;1320 const KU32 cTotalLoadCalls = g_cTotalLoadCalls; 1321 const KU32 cTotalUnloadCalls = g_cTotalUnloadCalls; 1322 1322 kldrDyldModCallTerm(pMod); 1323 1323 fRestart = cTotalLoadCalls != g_cTotalLoadCalls … … 1401 1401 * @internal 1402 1402 */ 1403 static int kldrDyldDoFindByAddress( uintptr_t Address, PPKLDRDYLDMOD ppMod, uint32_t *piSegment, uintptr_t*poffSegment)1403 static int kldrDyldDoFindByAddress(KUPTR Address, PPKLDRDYLDMOD ppMod, KU32 *piSegment, KUPTR *poffSegment) 1404 1404 { 1405 1405 /* Scan the segments of each module in the load list. */ … … 1407 1407 while (pMod) 1408 1408 { 1409 uint32_tiSeg;1409 KU32 iSeg; 1410 1410 for (iSeg = 0; iSeg < pMod->pMod->cSegments; iSeg++) 1411 1411 { … … 1417 1417 *piSegment = iSeg; 1418 1418 if (poffSegment) 1419 *poffSegment = ( uintptr_t)off;1419 *poffSegment = (KUPTR)off; 1420 1420 return 0; 1421 1421 } … … 1434 1434 * @internal 1435 1435 */ 1436 static int kldrDyldDoGetName(PKLDRDYLDMOD pMod, char *pszName, size_tcchName)1436 static int kldrDyldDoGetName(PKLDRDYLDMOD pMod, char *pszName, KSIZE cchName) 1437 1437 { 1438 1438 return kldrDyldModGetName(pMod, pszName, cchName); … … 1444 1444 * @internal 1445 1445 */ 1446 static int kldrDyldDoGetFilename(PKLDRDYLDMOD pMod, char *pszFilename, size_tcchFilename)1446 static int kldrDyldDoGetFilename(PKLDRDYLDMOD pMod, char *pszFilename, KSIZE cchFilename) 1447 1447 { 1448 1448 return kldrDyldModGetFilename(pMod, pszFilename, cchFilename); … … 1454 1454 * @internal 1455 1455 */ 1456 static int kldrDyldDoQuerySymbol(PKLDRDYLDMOD pMod, uint32_t uSymbolOrdinal, const char *pszSymbolName, uintptr_t *pValue, uint32_t*pfKind)1456 static int kldrDyldDoQuerySymbol(PKLDRDYLDMOD pMod, KU32 uSymbolOrdinal, const char *pszSymbolName, KUPTR *pValue, KU32 *pfKind) 1457 1457 { 1458 1458 return kldrDyldModQuerySymbol(pMod, uSymbolOrdinal, pszSymbolName, pValue, pfKind); … … 1485 1485 * @param cchErr The size of the destination buffer. 1486 1486 */ 1487 static int kldrDyldCopyError(int rc, char *pszErr, size_tcchErr)1488 { 1489 size_tcchToCopy;1487 static int kldrDyldCopyError(int rc, char *pszErr, KSIZE cchErr) 1488 { 1489 KSIZE cchToCopy; 1490 1490 1491 1491 /* if no error string, format the rc into a string. */
Note:
See TracChangeset
for help on using the changeset viewer.