[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [GRUB PARTUUID PATCH V7 3/4] Add PARTUUID detection support to grub-
From: |
Daniel Kiper |
Subject: |
Re: [GRUB PARTUUID PATCH V7 3/4] Add PARTUUID detection support to grub-probe |
Date: |
Tue, 27 Mar 2018 22:52:59 +0200 |
User-agent: |
Mutt/1.3.28i |
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 <address@hidden>
> ---
> 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 PARTUUID PATCH V7 0/4] Add PARTUUID detection support, Nicholas Vinson, 2018/03/27
- [GRUB PARTUUID PATCH V7 1/4] Centralize guid prints, Nicholas Vinson, 2018/03/27
- [GRUB PARTUUID PATCH V7 4/4] Update grub script template files, Nicholas Vinson, 2018/03/27
- Re: [GRUB PARTUUID PATCH V7 0/4] Add PARTUUID detection support, Daniel Kiper, 2018/03/27
- [GRUB PARTUUID PATCH V7.1 3/4] Add PARTUUID detection support to grub-probe, Nicholas Vinson, 2018/03/28