/** @file\r
- Firmware Volume Block protocol. Consumes FV hobs and creates\r
- appropriate block protocols.\r
-\r
- Also consumes NT_NON_MM_FV envinronment variable and produces appropriate\r
- block protocols fro them also... (this is TBD)\r
+ Implementations for Firmware Volume Block protocol. \r
+ \r
+ It consumes FV HOBs and creates read-lonly Firmare Volume Block protocol \r
+ instances for each of them.\r
\r
Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
All rights reserved. This program and the accompanying materials\r
{\r
HARDWARE_DEVICE_PATH,\r
HW_MEMMAP_DP,\r
- { (UINT8)(sizeof (MEMMAP_DEVICE_PATH)), (UINT8)(sizeof (MEMMAP_DEVICE_PATH) >> 8) }\r
+ {\r
+ (UINT8)(sizeof (MEMMAP_DEVICE_PATH)),\r
+ (UINT8)(sizeof (MEMMAP_DEVICE_PATH) >> 8)\r
+ }\r
},\r
EfiMemoryMappedIO,\r
- (EFI_PHYSICAL_ADDRESS)0,\r
- (EFI_PHYSICAL_ADDRESS)0,\r
+ (EFI_PHYSICAL_ADDRESS) 0,\r
+ (EFI_PHYSICAL_ADDRESS) 0,\r
},\r
{\r
END_DEVICE_PATH_TYPE,\r
END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
- { END_DEVICE_PATH_LENGTH, 0 } \r
+ { \r
+ END_DEVICE_PATH_LENGTH,\r
+ 0\r
+ } \r
},\r
},\r
{\r
\r
\r
\r
-\r
-\r
/**\r
Retrieves Volume attributes. No polarity translations are done.\r
\r
return EFI_ACCESS_DENIED;\r
}\r
\r
- LbaIndex = (UINTN)Lba;\r
+ LbaIndex = (UINTN) Lba;\r
if (LbaIndex >= FvbDevice->NumBlocks) {\r
//\r
// Invalid Lba, read nothing.\r
}\r
\r
LbaStart = FvbDevice->LbaCache[LbaIndex].Base;\r
- FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)((UINTN)FvbDevice->BaseAddress);\r
- LbaOffset = (UINT8 *)FwVolHeader + LbaStart + Offset;\r
+ FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)((UINTN) FvbDevice->BaseAddress);\r
+ LbaOffset = (UINT8 *) FwVolHeader + LbaStart + Offset;\r
\r
//\r
// Perform read operation\r
EFI_FV_BLOCK_MAP_ENTRY *PtrBlockMapEntry;\r
\r
FvAlignment = 0;\r
- FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)BaseAddress;\r
+ FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN) BaseAddress;\r
//\r
// Validate FV Header, if not as expected, return\r
//\r
//\r
FvbDev->NumBlocks = 0;\r
for (PtrBlockMapEntry = FwVolHeader->BlockMap;\r
- PtrBlockMapEntry->NumBlocks != 0;\r
- PtrBlockMapEntry++) {\r
+ PtrBlockMapEntry->NumBlocks != 0;\r
+ PtrBlockMapEntry++) {\r
FvbDev->NumBlocks += PtrBlockMapEntry->NumBlocks;\r
}\r
//\r
BlockIndex = 0;\r
LinearOffset = 0;\r
for (PtrBlockMapEntry = FwVolHeader->BlockMap;\r
- PtrBlockMapEntry->NumBlocks != 0; PtrBlockMapEntry++) {\r
+ PtrBlockMapEntry->NumBlocks != 0; PtrBlockMapEntry++) {\r
for (BlockIndex2 = 0; BlockIndex2 < PtrBlockMapEntry->NumBlocks; BlockIndex2++) {\r
FvbDev->LbaCache[BlockIndex].Base = LinearOffset;\r
FvbDev->LbaCache[BlockIndex].Length = PtrBlockMapEntry->Length;\r
// Attach FvVolBlock Protocol to new handle\r
//\r
Status = CoreInstallMultipleProtocolInterfaces (\r
- &FvbDev->Handle,\r
- &gEfiFirmwareVolumeBlockProtocolGuid, &FvbDev->FwVolBlockInstance,\r
- &gEfiDevicePathProtocolGuid, &FvbDev->DevicePath,\r
- &gEfiFirmwareVolumeDispatchProtocolGuid, NULL,\r
- NULL\r
- );\r
+ &FvbDev->Handle,\r
+ &gEfiFirmwareVolumeBlockProtocolGuid, &FvbDev->FwVolBlockInstance,\r
+ &gEfiDevicePathProtocolGuid, &FvbDev->DevicePath,\r
+ &gEfiFirmwareVolumeDispatchProtocolGuid, NULL,\r
+ NULL\r
+ );\r
\r
//\r
// If they want the handle back, set it.\r
)\r
{\r
EFI_PEI_HOB_POINTERS FvHob;\r
+\r
//\r
// Core Needs Firmware Volumes to function\r
//\r
ProduceFVBProtocolOnBuffer (FvHob.FirmwareVolume->BaseAddress, FvHob.FirmwareVolume->Length, NULL, NULL); \r
FvHob.Raw = GET_NEXT_HOB (FvHob);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
//\r
if (!EFI_ERROR(Status)) {\r
Ptr = NULL;\r
- Status = CoreHandleProtocol (*FVProtocolHandle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Ptr);\r
+ Status = CoreHandleProtocol (*FVProtocolHandle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **) &Ptr);\r
if (EFI_ERROR(Status) || (Ptr == NULL)) {\r
return EFI_VOLUME_CORRUPTED;\r
}\r