On Mon, Mar 26, 2018 at 11:07:58PM -0700, Nicholas Vinson wrote: > Add PARTUUID detection support grub-probe for MBR and GPT partition > schemes. > > Signed-off-by: Nicholas Vinson <nvinson...@gmail.com> > --- > util/grub-probe.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/util/grub-probe.c b/util/grub-probe.c > index 21cb80fbe..48ef1e2ec 100644 > --- a/util/grub-probe.c > +++ b/util/grub-probe.c > @@ -28,6 +28,7 @@ > #include <grub/partition.h> > #include <grub/msdos_partition.h> > #include <grub/gpt_partition.h> > +#include <grub/i386/pc/boot.h> > #include <grub/emu/hostdisk.h> > #include <grub/emu/getroot.h> > #include <grub/term.h> > @@ -62,6 +63,7 @@ enum { > PRINT_DRIVE, > PRINT_DEVICE, > PRINT_PARTMAP, > + PRINT_PARTUUID, > PRINT_ABSTRACTION, > PRINT_CRYPTODISK_UUID, > PRINT_HINT_STR, > @@ -85,6 +87,7 @@ static const char *targets[] = > [PRINT_DRIVE] = "drive", > [PRINT_DEVICE] = "device", > [PRINT_PARTMAP] = "partmap", > + [PRINT_PARTUUID] = "partuuid", > [PRINT_ABSTRACTION] = "abstraction", > [PRINT_CRYPTODISK_UUID] = "cryptodisk_uuid", > [PRINT_HINT_STR] = "hints_string", > @@ -181,6 +184,45 @@ probe_partmap (grub_disk_t disk, char delim) > } > } > > +static void > +probe_partuuid (grub_disk_t disk, char delim) > +{ > + grub_partition_t p = disk->partition;
Lack of empty line. > + /* > + * Nested partitions not supported for now. > + * Non-nested partitions must have disk->partition->parent == NULL > + */ > + if (disk->partition && disk->partition->parent == NULL) > + { > + if (strcmp(disk->partition->partmap->name, "msdos") == 0) > + { > + /* > + * The partition GUID for MSDOS is the partition number (starting > + * with 1) prepended with the NT disk signature. > + */ > + grub_uint32_t nt_disk_sig; > + disk->partition = p->parent; > + > + if (grub_disk_read (disk, 0, GRUB_BOOT_MACHINE_WINDOWS_NT_MAGIC, > + sizeof(nt_disk_sig), &nt_disk_sig) == 0) > + Redundant empty line. > + grub_printf ("%08x-%02x", > + grub_le_to_cpu32(nt_disk_sig), 1 + p->number); > + } > + else if (strcmp(disk->partition->partmap->name, "gpt") == 0) > + { > + struct grub_gpt_partentry gptdata; > + > + disk->partition = p->parent; > + > + if (grub_disk_read (disk, p->offset, p->index, > + sizeof(gptdata), &gptdata) == 0) > + print_gpt_guid(gptdata.guid); > + } Why "disk->partition = p;" is not here? Because compiler complains if it is here? Anyway, if I know the reason for above I can fix earlier ntipicks myself before commiting this patch. Well, "disk->partition = p->parent;" can be before "if (strcmp(disk->partition->partmap->name, "msdos") == 0)". Am I right? > + } > + disk->partition = p; > +} > + Daniel _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel