add ia32 and x64 direcotry for EdkFvbServiceLib

updated module VariableRuntimeDxe

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2844 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
vanjeff
2007-06-28 11:55:39 +00:00
parent 318ace1ea6
commit a190687a97
5 changed files with 1247 additions and 23 deletions

View File

@@ -134,15 +134,15 @@ Returns:
UINTN BlockIndex2;
UINTN LinearOffset;
UINTN CurrWriteSize;
UINTN CurrWritePtr;
UINT8 *CurrBuffer;
EFI_LBA LbaNumber;
UINTN Size;
FRAMEWORK_EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;
VARIABLE_STORE_HEADER *VolatileBase;
EFI_PHYSICAL_ADDRESS FvVolHdr;
EFI_PHYSICAL_ADDRESS DataPtr;
EFI_STATUS Status;
UINTN CurrWritePtr;
UINT8 *CurrBuffer;
EFI_LBA LbaNumber;
UINTN Size;
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;
VARIABLE_STORE_HEADER *VolatileBase;
EFI_PHYSICAL_ADDRESS FvVolHdr;
EFI_PHYSICAL_ADDRESS DataPtr;
EFI_STATUS Status;
FwVolHeader = NULL;
DataPtr = DataPtrIndex;
@@ -152,7 +152,7 @@ Returns:
//
if (!Volatile) {
EfiFvbGetPhysicalAddress (Instance, &FvVolHdr);
FwVolHeader = (FRAMEWORK_EFI_FIRMWARE_VOLUME_HEADER *) ((UINTN) FvVolHdr);
FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *) ((UINTN) FvVolHdr);
//
// Data Pointer should point to the actual Address where data is to be
// written
@@ -198,7 +198,7 @@ Returns:
return EFI_INVALID_PARAMETER;
}
for (PtrBlockMapEntry = FwVolHeader->FvBlockMap; PtrBlockMapEntry->NumBlocks != 0; PtrBlockMapEntry++) {
for (PtrBlockMapEntry = FwVolHeader->BlockMap; PtrBlockMapEntry->NumBlocks != 0; PtrBlockMapEntry++) {
for (BlockIndex2 = 0; BlockIndex2 < PtrBlockMapEntry->NumBlocks; BlockIndex2++) {
//
// Check to see if the Variable Writes are spanning through multiple

View File

@@ -95,13 +95,13 @@ GetLbaAndOffsetByAddress (
OUT UINTN *Offset
)
{
EFI_STATUS Status;
EFI_HANDLE FvbHandle;
EFI_PHYSICAL_ADDRESS FvbBaseAddress;
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
FRAMEWORK_EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;
EFI_FV_BLOCK_MAP_ENTRY *FvbMapEntry;
UINT32 LbaIndex;
EFI_STATUS Status;
EFI_HANDLE FvbHandle;
EFI_PHYSICAL_ADDRESS FvbBaseAddress;
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;
EFI_FV_BLOCK_MAP_ENTRY *FvbMapEntry;
UINT32 LbaIndex;
*Lba = (EFI_LBA) (-1);
*Offset = 0;
@@ -130,7 +130,7 @@ GetLbaAndOffsetByAddress (
return Status;
}
FwVolHeader = (FRAMEWORK_EFI_FIRMWARE_VOLUME_HEADER *) ((UINTN) FvbBaseAddress);
FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *) ((UINTN) FvbBaseAddress);
//
// Get the (LBA, Offset) of Address
@@ -140,7 +140,7 @@ GetLbaAndOffsetByAddress (
//
// BUGBUG: Assume one FV has one type of BlockLength
//
FvbMapEntry = &FwVolHeader->FvBlockMap[0];
FvbMapEntry = &FwVolHeader->BlockMap[0];
for (LbaIndex = 1; LbaIndex <= FvbMapEntry->NumBlocks; LbaIndex += 1) {
if (Address < (FvbBaseAddress + FvbMapEntry->Length * LbaIndex)) {
//
@@ -149,7 +149,7 @@ GetLbaAndOffsetByAddress (
*Lba = LbaIndex - 1;
*Offset = (UINTN) (Address - (FvbBaseAddress + FvbMapEntry->Length * (LbaIndex - 1)));
return EFI_SUCCESS;
}
}
}
}
}