#define LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('l', 'f', 'f', 'v')\r
\r
typedef struct {\r
- UINTN Signature;\r
- EFI_LOAD_FILE_PROTOCOL LoadFile;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
- EFI_GUID NameGuid;\r
- LIST_ENTRY Link;\r
+ UINTN Signature;\r
+ EFI_LOAD_FILE_PROTOCOL LoadFile;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
+ EFI_GUID NameGuid;\r
+ LIST_ENTRY Link;\r
} LOAD_FILE_ON_FV2_PRIVATE_DATA;\r
\r
-#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_THIS(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, LoadFile, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)\r
-#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, Link, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)\r
+#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_THIS(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, LoadFile, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)\r
+#define LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK(a) CR (a, LOAD_FILE_ON_FV2_PRIVATE_DATA, Link, LOAD_FILE_ON_FV2_PRIVATE_DATA_SIGNATURE)\r
\r
-VOID *mFvRegistration;\r
-LIST_ENTRY mPrivateDataList;\r
+VOID *mFvRegistration;\r
+LIST_ENTRY mPrivateDataList;\r
\r
/**\r
Causes the driver to load a specified file from firmware volume.\r
UINTN Pe32BufferSize;\r
UINT32 AuthenticationStatus;\r
\r
- if (This == NULL || BufferSize == NULL) {\r
+ if ((This == NULL) || (BufferSize == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
Pe32Buffer = NULL;\r
Pe32BufferSize = 0;\r
- Status = Private->Fv->ReadSection (\r
- Private->Fv,\r
- &Private->NameGuid,\r
- EFI_SECTION_PE32,\r
- 0,\r
- &Pe32Buffer,\r
- &Pe32BufferSize,\r
- &AuthenticationStatus\r
- );\r
+ Status = Private->Fv->ReadSection (\r
+ Private->Fv,\r
+ &Private->NameGuid,\r
+ EFI_SECTION_PE32,\r
+ 0,\r
+ &Pe32Buffer,\r
+ &Pe32BufferSize,\r
+ &AuthenticationStatus\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
// If the buffer passed in is not large enough, return the size of the required\r
// buffer in BufferSize and return EFI_BUFFER_TOO_SMALL\r
//\r
- if (*BufferSize < Pe32BufferSize || Buffer == NULL) {\r
+ if ((*BufferSize < Pe32BufferSize) || (Buffer == NULL)) {\r
*BufferSize = Pe32BufferSize;\r
return EFI_BUFFER_TOO_SMALL;\r
}\r
BOOLEAN\r
EFIAPI\r
IsInPrivateList (\r
- IN EFI_GUID *NameGuid\r
-)\r
+ IN EFI_GUID *NameGuid\r
+ )\r
{\r
- LIST_ENTRY *Entry;\r
- LOAD_FILE_ON_FV2_PRIVATE_DATA *PrivateData;\r
-\r
- if (IsListEmpty (&mPrivateDataList)) {\r
- return FALSE;\r
- }\r
-\r
- for(Entry = (&mPrivateDataList)->ForwardLink; Entry != (&mPrivateDataList); Entry = Entry->ForwardLink) {\r
- PrivateData = LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK (Entry);\r
- if (CompareGuid (NameGuid, &PrivateData->NameGuid)) {\r
- DEBUG ((DEBUG_INFO, "LoadFileOnFv2:FileLoadProtocol has been installed in:%g\n", NameGuid));\r
- return TRUE;\r
- }\r
- }\r
- return FALSE;\r
+ LIST_ENTRY *Entry;\r
+ LOAD_FILE_ON_FV2_PRIVATE_DATA *PrivateData;\r
+\r
+ if (IsListEmpty (&mPrivateDataList)) {\r
+ return FALSE;\r
+ }\r
+\r
+ for (Entry = (&mPrivateDataList)->ForwardLink; Entry != (&mPrivateDataList); Entry = Entry->ForwardLink) {\r
+ PrivateData = LOAD_FILE_ON_FV2_PRIVATE_DATA_FROM_LINK (Entry);\r
+ if (CompareGuid (NameGuid, &PrivateData->NameGuid)) {\r
+ DEBUG ((DEBUG_INFO, "LoadFileOnFv2:FileLoadProtocol has been installed in:%g\n", NameGuid));\r
+ return TRUE;\r
+ }\r
+ }\r
+\r
+ return FALSE;\r
}\r
\r
/**\r
EFI_DEVICE_PATH_PROTOCOL *\r
EFIAPI\r
CreateFileDevicePath (\r
- IN EFI_HANDLE Device,\r
- IN EFI_GUID *NameGuid,\r
- IN CONST CHAR16 *FileName\r
+ IN EFI_HANDLE Device,\r
+ IN EFI_GUID *NameGuid,\r
+ IN CONST CHAR16 *FileName\r
)\r
{\r
- UINTN Size;\r
- FILEPATH_DEVICE_PATH *FilePath;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL *FileDevicePath;\r
- MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FileNode;\r
+ UINTN Size;\r
+ FILEPATH_DEVICE_PATH *FilePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_DEVICE_PATH_PROTOCOL *FileDevicePath;\r
+ MEDIA_FW_VOL_FILEPATH_DEVICE_PATH FileNode;\r
\r
EfiInitializeFwVolDevicepathNode (&FileNode, NameGuid);\r
DevicePath = AppendDevicePathNode (\r
DevicePathFromHandle (Device),\r
- (EFI_DEVICE_PATH_PROTOCOL *) &FileNode\r
+ (EFI_DEVICE_PATH_PROTOCOL *)&FileNode\r
);\r
\r
- Size = StrSize (FileName);\r
+ Size = StrSize (FileName);\r
FileDevicePath = AllocatePool (Size + SIZE_OF_FILEPATH_DEVICE_PATH + END_DEVICE_PATH_LENGTH);\r
if (FileDevicePath != NULL) {\r
- FilePath = (FILEPATH_DEVICE_PATH *) FileDevicePath;\r
+ FilePath = (FILEPATH_DEVICE_PATH *)FileDevicePath;\r
FilePath->Header.Type = MEDIA_DEVICE_PATH;\r
FilePath->Header.SubType = MEDIA_FILEPATH_DP;\r
CopyMem (&FilePath->PathName, FileName, Size);\r
VOID\r
EFIAPI\r
InstallFileLoadProtocol (\r
- EFI_HANDLE Handle\r
-)\r
+ EFI_HANDLE Handle\r
+ )\r
{\r
- EFI_STATUS Status;\r
- LOAD_FILE_ON_FV2_PRIVATE_DATA *Private;\r
- EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
- EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;\r
- EFI_PHYSICAL_ADDRESS Address;\r
- EFI_FV_FILETYPE FileType;\r
- UINTN Key;\r
- EFI_GUID NameGuid;\r
- EFI_FV_FILE_ATTRIBUTES Attributes;\r
- UINTN Size;\r
- EFI_HANDLE LoadFileHandle;\r
- UINT32 AuthenticationStatus;\r
- CHAR16 *UiName;\r
- UINTN UiNameSize;\r
+ EFI_STATUS Status;\r
+ LOAD_FILE_ON_FV2_PRIVATE_DATA *Private;\r
+ EFI_FIRMWARE_VOLUME2_PROTOCOL *Fv;\r
+ EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *Fvb;\r
+ EFI_PHYSICAL_ADDRESS Address;\r
+ EFI_FV_FILETYPE FileType;\r
+ UINTN Key;\r
+ EFI_GUID NameGuid;\r
+ EFI_FV_FILE_ATTRIBUTES Attributes;\r
+ UINTN Size;\r
+ EFI_HANDLE LoadFileHandle;\r
+ UINT32 AuthenticationStatus;\r
+ CHAR16 *UiName;\r
+ UINTN UiNameSize;\r
\r
DEBUG ((DEBUG_INFO, "LoadFileOnFv2:Find a FV!\n"));\r
Status = gBS->HandleProtocol (Handle, &gEfiFirmwareVolume2ProtocolGuid, (VOID **)&Fv);\r
// each one found.\r
//\r
FileType = EFI_FV_FILETYPE_APPLICATION;\r
- Key = 0;\r
+ Key = 0;\r
while (TRUE) {\r
Status = Fv->GetNextFile (Fv, &Key, &FileType, &NameGuid, &Attributes, &Size);\r
if (EFI_ERROR (Status)) {\r
if (EFI_ERROR (Status)) {\r
continue;\r
}\r
+\r
if (!IsInPrivateList (&NameGuid)) {\r
Private = (LOAD_FILE_ON_FV2_PRIVATE_DATA *)AllocateCopyPool (sizeof (mLoadFileOnFv2PrivateDataTemplate), &mLoadFileOnFv2PrivateDataTemplate);\r
ASSERT (Private != NULL);\r
- Private->Fv = Fv;\r
+ Private->Fv = Fv;\r
Private->DevicePath = CreateFileDevicePath (Handle, &NameGuid, UiName);\r
CopyGuid (&Private->NameGuid, &NameGuid);\r
LoadFileHandle = NULL;\r
DEBUG ((DEBUG_INFO, "Find a APPLICATION in this FV!\n"));\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
&LoadFileHandle,\r
- &gEfiDevicePathProtocolGuid, Private->DevicePath,\r
- &gEfiLoadFileProtocolGuid, &Private->LoadFile,\r
+ &gEfiDevicePathProtocolGuid,\r
+ Private->DevicePath,\r
+ &gEfiLoadFileProtocolGuid,\r
+ &Private->LoadFile,\r
NULL\r
);\r
if (!EFI_ERROR (Status)) {\r
VOID\r
EFIAPI\r
FvNotificationEvent (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN BufferSize;\r
- EFI_HANDLE *Handle;\r
- UINTN Index;\r
- EFI_HANDLE *CurHandle;\r
-\r
+ EFI_STATUS Status;\r
+ UINTN BufferSize;\r
+ EFI_HANDLE *Handle;\r
+ UINTN Index;\r
+ EFI_HANDLE *CurHandle;\r
\r
Handle = NULL;\r
Index = 0;\r
if (Handle == NULL) {\r
return;\r
}\r
+\r
Status = gBS->LocateHandle (\r
- ByProtocol,\r
- &gEfiFirmwareVolume2ProtocolGuid,\r
- NULL,\r
- &BufferSize,\r
- Handle\r
- );\r
+ ByProtocol,\r
+ &gEfiFirmwareVolume2ProtocolGuid,\r
+ NULL,\r
+ &BufferSize,\r
+ Handle\r
+ );\r
if (EFI_BUFFER_TOO_SMALL == Status) {\r
FreePool (Handle);\r
Handle = AllocateZeroPool (BufferSize);\r
if (Handle == NULL) {\r
return;\r
}\r
+\r
Status = gBS->LocateHandle (\r
ByProtocol,\r
&gEfiFirmwareVolume2ProtocolGuid,\r
}\r
\r
CurHandle = Handle;\r
- for (Index=0; Index < BufferSize/sizeof (EFI_HANDLE); Index++) {\r
+ for (Index = 0; Index < BufferSize/sizeof (EFI_HANDLE); Index++) {\r
CurHandle = Handle + Index;\r
//\r
// Install LoadFile Protocol\r
//\r
InstallFileLoadProtocol (*CurHandle);\r
}\r
+\r
if (Handle != NULL) {\r
FreePool (Handle);\r
}\r
);\r
\r
EfiCreateProtocolNotifyEvent (\r
- &gLzmaCustomDecompressGuid,\r
- TPL_CALLBACK,\r
- FvNotificationEvent,\r
- NULL,\r
- &mFvRegistration\r
+ &gLzmaCustomDecompressGuid,\r
+ TPL_CALLBACK,\r
+ FvNotificationEvent,\r
+ NULL,\r
+ &mFvRegistration\r
);\r
\r
return EFI_SUCCESS;\r
}\r
-\r