GNU bug report logs -
#15551
[PATCH RESEND] GPT: add support for PReP GUID
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 15551 in the body.
You can then email your comments to 15551 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-parted <at> gnu.org
:
bug#15551
; Package
parted
.
(Mon, 07 Oct 2013 10:50:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Avik Sil <aviksil <at> linux.vnet.ibm.com>
:
New bug report received and forwarded. Copy sent to
bug-parted <at> gnu.org
.
(Mon, 07 Oct 2013 10:50:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Daniel Battaiola Kreling <dbkreling <at> br.ibm.com>
PReP (PowerPC Reference Platform) boot partition is the first partition used in
PowerPC platform for containing the bootable kernel or bootloader. The firmware
searches for this partition and jumps to it for booting. So far no GUID was
specified for this partition type and hence booting from GPT disk was not
supported on this platform. A new GUID 9e1a2d38-c612-4316-aa26-8b49521e5a8b for
PReP partition is proposed to be included in GPT.
Signed-off-by: Daniel Battaiola Kreling <dbkreling <at> br.ibm.com>
Signed-off-by: Avik Sil <aviksil <at> linux.vnet.ibm.com>
---
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
Merged 15532 15551.
Request was from
Phillip Susi <psusi <at> ubuntu.com>
to
control <at> debbugs.gnu.org
.
(Tue, 03 Dec 2013 15:10:03 GMT)
Full text and
rfc822 format available.
Merged 15532 15551.
Request was from
Phillip Susi <psusi <at> ubuntu.com>
to
control <at> debbugs.gnu.org
.
(Tue, 03 Dec 2013 15:49:02 GMT)
Full text and
rfc822 format available.
Merged 15532 15551.
Request was from
Phillip Susi <psusi <at> ubuntu.com>
to
control <at> debbugs.gnu.org
.
(Tue, 03 Dec 2013 15:59:02 GMT)
Full text and
rfc822 format available.
Merged 15532 15551.
Request was from
Phillip Susi <psusi <at> ubuntu.com>
to
control <at> debbugs.gnu.org
.
(Tue, 03 Dec 2013 16:13:03 GMT)
Full text and
rfc822 format available.
Disconnected #15551 from all other report(s).
Request was from
Phillip Susi <psusi <at> ubuntu.com>
to
control <at> debbugs.gnu.org
.
(Tue, 03 Dec 2013 16:25:01 GMT)
Full text and
rfc822 format available.
Merged 15532 15551.
Request was from
Phillip Susi <psusi <at> ubuntu.com>
to
control <at> debbugs.gnu.org
.
(Tue, 03 Dec 2013 16:25:01 GMT)
Full text and
rfc822 format available.
Reply sent
to
Phillip Susi <psusi <at> ubuntu.com>
:
You have taken responsibility.
(Tue, 25 Feb 2014 18:17:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Avik Sil <aviksil <at> linux.vnet.ibm.com>
:
bug acknowledged by developer.
(Tue, 25 Feb 2014 18:17:03 GMT)
Full text and
rfc822 format available.
Message #22 received at 15551-done <at> debbugs.gnu.org (full text, mbox):
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Closing this as it was a duplicate of #15528.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (MingW32)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJTDN3bAAoJEI5FoCIzSKrwV1sH/A2UvCwpx2k8w0BOOiKscBup
HgZhahdQyHi2tHKUVoxFeeHyzOM6vsgbwASXh+CyTKfJXVWM0RNR2pSDO5jpy2/q
Bhm3lvHg4AmspUX8rEoyUxFI7RltHLAfq6SFgxqEXspq7VJH6vYsPmLNsysgM3by
4INwdYEw5ZMAdMT/OE74oLjKtE1RFsuj3J/VPSwevsMydJEdJvm7qTFE/LHhIVuR
F6W9KQIISMijjzirZ4mCukML/XtB44u6nDkccn9MsdfH9sizWKDvmMAfQznHd0o+
Y3hLWagfT2AUIEL0w6vSnS6UVlWO03uNA3zH3rWnDkNmtkE4yOrBhzogBjgqYN8=
=rmJf
-----END PGP SIGNATURE-----
Reply sent
to
Phillip Susi <psusi <at> ubuntu.com>
:
You have taken responsibility.
(Tue, 25 Feb 2014 18:17:04 GMT)
Full text and
rfc822 format available.
Notification sent
to
Rod Smith <rodsmith <at> rodsbooks.com>
:
bug acknowledged by developer.
(Tue, 25 Feb 2014 18:17:04 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 26 Mar 2014 11:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 11 years and 91 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.