- Timestamp:
- Nov 18, 2006, 5:14:38 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kLdr/kLdrModLX.c
r2887 r2888 874 874 static int kldrModLXDoLoadFixupSection(PKLDRMODLX pModLX) 875 875 { 876 return -1; 876 int rc; 877 uint32_t off; 878 void *pv; 879 880 pv = kldrHlpAlloc(pModLX->Hdr.e32_fixupsize); 881 if (!pv) 882 return KLDR_ERR_NO_MEMORY; 883 884 off = pModLX->Hdr.e32_objtab + pModLX->Hdr.e32_ldrsize; 885 rc = kLdrRdrRead(pModLX->pMod->pRdr, pv, pModLX->Hdr.e32_fixupsize, 886 off + pModLX->offHdr); 887 if (!rc) 888 { 889 pModLX->pbFixupSection = pv; 890 pModLX->pbFixupSectionLast = pModLX->pbFixupSection + pModLX->Hdr.e32_fixupsize; 891 KLDRMODLX_ASSERT(!pModLX->paoffPageFixups); 892 if (pModLX->Hdr.e32_fpagetab) 893 pModLX->paoffPageFixups = (const uint32_t *)(pModLX->pbFixupSection + pModLX->Hdr.e32_fpagetab - off); 894 KLDRMODLX_ASSERT(!pModLX->pbFixupRecs); 895 if (pModLX->Hdr.e32_frectab) 896 pModLX->pbFixupRecs = pModLX->pbFixupSection + pModLX->Hdr.e32_frectab - off; 897 KLDRMODLX_ASSERT(!pModLX->pbImportMods); 898 if (pModLX->Hdr.e32_impmod) 899 pModLX->pbImportMods = pModLX->pbFixupSection + pModLX->Hdr.e32_impmod - off; 900 KLDRMODLX_ASSERT(!pModLX->pbImportProcs); 901 if (pModLX->Hdr.e32_impproc) 902 pModLX->pbImportProcs = pModLX->pbFixupSection + pModLX->Hdr.e32_impproc - off; 903 } 904 else 905 kldrHlpFree(pv); 906 return rc; 877 907 } 878 908
Note:
See TracChangeset
for help on using the changeset viewer.