## Include/Guid/ArmGlobalVariableHob.h\r
gArmGlobalVariableGuid = { 0xc3253c90, 0xa24f, 0x4599, { 0xa6, 0x64, 0x1f, 0x88, 0x13, 0x77, 0x8f, 0xc9} }\r
\r
+ gArmBootMonFsFileInfoGuid = { 0x41e26b9c, 0xada6, 0x45b3, { 0x80, 0x8e, 0x23, 0x57, 0xa3, 0x5b, 0x60, 0xd6 } }\r
+\r
[Ppis]\r
## Include/Ppi/ArmGlobalVariable.h\r
gArmGlobalVariablePpiGuid = { 0xab1c1816, 0xd542, 0x4e6f, {0x9b, 0x1e, 0x8e, 0xcd, 0x92, 0x53, 0xe2, 0xe7} }\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
+EFI_STATUS\r
+GetBootMonFsFileInfo (\r
+ IN BOOTMON_FS_INSTANCE *Instance,\r
+ IN BOOTMON_FS_FILE *File,\r
+ IN OUT UINTN *BufferSize,\r
+ OUT VOID *Buffer\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ BOOTMON_FS_FILE_INFO *Info;\r
+ UINTN ResultSize;\r
+ UINTN Index;\r
+\r
+ if (File == Instance->RootFile) {\r
+ Status = EFI_UNSUPPORTED;\r
+ } else {\r
+ ResultSize = SIZE_OF_BOOTMON_FS_FILE_INFO;\r
+\r
+ if (*BufferSize < ResultSize) {\r
+ *BufferSize = ResultSize;\r
+ Status = EFI_BUFFER_TOO_SMALL;\r
+ } else {\r
+ Info = Buffer;\r
+\r
+ // Zero out the structure\r
+ ZeroMem (Info, ResultSize);\r
+\r
+ // Fill in the structure\r
+ Info->Size = ResultSize;\r
+\r
+ Info->EntryPoint = File->HwDescription.EntryPoint;\r
+ Info->RegionCount = File->HwDescription.RegionCount;\r
+ for (Index = 0; Index < File->HwDescription.RegionCount; Index++) {\r
+ Info->Region[Index].LoadAddress = File->HwDescription.Region[Index].LoadAddress;\r
+ Info->Region[Index].Size = File->HwDescription.Region[Index].Size;\r
+ Info->Region[Index].Offset = File->HwDescription.Region[Index].Offset;\r
+ Info->Region[Index].Checksum = File->HwDescription.Region[Index].Checksum;\r
+ }\r
+ *BufferSize = ResultSize;\r
+ Status = EFI_SUCCESS;\r
+ }\r
+ }\r
+\r
+ return Status;\r
+}\r
+\r
STATIC\r
EFI_STATUS\r
SetFileName (\r
Status = GetFilesystemInfo (Instance, BufferSize, Buffer);\r
} else if (CompareGuid (InformationType, &gEfiFileInfoGuid) != 0) {\r
Status = GetFileInfo (Instance, File, BufferSize, Buffer);\r
+ } else if (CompareGuid (InformationType, &gArmBootMonFsFileInfoGuid) != 0) {\r
+ Status = GetBootMonFsFileInfo (Instance, File, BufferSize, Buffer);\r
} else {\r
Status = EFI_UNSUPPORTED;\r
}\r