[parted-devel] [PATCH] GPT: add support for PReP GUID
Elliott, Robert (Server Storage)
Elliott at hp.com
Fri Oct 4 14:19:04 UTC 2013
You might want to include a comment somewhere explaining what PReP is ("PowerPC Reference Platform").
---
Rob Elliott HP Server Storage
> -----Original Message-----
> From: parted-devel [mailto:parted-devel-
> bounces+elliott=hp.com at lists.alioth.debian.org] On Behalf Of Avik Sil
> Sent: Friday, 04 October, 2013 4:17 AM
> To: parted-devel at lists.alioth.debian.org; bug-parted at gnu.org
> Cc: dbkreling at br.ibm.com
> Subject: [parted-devel] [PATCH] GPT: add support for PReP GUID
>
> From: Daniel Battaiola Kreling <dbkreling at br.ibm.com>
>
> A new GUID 9e1a2d38-c612-4316-aa26-8b49521e5a8b for PReP partition
> is proposed to be included in GPT.
> ---
> libparted/labels/gpt.c | 38 ++++++++++++++++++++++++++++++++++++++
> 1 file changed, 38 insertions(+)
>
> diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
> index 490de70..ee8148d 100644
> --- a/libparted/labels/gpt.c
> +++ b/libparted/labels/gpt.c
> @@ -146,6 +146,10 @@ typedef struct
> ((efi_guid_t) { PED_CPU_TO_LE32 (0x5265636F), PED_CPU_TO_LE16
> (0x7665), \
> PED_CPU_TO_LE16 (0x11AA), 0xaa, 0x11, \
> { 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }})
> +#define PARTITION_PREP_GUID \
> + ((efi_guid_t) { PED_CPU_TO_LE32 (0x9e1a2d38), PED_CPU_TO_LE16
> (0xc612), \
> + PED_CPU_TO_LE16 (0x4316), 0xaa, 0x26, \
> + { 0x8b, 0x49, 0x52, 0x1e, 0x5a, 0x8b }})
>
> struct __attribute__ ((packed)) _GuidPartitionTableHeader_t
> {
> @@ -288,6 +292,7 @@ typedef struct _GPTPartitionData
> int atvrecv;
> int msftrecv;
> int legacy_boot;
> + int prep;
> } GPTPartitionData;
>
> static PedDiskType gpt_disk_type;
> @@ -796,6 +801,7 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t
> *pte)
> = gpt_part_data->msftdata
> = gpt_part_data->msftrecv
> = gpt_part_data->legacy_boot
> + = gpt_part_data->prep
> = gpt_part_data->bios_grub = gpt_part_data->atvrecv = 0;
>
> if (pte->Attributes.RequiredToFunction & 0x1)
> @@ -821,6 +827,8 @@ _parse_part_entry (PedDisk *disk, GuidPartitionEntry_t
> *pte)
> gpt_part_data->msftrecv = 1;
> else if (!guid_cmp (gpt_part_data->type,
> PARTITION_APPLE_TV_RECOVERY_GUID))
> gpt_part_data->atvrecv = 1;
> + else if (!guid_cmp (gpt_part_data->type, PARTITION_PREP_GUID))
> + gpt_part_data->prep = 1;
>
> return part;
> }
> @@ -1338,6 +1346,7 @@ gpt_partition_new (const PedDisk *disk,
> gpt_part_data->msftrecv = 0;
> gpt_part_data->atvrecv = 0;
> gpt_part_data->legacy_boot = 0;
> + gpt_part_data->prep = 0;
> uuid_generate ((unsigned char *) &gpt_part_data->uuid);
> swap_uuid_and_efi_guid ((unsigned char *) (&gpt_part_data->uuid));
> memset (gpt_part_data->name, 0, sizeof gpt_part_data->name);
> @@ -1411,6 +1420,11 @@ gpt_partition_set_system (PedPartition *part,
> gpt_part_data->type = PARTITION_RAID_GUID;
> return 1;
> }
> + if (gpt_part_data->prep)
> + {
> + gpt_part_data->type = PARTITION_PREP_GUID;
> + return 1;
> + }
> if (gpt_part_data->boot)
> {
> gpt_part_data->type = PARTITION_SYSTEM_GUID;
> @@ -1587,6 +1601,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->msftres
> = gpt_part_data->msftdata
> = gpt_part_data->msftrecv
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_BIOS_GRUB:
> @@ -1599,6 +1614,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->msftres
> = gpt_part_data->msftdata
> = gpt_part_data->msftrecv
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_RAID:
> @@ -1611,6 +1627,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->msftres
> = gpt_part_data->msftdata
> = gpt_part_data->msftrecv
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_LVM:
> @@ -1623,6 +1640,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->msftres
> = gpt_part_data->msftdata
> = gpt_part_data->msftrecv
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_HPSERVICE:
> @@ -1635,6 +1653,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->msftres
> = gpt_part_data->msftdata
> = gpt_part_data->msftrecv
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_MSFT_RESERVED:
> @@ -1647,6 +1666,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->hp_service
> = gpt_part_data->msftdata
> = gpt_part_data->msftrecv
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_MSFT_DATA:
> @@ -1659,6 +1679,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->hp_service
> = gpt_part_data->msftres
> = gpt_part_data->msftrecv
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> gpt_part_data->msftdata = 1;
> } else {
> @@ -1675,6 +1696,7 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->hp_service
> = gpt_part_data->msftdata
> = gpt_part_data->msftres
> + = gpt_part_data->prep
> = gpt_part_data->atvrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_APPLE_TV_RECOVERY:
> @@ -1687,8 +1709,21 @@ gpt_partition_set_flag (PedPartition *part,
> PedPartitionFlag flag, int state)
> = gpt_part_data->hp_service
> = gpt_part_data->msftres
> = gpt_part_data->msftdata
> + = gpt_part_data->prep
> = gpt_part_data->msftrecv = 0;
> return gpt_partition_set_system (part, part->fs_type);
> + case PED_PARTITION_PREP:
> + gpt_part_data->prep = state;
> + if (state)
> + gpt_part_data->boot
> + = gpt_part_data->raid
> + = gpt_part_data->lvm
> + = gpt_part_data->bios_grub
> + = gpt_part_data->hp_service
> + = gpt_part_data->msftres
> + = gpt_part_data->msftrecv
> + = gpt_part_data->atvrecv = 0;
> + return gpt_partition_set_system (part, part->fs_type);
> case PED_PARTITION_HIDDEN:
> gpt_part_data->hidden = state;
> return 1;
> @@ -1735,6 +1770,8 @@ gpt_partition_get_flag (const PedPartition *part,
> PedPartitionFlag flag)
> return gpt_part_data->hidden;
> case PED_PARTITION_LEGACY_BOOT:
> return gpt_part_data->legacy_boot;
> + case PED_PARTITION_PREP:
> + return gpt_part_data->prep;
> case PED_PARTITION_SWAP:
> case PED_PARTITION_LBA:
> case PED_PARTITION_ROOT:
> @@ -1761,6 +1798,7 @@ gpt_partition_is_flag_available (const PedPartition
> *part,
> case PED_PARTITION_APPLE_TV_RECOVERY:
> case PED_PARTITION_HIDDEN:
> case PED_PARTITION_LEGACY_BOOT:
> + case PED_PARTITION_PREP:
> return 1;
> case PED_PARTITION_SWAP:
> case PED_PARTITION_ROOT:
> --
> 1.7.11.7
>
More information about the parted-devel
mailing list