On 12/22/22 09:00, Laszlo Ersek wrote: > On 12/21/22 17:38, Andrey Drobyshev wrote: >> This patch is merely a refactoring and does not introduce any changes in >> behaviour. It's used as a prelude for the next patch which prioritizes >> BIOS boot partition when searching for the right firmware. >> >> Co-authored-by: Laszlo Ersek <ler...@redhat.com> >> Signed-off-by: Andrey Drobyshev <andrey.drobys...@virtuozzo.com> >> --- >> convert/inspect_source.ml | 24 ++++++++++++++---------- >> 1 file changed, 14 insertions(+), 10 deletions(-) >> >> diff --git a/convert/inspect_source.ml b/convert/inspect_source.ml >> index 056d0bca..42a26f68 100644 >> --- a/convert/inspect_source.ml >> +++ b/convert/inspect_source.ml >> @@ -225,26 +225,30 @@ and list_applications g root = function >> * Otherwise, [BIOS] is returned. >> *) >> and get_firmware_bootable_device g = >> - let rec uefi_ESP_guid = "C12A7328-F81F-11D2-BA4B-00A0C93EC93B" >> - and is_uefi_ESP dev part = >> - let partnum = g#part_to_partnum part in >> - g#part_get_gpt_type dev partnum = uefi_ESP_guid >> - and parttype_is_gpt dev = >> + let parttype_is_gpt dev = >> try g#part_get_parttype dev = "gpt" >> with G.Error msg as exn -> >> (* If it's _not_ "unrecognised disk label" then re-raise it. *) >> if g#last_errno () <> G.Errno.errno_EINVAL then raise exn; >> debug "%s (ignored)" msg; >> false >> - and is_uefi_bootable_part part = >> + in >> + let accumulate_partition esp_parts part = >> let dev = g#part_to_dev part in >> - parttype_is_gpt dev && is_uefi_ESP dev part >> + if parttype_is_gpt dev then >> + let partnum = g#part_to_partnum part in >> + let part_type_guid = g#part_get_gpt_type dev partnum in >> + match part_type_guid with >> + (* EFI system partition *) >> + | "C12A7328-F81F-11D2-BA4B-00A0C93EC93B" -> part :: esp_parts >> + | _ -> esp_parts >> + else esp_parts >> in >> >> - let partitions = Array.to_list (g#list_partitions ()) in >> - let partitions = List.filter is_uefi_bootable_part partitions in >> + let esp_partitions = >> + Array.fold_left accumulate_partition [] (g#list_partitions ()) in >> >> - match partitions with >> + match esp_partitions with >> | [] -> I_BIOS >> | partitions -> I_UEFI partitions >> > > I've replaced "List.fold_left" with "Array.fold_left" in the commit > message (subject line).
Of course, just couldn't stop thinking about lists (: Thanks! > > Merged as commit d04b9a05b2a5. > > Laszlo > _______________________________________________ Libguestfs mailing list Libguestfs@redhat.com https://listman.redhat.com/mailman/listinfo/libguestfs