return TRUE;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
BootMonFsDiscoverNextImage (\r
- IN BOOTMON_FS_INSTANCE *Instance,\r
- IN EFI_LBA *LbaStart,\r
- OUT HW_IMAGE_DESCRIPTION *ImageDescription\r
+ IN BOOTMON_FS_INSTANCE *Instance,\r
+ IN OUT EFI_LBA *LbaStart,\r
+ IN OUT BOOTMON_FS_FILE *File\r
)\r
{\r
EFI_DISK_IO_PROTOCOL *DiskIo;\r
Instance->Media->MediaId,\r
DescOffset,\r
sizeof (HW_IMAGE_DESCRIPTION),\r
- ImageDescription\r
+ &File->HwDescription\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
// If we found a valid image description...\r
- if (BootMonFsIsImageValid (ImageDescription, (CurrentLba - Instance->Media->LowestAlignedLba))) {\r
- DEBUG ((EFI_D_ERROR, "Found image: %a in block %d.\n", &(ImageDescription->Footer.Filename), (UINTN)(CurrentLba - Instance->Media->LowestAlignedLba)));\r
-\r
- *LbaStart = ImageDescription->BlockEnd + 1;\r
+ if (BootMonFsIsImageValid (&File->HwDescription, (CurrentLba - Instance->Media->LowestAlignedLba))) {\r
+ DEBUG ((EFI_D_ERROR, "Found image: %a in block %d.\n",\r
+ &(File->HwDescription.Footer.Filename),\r
+ (UINTN)(CurrentLba - Instance->Media->LowestAlignedLba)\r
+ ));\r
+ File->HwDescAddress = DescOffset;\r
+\r
+ *LbaStart = CurrentLba + 1;\r
return EFI_SUCCESS;\r
} else {\r
CurrentLba++;\r
return Status;\r
}\r
\r
- Status = BootMonFsDiscoverNextImage (Instance, &Lba, &(NewFile->HwDescription));\r
+ Status = BootMonFsDiscoverNextImage (Instance, &Lba, NewFile);\r
if (EFI_ERROR (Status)) {\r
// Free NewFile allocated by BootMonFsCreateFile ()\r
FreePool (NewFile);\r