STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
CoreFvToDevicePath (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,\r
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,\r
IN EFI_HANDLE FvHandle,\r
IN EFI_GUID *DriverName\r
);\r
STATIC \r
EFI_STATUS\r
CoreAddToDriverList (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,\r
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,\r
IN EFI_HANDLE FvHandle,\r
IN EFI_GUID *DriverName\r
);\r
STATIC\r
EFI_STATUS \r
CoreProcessFvImageFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,\r
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,\r
IN EFI_HANDLE FvHandle,\r
IN EFI_GUID *DriverName\r
);\r
EFI_STATUS Status;\r
EFI_SECTION_TYPE SectionType;\r
UINT32 AuthenticationStatus;\r
- EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
\r
\r
Fv = DriverEntry->Fv;\r
STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
CoreFvToDevicePath (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,\r
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,\r
IN EFI_HANDLE FvHandle,\r
IN EFI_GUID *DriverName\r
)\r
\r
EFI_STATUS\r
CoreAddToDriverList (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,\r
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,\r
IN EFI_HANDLE FvHandle,\r
IN EFI_GUID *DriverName\r
)\r
\r
EFI_STATUS \r
CoreProcessFvImageFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *Fv,\r
+ IN EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv,\r
IN EFI_HANDLE FvHandle,\r
IN EFI_GUID *DriverName\r
)\r
EFI_STATUS Status;\r
EFI_STATUS GetNextFileStatus;\r
EFI_STATUS SecurityStatus;\r
- EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
EFI_DEVICE_PATH_PROTOCOL *FvDevicePath;\r
EFI_HANDLE FvHandle;\r
UINTN BufferSize;\r
FvIsBeingProcesssed (FvHandle);\r
\r
\r
- Status = CoreHandleProtocol (FvHandle, &gEfiFirmwareVolumeProtocolGuid, (VOID **)&Fv);\r
+ Status = CoreHandleProtocol (FvHandle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Fv);\r
if (EFI_ERROR (Status)) {\r
//\r
// The Handle has a FirmwareVolumeDispatch protocol and should also contiain\r
--*/\r
{\r
mFwVolEvent = CoreCreateProtocolNotifyEvent (\r
- &gEfiFirmwareVolumeProtocolGuid, \r
+ &gEfiFirmwareVolume2ProtocolGuid, \r
TPL_CALLBACK,\r
CoreFwVolEventProtocolNotify,\r
NULL,\r
#include <Protocol/RealTimeClock.h>\r
#include <Guid/Apriori.h>\r
#include <Protocol/WatchdogTimer.h>\r
-#include <Protocol/FirmwareVolume.h>\r
+#include <Protocol/FirmwareVolume2.h>\r
#include <Protocol/MonotonicCounter.h>\r
#include <Guid/DxeServices.h>\r
#include <Guid/MemoryAllocationHob.h>\r
EFI_HANDLE FvHandle;\r
EFI_GUID FileName;\r
EFI_DEVICE_PATH_PROTOCOL *FvFileDevicePath;\r
- EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
\r
VOID *Depex;\r
UINTN DepexSize;\r
gEfiDriverBindingProtocolGuid # PROTOCOL SOMETIMES_CONSUMED\r
gEfiFirmwareVolumeBlockProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
gEfiFirmwareVolumeDispatchProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
- gEfiFirmwareVolumeProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
+ gEfiFirmwareVolume2ProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
gEfiCpuArchProtocolGuid # PROTOCOL ALWAYS_CONSUMED\r
gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_CONSUMED\r
gEfiLoadedImageProtocolGuid # PROTOCOL ALWAYS_PRODUCED\r
EFI_EVENT gEfiFwVolBlockEvent;\r
\r
FV_DEVICE mFvDevice = {\r
- FV_DEVICE_SIGNATURE,\r
+ FV2_DEVICE_SIGNATURE,\r
NULL,\r
NULL,\r
{\r
FvReadFileSection,\r
FvWriteFile,\r
FvGetNextFile,\r
- KEYSIZE\r
+ KEYSIZE,\r
+ NULL,\r
+ FvGetVolumeInfo,\r
+ FvSetVolumeInfo\r
},\r
NULL,\r
NULL,\r
Routine Description:\r
This notification function is invoked when an instance of the\r
EFI_FW_VOLUME_BLOCK_PROTOCOL is produced. It layers an instance of the\r
- EFI_FIRMWARE_VOLUME_PROTOCOL on the same handle. This is the function where\r
- the actual initialization of the EFI_FIRMWARE_VOLUME_PROTOCOL is done.\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL on the same handle. This is the function where\r
+ the actual initialization of the EFI_FIRMWARE_VOLUME2_PROTOCOL is done.\r
\r
Arguments:\r
Event - The event that occured\r
EFI_STATUS Status;\r
UINTN BufferSize;\r
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;\r
- EFI_FIRMWARE_VOLUME_PROTOCOL *Fv;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
FV_DEVICE *FvDevice;\r
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
//\r
//\r
// Check if there is an FV protocol already installed in that handle\r
//\r
- Status = CoreHandleProtocol (Handle, &gEfiFirmwareVolumeProtocolGuid, (VOID **)&Fv);\r
+ Status = CoreHandleProtocol (Handle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Fv);\r
if (!EFI_ERROR (Status)) {\r
//\r
// Update Fv to use a new Fvb\r
//\r
FvDevice = _CR (Fv, FV_DEVICE, Fv);\r
- if (FvDevice->Signature == FV_DEVICE_SIGNATURE) {\r
+ if (FvDevice->Signature == FV2_DEVICE_SIGNATURE) {\r
//\r
// Only write into our device structure if it's our device structure\r
//\r
//\r
Status = CoreInstallProtocolInterface (\r
&Handle,\r
- &gEfiFirmwareVolumeProtocolGuid,\r
+ &gEfiFirmwareVolume2ProtocolGuid,\r
EFI_NATIVE_INTERFACE,\r
&FvDevice->Fv\r
);\r
EFI_STATUS\r
EFIAPI\r
FvGetVolumeAttributes (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- OUT EFI_FV_ATTRIBUTES *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ OUT EFI_FV_ATTRIBUTES *Attributes\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvSetVolumeAttributes (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN OUT EFI_FV_ATTRIBUTES *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN OUT EFI_FV_ATTRIBUTES *Attributes\r
)\r
/*++\r
\r
return EFI_UNSUPPORTED;\r
}\r
\r
+EFI_STATUS\r
+EFIAPI\r
+FvGetVolumeInfo (\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *InformationType,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ Return information of type InformationType for the requested firmware\r
+ volume.\r
+ \r
+Arguments:\r
+ This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
+ InformationType - InformationType for requested.\r
+ BufferSize - On input, size of Buffer.On output, the amount of\r
+ data returned in Buffer.\r
+ Buffer - A poniter to the data buffer to return.\r
+Returns:\r
+ EFI_SUCCESS - Successfully got volume Information.\r
+\r
+--*/\r
+{\r
+ return EFI_UNSUPPORTED;\r
+}\r
+\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+FvSetVolumeInfo (\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *InformationType,\r
+ IN UINTN BufferSize,\r
+ IN CONST VOID *Buffer\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ Set information of type InformationType for the requested firmware\r
+ volume.\r
+\r
+Arguments:\r
+ This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
+ InformationType - InformationType for requested.\r
+ BufferSize - On input, size of Buffer.On output, the amount of\r
+ data returned in Buffer.\r
+ Buffer - A poniter to the data buffer to return.\r
+Returns:\r
+ EFI_SUCCESS - Successfully set volume Information.\r
+\r
+--*/\r
+{\r
+ return EFI_UNSUPPORTED;\r
+}\r
+\r
+\r
EFI_STATUS\r
EFIAPI\r
FvGetNextFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN OUT VOID *Key,\r
- IN OUT EFI_FV_FILETYPE *FileType,\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN OUT VOID *Key,\r
+ IN OUT EFI_FV_FILETYPE *FileType,\r
OUT EFI_GUID *NameGuid,\r
OUT EFI_FV_FILE_ATTRIBUTES *Attributes,\r
- OUT UINTN *Size\r
+ OUT UINTN *Size\r
)\r
/*++\r
\r
//\r
// Check if read operation is enabled\r
//\r
- if ((FvAttributes & EFI_FV_READ_STATUS) == 0) {\r
+ if ((FvAttributes & EFI_FV2_READ_STATUS) == 0) {\r
return EFI_ACCESS_DENIED;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
FvReadFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN EFI_GUID *NameGuid,\r
- IN OUT VOID **Buffer,\r
- IN OUT UINTN *BufferSize,\r
- OUT EFI_FV_FILETYPE *FoundType,\r
- OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,\r
- OUT UINT32 *AuthenticationStatus\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *NameGuid,\r
+ IN OUT VOID **Buffer,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT EFI_FV_FILETYPE *FoundType,\r
+ OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,\r
+ OUT UINT32 *AuthenticationStatus\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvReadFileSection (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN EFI_GUID *NameGuid,\r
- IN EFI_SECTION_TYPE SectionType,\r
- IN UINTN SectionInstance,\r
- IN OUT VOID **Buffer,\r
- IN OUT UINTN *BufferSize,\r
- OUT UINT32 *AuthenticationStatus\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *NameGuid,\r
+ IN EFI_SECTION_TYPE SectionType,\r
+ IN UINTN SectionInstance,\r
+ IN OUT VOID **Buffer,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT UINT32 *AuthenticationStatus\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvWriteFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN UINT32 NumberOfFiles,\r
- IN EFI_FV_WRITE_POLICY WritePolicy,\r
- IN EFI_FV_WRITE_FILE_DATA *FileData\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN UINT32 NumberOfFiles,\r
+ IN EFI_FV_WRITE_POLICY WritePolicy,\r
+ IN EFI_FV_WRITE_FILE_DATA *FileData\r
)\r
/*++\r
\r
//\r
if (!EFI_ERROR(Status)) {\r
Ptr = NULL;\r
- Status = CoreHandleProtocol (*FVProtocolHandle, &gEfiFirmwareVolumeProtocolGuid, (VOID **)&Ptr);\r
+ Status = CoreHandleProtocol (*FVProtocolHandle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Ptr);\r
if (EFI_ERROR(Status) || (Ptr == NULL)) {\r
return EFI_VOLUME_CORRUPTED;\r
}\r
#define __FWVOL_H\r
\r
\r
+#define FV2_DEVICE_SIGNATURE EFI_SIGNATURE_32 ('_', 'F', 'V', '2')\r
+\r
//\r
// Used to track all non-deleted files\r
//\r
UINTN Signature;\r
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;\r
EFI_HANDLE Handle;\r
- EFI_FIRMWARE_VOLUME_PROTOCOL Fv;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL Fv;\r
\r
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
UINT8 *CachedFv;\r
UINT8 ErasePolarity;\r
} FV_DEVICE;\r
\r
-#define FV_DEVICE_FROM_THIS(a) CR(a, FV_DEVICE, Fv, FV_DEVICE_SIGNATURE)\r
+#define FV_DEVICE_FROM_THIS(a) CR(a, FV_DEVICE, Fv, FV2_DEVICE_SIGNATURE)\r
\r
\r
EFI_STATUS\r
EFIAPI\r
FvGetVolumeAttributes (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- OUT EFI_FV_ATTRIBUTES *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ OUT EFI_FV_ATTRIBUTES *Attributes\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvSetVolumeAttributes (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN OUT EFI_FV_ATTRIBUTES *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN OUT EFI_FV_ATTRIBUTES *Attributes\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvGetNextFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN OUT VOID *Key,\r
- IN OUT EFI_FV_FILETYPE *FileType,\r
- OUT EFI_GUID *NameGuid,\r
- OUT EFI_FV_FILE_ATTRIBUTES *Attributes,\r
- OUT UINTN *Size\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN OUT VOID *Key,\r
+ IN OUT EFI_FV_FILETYPE *FileType,\r
+ OUT EFI_GUID *NameGuid,\r
+ OUT EFI_FV_FILE_ATTRIBUTES *Attributes,\r
+ OUT UINTN *Size\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvReadFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN EFI_GUID *NameGuid,\r
- IN OUT VOID **Buffer,\r
- IN OUT UINTN *BufferSize,\r
- OUT EFI_FV_FILETYPE *FoundType,\r
- OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,\r
- OUT UINT32 *AuthenticationStatus\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *NameGuid,\r
+ IN OUT VOID **Buffer,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT EFI_FV_FILETYPE *FoundType,\r
+ OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes,\r
+ OUT UINT32 *AuthenticationStatus\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvReadFileSection (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN EFI_GUID *NameGuid,\r
- IN EFI_SECTION_TYPE SectionType,\r
- IN UINTN SectionInstance,\r
- IN OUT VOID **Buffer,\r
- IN OUT UINTN *BufferSize,\r
- OUT UINT32 *AuthenticationStatus\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *NameGuid,\r
+ IN EFI_SECTION_TYPE SectionType,\r
+ IN UINTN SectionInstance,\r
+ IN OUT VOID **Buffer,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT UINT32 *AuthenticationStatus\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
FvWriteFile (\r
- IN EFI_FIRMWARE_VOLUME_PROTOCOL *This,\r
- IN UINT32 NumberOfFiles,\r
- IN EFI_FV_WRITE_POLICY WritePolicy,\r
- IN EFI_FV_WRITE_FILE_DATA *FileData\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN UINT32 NumberOfFiles,\r
+ IN EFI_FV_WRITE_POLICY WritePolicy,\r
+ IN EFI_FV_WRITE_FILE_DATA *FileData\r
)\r
/*++\r
\r
--*/\r
;\r
\r
+EFI_STATUS\r
+EFIAPI\r
+FvGetVolumeInfo (\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *InformationType,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ Return information of type InformationType for the requested firmware\r
+ volume.\r
+ \r
+Arguments:\r
+ This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
+ InformationType - InformationType for requested.\r
+ BufferSize - On input, size of Buffer.On output, the amount of\r
+ data returned in Buffer.\r
+ Buffer - A poniter to the data buffer to return.\r
+Returns:\r
+ EFI_SUCCESS - Successfully got volume Information.\r
+\r
+--*/\r
+;\r
+\r
\r
+EFI_STATUS\r
+EFIAPI\r
+FvSetVolumeInfo (\r
+ IN CONST EFI_FIRMWARE_VOLUME2_PROTOCOL *This,\r
+ IN CONST EFI_GUID *InformationType,\r
+ IN UINTN BufferSize,\r
+ IN CONST VOID *Buffer\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ Set information of type InformationType for the requested firmware\r
+ volume.\r
+\r
+Arguments:\r
+ This - Pointer to EFI_FIRMWARE_VOLUME2_PROTOCOL.\r
+ InformationType - InformationType for requested.\r
+ BufferSize - On input, size of Buffer.On output, the amount of\r
+ data returned in Buffer.\r
+ Buffer - A poniter to the data buffer to return.\r
+Returns:\r
+ EFI_SUCCESS - Successfully set volume Information.\r
+\r
+--*/\r
+;\r
\r
//\r
//Internal functions\r
EFI_FILE_HANDLE FileHandle;\r
EFI_FILE_HANDLE LastHandle;\r
EFI_LOAD_FILE_PROTOCOL *LoadFile;\r
- EFI_FIRMWARE_VOLUME_PROTOCOL *FwVol;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *FwVol;\r
EFI_SECTION_TYPE SectionType;\r
UINT8 *Pe32Buffer;\r
UINTN Pe32BufferSize;\r
//\r
FwVolFilePathNode = (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *)FilePath;\r
Status = CoreDevicePathToInterface (\r
- &gEfiFirmwareVolumeProtocolGuid, \r
+ &gEfiFirmwareVolume2ProtocolGuid, \r
(EFI_DEVICE_PATH_PROTOCOL **)&FwVolFilePathNode, \r
(VOID*)&FwVol, \r
DeviceHandle\r
\r
Status = PeiServicesFfsFindNextFile (\r
Type,\r
- FwVolHeader,\r
- &FfsFileHeader\r
+ (EFI_PEI_FV_HANDLE) FwVolHeader,\r
+ (EFI_PEI_FILE_HANDLE*) &FfsFileHeader\r
);\r
if (!EFI_ERROR (Status)) {\r
Status = PeiProcessFile (\r
EFI_STATUS\r
EFIAPI\r
PeiGetBootMode (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- OUT EFI_BOOT_MODE *BootMode\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ OUT EFI_BOOT_MODE *BootMode\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
PeiSetBootMode (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_BOOT_MODE BootMode\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_BOOT_MODE BootMode\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindSectionData (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_SECTION_TYPE SectionType,\r
- IN EFI_FFS_FILE_HEADER *FfsFileHeader,\r
+ IN EFI_PEI_FILE_HANDLE FileHandle,\r
IN OUT VOID **SectionData\r
)\r
/*++\r
EFI_COMMON_SECTION_HEADER *Section;\r
UINT32 SectionLength;\r
UINT32 ParsedLength;\r
- \r
+ EFI_FFS_FILE_HEADER *FfsFileHeader;\r
\r
+ FfsFileHeader = (EFI_FFS_FILE_HEADER *) FileHandle;\r
+ \r
//\r
// Size is 24 bits wide so mask upper 8 bits. \r
// Does not include FfsFileHeader header size\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindNextFile (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_FV_FILETYPE SearchType,\r
- IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
- IN OUT EFI_FFS_FILE_HEADER **FileHeader\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN UINT8 SearchType,\r
+ IN EFI_PEI_FV_HANDLE VolumeHandle,\r
+ IN OUT EFI_PEI_FILE_HANDLE *FileHandle\r
)\r
/*++\r
\r
\r
--*/\r
{\r
+ EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
+ EFI_FFS_FILE_HEADER **FileHeader;\r
+\r
+ FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)VolumeHandle;\r
+ FileHeader = (EFI_FFS_FILE_HEADER **) FileHandle;\r
+\r
return PeiFfsFindNextFileEx ( \r
SearchType,\r
FwVolHeader,\r
EFI_STATUS \r
EFIAPI\r
PeiFvFindNextVolume (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINTN Instance,\r
- IN OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader\r
+ IN OUT EFI_PEI_FV_HANDLE *VolumeHandle\r
)\r
/*++\r
\r
EFI_STATUS Status;\r
EFI_PEI_FIND_FV_PPI *FindFvPpi;\r
UINT8 LocalInstance;\r
+ EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader;\r
\r
+ FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER **) VolumeHandle;\r
\r
LocalInstance = (UINT8) Instance;\r
\r
} else {\r
Status = FindFvPpi->FindFv (\r
FindFvPpi,\r
- PeiServices,\r
+ (EFI_PEI_SERVICES **)PeiServices,\r
&LocalInstance,\r
FwVolHeader\r
); \r
EFI_STATUS\r
EFIAPI\r
PeiGetHobList (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN OUT VOID **HobList\r
)\r
/*++\r
EFI_STATUS\r
EFIAPI\r
PeiCreateHob (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINT16 Type,\r
IN UINT16 Length,\r
IN OUT VOID **Hob\r
EFI_STATUS\r
EFIAPI\r
PeiInstallPeiMemory (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PHYSICAL_ADDRESS MemoryBegin,\r
IN UINT64 MemoryLength\r
)\r
EFI_STATUS\r
EFIAPI\r
PeiAllocatePages (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_MEMORY_TYPE MemoryType,\r
IN UINTN Pages,\r
OUT EFI_PHYSICAL_ADDRESS *Memory\r
EFI_STATUS\r
EFIAPI\r
PeiAllocatePool (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINTN Size,\r
OUT VOID **Buffer\r
)\r
\r
VOID\r
ConvertPpiPointers (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_HOB_HANDOFF_INFO_TABLE *OldHandOffHob,\r
IN EFI_HOB_HANDOFF_INFO_TABLE *NewHandOffHob\r
)\r
EFI_STATUS\r
EFIAPI\r
PeiInstallPpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_PPI_DESCRIPTOR *PpiList\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
PeiReInstallPpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_PPI_DESCRIPTOR *OldPpi,\r
- IN EFI_PEI_PPI_DESCRIPTOR *NewPpi\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *OldPpi,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *NewPpi\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
PeiLocatePpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_GUID *Guid,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_GUID *Guid,\r
IN UINTN Instance,\r
IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor,\r
IN OUT VOID **Ppi\r
EFI_STATUS\r
EFIAPI\r
PeiNotifyPpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList\r
)\r
/*++\r
\r
\r
VOID\r
DispatchNotify (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINTN NotifyType,\r
IN INTN InstallStartIndex,\r
IN INTN InstallStopIndex,\r
EFI_STATUS\r
EFIAPI\r
PeiGetBootMode (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN OUT EFI_BOOT_MODE *BootMode\r
)\r
/*++\r
EFI_STATUS\r
EFIAPI\r
PeiSetBootMode (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_BOOT_MODE BootMode\r
)\r
/*++\r
EFI_STATUS\r
EFIAPI\r
PeiGetHobList (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN OUT VOID **HobList\r
)\r
/*++\r
EFI_STATUS\r
EFIAPI\r
PeiCreateHob (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINT16 Type,\r
IN UINT16 Length,\r
IN OUT VOID **Hob\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindNextFile (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINT8 SearchType,\r
- IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader,\r
- IN OUT EFI_FFS_FILE_HEADER **FileHeader\r
+ IN EFI_PEI_FV_HANDLE FwVolHeader,\r
+ IN OUT EFI_PEI_FILE_HANDLE *FileHeader\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
PeiFfsFindSectionData (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_SECTION_TYPE SectionType,\r
- IN EFI_FFS_FILE_HEADER *FfsFileHeader,\r
+ IN EFI_PEI_FILE_HANDLE FfsFileHeader,\r
IN OUT VOID **SectionData\r
)\r
/*++\r
EFI_STATUS\r
EFIAPI\r
PeiFvFindNextVolume (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINTN Instance,\r
- IN OUT EFI_FIRMWARE_VOLUME_HEADER **FwVolHeader\r
+ IN OUT EFI_PEI_FV_HANDLE *FwVolHeader\r
)\r
/*++\r
\r
EFI_STATUS\r
EFIAPI\r
PeiInstallPeiMemory (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_PHYSICAL_ADDRESS MemoryBegin,\r
IN UINT64 MemoryLength\r
)\r
EFI_STATUS\r
EFIAPI\r
PeiAllocatePages (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_MEMORY_TYPE MemoryType,\r
IN UINTN Pages,\r
OUT EFI_PHYSICAL_ADDRESS *Memory\r
EFI_STATUS\r
EFIAPI\r
PeiAllocatePool (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINTN Size,\r
OUT VOID **Buffer\r
)\r
EFI_STATUS\r
EFIAPI\r
PeiReportStatusCode (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_STATUS_CODE_TYPE CodeType,\r
IN EFI_STATUS_CODE_VALUE Value,\r
IN UINT32 Instance,\r
- IN EFI_GUID *CallerId,\r
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL\r
+ IN CONST EFI_GUID *CallerId,\r
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL\r
)\r
/*++\r
\r
\r
VOID\r
ConvertPpiPointers (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN EFI_HOB_HANDOFF_INFO_TABLE *OldHandOffHob,\r
IN EFI_HOB_HANDOFF_INFO_TABLE *NewHandOffHob\r
)\r
EFI_STATUS\r
EFIAPI\r
PeiInstallPpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_PPI_DESCRIPTOR *PpiList\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *PpiList\r
)\r
/*++\r
\r
}\r
\r
DEBUG((EFI_D_INFO, "Install PPI: %g\n", PpiList->Guid)); \r
- PrivateData->PpiData.PpiListPtrs[Index].Ppi = PpiList; \r
+ PrivateData->PpiData.PpiListPtrs[Index].Ppi = (EFI_PEI_PPI_DESCRIPTOR*) PpiList; \r
PrivateData->PpiData.PpiListEnd++;\r
\r
//\r
// Dispatch any callback level notifies for newly installed PPIs.\r
//\r
DispatchNotify (\r
- PeiServices,\r
+ (CONST EFI_PEI_SERVICES **) PeiServices,\r
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK,\r
LastCallbackInstall,\r
PrivateData->PpiData.PpiListEnd,\r
EFI_STATUS\r
EFIAPI\r
PeiReInstallPpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_PPI_DESCRIPTOR *OldPpi,\r
- IN EFI_PEI_PPI_DESCRIPTOR *NewPpi\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *OldPpi,\r
+ IN CONST EFI_PEI_PPI_DESCRIPTOR *NewPpi\r
)\r
/*++\r
\r
// Remove the old PPI from the database, add the new one.\r
// \r
DEBUG((EFI_D_INFO, "Reinstall PPI: %g\n", NewPpi->Guid));\r
- PrivateData->PpiData.PpiListPtrs[Index].Ppi = NewPpi;\r
+ PrivateData->PpiData.PpiListPtrs[Index].Ppi = (EFI_PEI_PPI_DESCRIPTOR *) NewPpi;\r
\r
//\r
// Dispatch any callback level notifies for the newly installed PPI.\r
//\r
DispatchNotify (\r
- PeiServices,\r
+ (CONST EFI_PEI_SERVICES **) PeiServices,\r
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK,\r
Index,\r
Index+1,\r
EFI_STATUS\r
EFIAPI\r
PeiLocatePpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_GUID *Guid,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_GUID *Guid,\r
IN UINTN Instance,\r
IN OUT EFI_PEI_PPI_DESCRIPTOR **PpiDescriptor,\r
IN OUT VOID **Ppi\r
EFI_STATUS\r
EFIAPI\r
PeiNotifyPpi (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_NOTIFY_DESCRIPTOR *NotifyList\r
)\r
/*++\r
\r
NotifyDispatchCount ++; \r
} \r
\r
- PrivateData->PpiData.PpiListPtrs[Index].Notify = NotifyList; \r
+ PrivateData->PpiData.PpiListPtrs[Index].Notify = (EFI_PEI_NOTIFY_DESCRIPTOR *) NotifyList; \r
\r
PrivateData->PpiData.NotifyListEnd--;\r
DEBUG((EFI_D_INFO, "Register PPI Notify: %g\n", NotifyList->Guid));\r
// Dispatch any callback level notifies for all previously installed PPIs.\r
//\r
DispatchNotify (\r
- PeiServices,\r
+ (CONST EFI_PEI_SERVICES **) PeiServices,\r
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK,\r
0,\r
PrivateData->PpiData.PpiListEnd,\r
while (PrivateData->PpiData.LastDispatchedNotify != PrivateData->PpiData.DispatchListEnd) {\r
TempValue = PrivateData->PpiData.DispatchListEnd;\r
DispatchNotify (\r
- PeiServices,\r
+ (CONST EFI_PEI_SERVICES **) PeiServices,\r
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH,\r
0,\r
PrivateData->PpiData.LastDispatchedInstall,\r
while (PrivateData->PpiData.LastDispatchedInstall != PrivateData->PpiData.PpiListEnd) {\r
TempValue = PrivateData->PpiData.PpiListEnd;\r
DispatchNotify (\r
- PeiServices,\r
+ (CONST EFI_PEI_SERVICES **) PeiServices,\r
EFI_PEI_PPI_DESCRIPTOR_NOTIFY_DISPATCH,\r
PrivateData->PpiData.LastDispatchedInstall,\r
PrivateData->PpiData.PpiListEnd,\r
\r
VOID\r
DispatchNotify (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
IN UINTN NotifyType,\r
IN INTN InstallStartIndex,\r
IN INTN InstallStopIndex,\r
NotifyDescriptor->Notify\r
));\r
NotifyDescriptor->Notify (\r
- PeiServices,\r
+ (EFI_PEI_SERVICES **)PeiServices,\r
NotifyDescriptor,\r
(PrivateData->PpiData.PpiListPtrs[Index2].Ppi)->Ppi\r
);\r
EFI_STATUS\r
EFIAPI\r
PeiReportStatusCode (\r
- IN EFI_PEI_SERVICES **PeiServices,\r
- IN EFI_STATUS_CODE_TYPE CodeType,\r
- IN EFI_STATUS_CODE_VALUE Value, \r
- IN UINT32 Instance,\r
- IN EFI_GUID *CallerId,\r
- IN EFI_STATUS_CODE_DATA *Data OPTIONAL\r
+ IN CONST EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_STATUS_CODE_TYPE CodeType,\r
+ IN EFI_STATUS_CODE_VALUE Value, \r
+ IN UINT32 Instance,\r
+ IN CONST EFI_GUID *CallerId,\r
+ IN CONST EFI_STATUS_CODE_DATA *Data OPTIONAL\r
)\r
/*++\r
\r
--*/\r
\r
#include <BaseMemoryTest.h>\r
+#include <Library/PeiServicesLib.h>\r
\r
static PEI_BASE_MEMORY_TEST_PPI mPeiBaseMemoryTestPpi = { BaseMemoryTest };\r
\r
\r
--*/ \r
{\r
- EFI_STATUS Status;\r
\r
- Status = (**PeiServices).InstallPpi (PeiServices, &PpiListPeiBaseMemoryTest);\r
-\r
- return Status;\r
+ return PeiServicesInstallPpi (&PpiListPeiBaseMemoryTest);\r
+ \r
}\r
\r
EFI_STATUS\r
ReportStatusCodeLib\r
PeimEntryPoint\r
DebugLib\r
+ PeiServicesLib\r
\r
[Ppis]\r
gPeiBaseMemoryTestPpiGuid # PPI ALWAYS_PRODUCED\r
ASSERT ((**PeiServices).Hdr.Revision >= PEI_SERVICES_REVISION);\r
\r
(**PeiServices).PciCfg = &gPciCfg2Ppi;\r
- Status = (**PeiServices).InstallPpi (PeiServices, &gPciCfg2PpiList);\r
+ Status = (**PeiServices).InstallPpi ((CONST EFI_PEI_SERVICES **)PeiServices, &gPciCfg2PpiList);\r
\r
return Status;\r
}\r
//\r
// Publish the variable capability to other modules\r
//\r
- return (**PeiServices).InstallPpi (PeiServices, &mPpiListVariable);\r
+ return (**PeiServices).InstallPpi ((CONST EFI_PEI_SERVICES **)PeiServices, &mPpiListVariable);\r
\r
}\r
\r