Changeset 3573 for trunk/kStuff/kLdr/kLdrDyld.c
- Timestamp:
- Aug 31, 2007, 6:09:23 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kStuff/kLdr/kLdrDyld.c
r3570 r3573 30 30 *******************************************************************************/ 31 31 #include <k/kLdr.h> 32 #include "kLdrHlp.h"33 32 #include "kLdrInternal.h" 34 33 … … 45 44 */ 46 45 #ifdef KLDRDYLD_STRICT 47 # define KLDRDYLD_ASSERT(expr) k ldrHlpAssert(expr)46 # define KLDRDYLD_ASSERT(expr) kHlpAssert(expr) 48 47 #else 49 48 # define KLDRDYLD_ASSERT(expr) do {} while (0) … … 267 266 /** @todo make sense of this default prefix/suffix stuff. */ 268 267 if (pArgs->szDefPrefix[0] != '\0') 269 k LdrHlpMemCopy(kLdrDyldDefPrefix, pArgs->szDefPrefix, K_MIN(sizeof(pArgs->szDefPrefix), sizeof(kLdrDyldDefPrefix)));268 kHlpMemCopy(kLdrDyldDefPrefix, pArgs->szDefPrefix, K_MIN(sizeof(pArgs->szDefPrefix), sizeof(kLdrDyldDefPrefix))); 270 269 if (pArgs->szDefSuffix[0] != '\0') 271 k LdrHlpMemCopy(kLdrDyldDefSuffix, pArgs->szDefSuffix, K_MIN(sizeof(pArgs->szDefSuffix), sizeof(kLdrDyldDefSuffix)));270 kHlpMemCopy(kLdrDyldDefSuffix, pArgs->szDefSuffix, K_MIN(sizeof(pArgs->szDefSuffix), sizeof(kLdrDyldDefSuffix))); 272 271 273 272 /** @todo append that path to the one for the specified search method. */ 274 273 /** @todo create a function for doing this, an exposed api preferably. */ 275 274 /* append path */ 276 cbStack = sizeof(kLdrDyldLibraryPath) - k LdrHlpStrLen(kLdrDyldLibraryPath); /* borrow cbStack for a itty bit. */277 k LdrHlpMemCopy(kLdrDyldLibraryPath, pArgs->szLibPath, K_MIN(sizeof(pArgs->szLibPath), cbStack));275 cbStack = sizeof(kLdrDyldLibraryPath) - kHlpStrLen(kLdrDyldLibraryPath); /* borrow cbStack for a itty bit. */ 276 kHlpMemCopy(kLdrDyldLibraryPath, pArgs->szLibPath, K_MIN(sizeof(pArgs->szLibPath), cbStack)); 278 277 kLdrDyldLibraryPath[sizeof(kLdrDyldLibraryPath) - 1] = '\0'; 279 278 … … 281 280 * Make sure we own the loader semaphore (necessary for init). 282 281 */ 283 rc = k ldrHlpSemRequest();282 rc = kHlpSemRequest(); 284 283 if (rc) 285 284 kldrDyldFailure(rc, "Sem req. failure, rc=%d", rc); … … 333 332 *pszErr = '\0'; 334 333 *phMod = NIL_HKLDRMOD; 335 K LDRHLP_VALIDATE_STRING(pszDll);336 K LDRHLP_VALIDATE_OPTIONAL_STRING(pszPrefix);337 K LDRHLP_VALIDATE_OPTIONAL_STRING(pszSuffix);338 K LDRHLP_VALIDATE_ENUM(enmSearch, KLDRDYLD_SEARCH);339 K LDRHLP_VALIDATE_OPTIONAL_BUFFER(pszErr, cchErr);334 K_VALIDATE_STRING(pszDll); 335 K_VALIDATE_OPTIONAL_STRING(pszPrefix); 336 K_VALIDATE_OPTIONAL_STRING(pszSuffix); 337 K_VALIDATE_ENUM(enmSearch, KLDRDYLD_SEARCH); 338 K_VALIDATE_OPTIONAL_BUFFER(pszErr, cchErr); 340 339 341 340 /* get the semaphore and do the job. */ 342 rc = k ldrHlpSemRequest();341 rc = kHlpSemRequest(); 343 342 if (!rc) 344 343 { … … 349 348 g_cActiveLoadCalls--; 350 349 kldrDyldDoModuleTerminationAndGarabageCollection(); 351 k ldrHlpSemRelease();350 kHlpSemRelease(); 352 351 *phMod = pMod ? pMod->hMod : NIL_HKLDRMOD; 353 352 } … … 370 369 371 370 /* get sem & do work */ 372 rc = k ldrHlpSemRequest();371 rc = kHlpSemRequest(); 373 372 if (!rc) 374 373 { … … 378 377 g_cActiveUnloadCalls--; 379 378 kldrDyldDoModuleTerminationAndGarabageCollection(); 380 k ldrHlpSemRelease();379 kHlpSemRelease(); 381 380 } 382 381 return rc; … … 406 405 /* validate & initialize */ 407 406 *phMod = NIL_HKLDRMOD; 408 K LDRHLP_VALIDATE_STRING(pszDll);407 K_VALIDATE_STRING(pszDll); 409 408 410 409 /* get sem & do work */ 411 rc = k ldrHlpSemRequest();410 rc = kHlpSemRequest(); 412 411 if (!rc) 413 412 { 414 413 PKLDRDYLDMOD pMod = NULL; 415 414 rc = kldrDyldDoFindByName(pszDll, pszPrefix, pszSuffix, enmSearch, fFlags, &pMod); 416 k ldrHlpSemRelease();415 kHlpSemRelease(); 417 416 *phMod = pMod ? pMod->hMod : NIL_HKLDRMOD; 418 417 } … … 446 445 447 446 /* get sem & do work */ 448 rc = k ldrHlpSemRequest();447 rc = kHlpSemRequest(); 449 448 if (!rc) 450 449 { 451 450 PKLDRDYLDMOD pMod = NULL; 452 451 rc = kldrDyldDoFindByAddress(Address, &pMod, piSegment, poffSegment); 453 k ldrHlpSemRelease();452 kHlpSemRelease(); 454 453 *phMod = pMod ? pMod->hMod : NIL_HKLDRMOD; 455 454 } … … 476 475 *pszName = '\0'; 477 476 KLDRDYLD_VALIDATE_HKLDRMOD(hMod); 478 K LDRHLP_VALIDATE_BUFFER(pszName, cchName);477 K_VALIDATE_BUFFER(pszName, cchName); 479 478 480 479 /* get sem & do work */ 481 rc = k ldrHlpSemRequest();480 rc = kHlpSemRequest(); 482 481 if (!rc) 483 482 { 484 483 rc = kldrDyldDoGetName(hMod, pszName, cchName); 485 k ldrHlpSemRelease();484 kHlpSemRelease(); 486 485 } 487 486 return rc; … … 507 506 *pszFilename = '\0'; 508 507 KLDRDYLD_VALIDATE_HKLDRMOD(hMod); 509 K LDRHLP_VALIDATE_BUFFER(pszFilename, cchFilename);508 K_VALIDATE_BUFFER(pszFilename, cchFilename); 510 509 511 510 /* get sem & do work */ 512 rc = k ldrHlpSemRequest();511 rc = kHlpSemRequest(); 513 512 if (!rc) 514 513 { 515 514 rc = kldrDyldDoGetFilename(hMod, pszFilename, cchFilename); 516 k ldrHlpSemRelease();515 kHlpSemRelease(); 517 516 } 518 517 return rc; … … 545 544 return KLDR_ERR_INVALID_PARAMETER; 546 545 KLDRDYLD_VALIDATE_HKLDRMOD(hMod); 547 K LDRHLP_VALIDATE_OPTIONAL_STRING(pszSymbolName);546 K_VALIDATE_OPTIONAL_STRING(pszSymbolName); 548 547 549 548 /* get sem & do work */ 550 rc = k ldrHlpSemRequest();549 rc = kHlpSemRequest(); 551 550 if (!rc) 552 551 { 553 552 rc = kldrDyldDoQuerySymbol(hMod, uSymbolOrdinal, pszSymbolName, pValue, pfKind); 554 k ldrHlpSemRelease();553 kHlpSemRelease(); 555 554 } 556 555 return rc; … … 1086 1085 KU32 cNew = g_cStackModsAllocated ? g_cStackModsAllocated * 2 : 128; 1087 1086 void *pvOld = g_papStackMods; 1088 void *pvNew = k ldrHlpAlloc(cNew * sizeof(g_papStackMods[0]));1087 void *pvNew = kHlpAlloc(cNew * sizeof(g_papStackMods[0])); 1089 1088 if (!pvNew) 1090 1089 return KLDR_ERR_NO_MEMORY; 1091 k LdrHlpMemCopy(pvNew, pvOld, g_cStackMods * sizeof(g_papStackMods[0]));1090 kHlpMemCopy(pvNew, pvOld, g_cStackMods * sizeof(g_papStackMods[0])); 1092 1091 g_papStackMods = (PPKLDRDYLDMOD)pvNew; 1093 k ldrHlpFree(pvOld);1092 kHlpFree(pvOld); 1094 1093 } 1095 1094 … … 1472 1471 /** @todo print it. */ 1473 1472 if (g_fBootstrapping); 1474 k ldrHlpExit(1);1473 kHlpExit(1); 1475 1474 return rc; 1476 1475 } … … 1491 1490 /* if no error string, format the rc into a string. */ 1492 1491 if (!g_szkLdrDyldError[0] && rc) 1493 k ldrHlpInt2Ascii(g_szkLdrDyldError, sizeof(g_szkLdrDyldError), rc, 10);1492 kHlpInt2Ascii(g_szkLdrDyldError, sizeof(g_szkLdrDyldError), rc, 10); 1494 1493 1495 1494 /* copy it if we got something. */ 1496 1495 if (cchErr && pszErr && g_szkLdrDyldError[0]) 1497 1496 { 1498 cchToCopy = k LdrHlpStrLen(g_szkLdrDyldError);1497 cchToCopy = kHlpStrLen(g_szkLdrDyldError); 1499 1498 if (cchToCopy >= cchErr) 1500 1499 cchToCopy = cchErr - 1; 1501 k LdrHlpMemCopy(pszErr, g_szkLdrDyldError, cchToCopy);1500 kHlpMemCopy(pszErr, g_szkLdrDyldError, cchToCopy); 1502 1501 pszErr[cchToCopy] = '\0'; 1503 1502 }
Note:
See TracChangeset
for help on using the changeset viewer.