emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#15548: closed ([PATCH RESEND] GPT: add support for


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#15548: closed ([PATCH RESEND] GPT: add support for PReP GUID)
Date: Sun, 24 Nov 2013 02:38:04 +0000

Your message dated Sat, 23 Nov 2013 21:37:20 -0500
with message-id <address@hidden>
and subject line Re: bug#15528: [parted-devel] [PATCH] GPT: add support for 
PReP GUID
has caused the debbugs.gnu.org bug report #15528,
regarding [PATCH RESEND] GPT: add support for PReP GUID
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
15528: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15528
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: [PATCH RESEND] GPT: add support for PReP GUID Date: Mon, 7 Oct 2013 11:51:50 +0530
From: Daniel Battaiola Kreling <address@hidden>

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.

---
 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




--- End Message ---
--- Begin Message --- Subject: Re: bug#15528: [parted-devel] [PATCH] GPT: add support for PReP GUID Date: Sat, 23 Nov 2013 21:37:20 -0500 User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.1
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Committed, with some documentation added.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.14 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBCgAGBQJSkWZfAAoJEJrBOlT6nu75jsAH/3tPnQstAlcPl2BT0hMrIkWz
SxCaXaOT2qzKYkvfQACt7Cl7FdRu/NwlaWZ0aZOz+/TV3x02M6h8YhUbnYyNYDf3
wJK+gwIgX7XVHokbLqTQS/Uv6tmvLcRdJv5P4ZhAOFvKhjqtmHyMh7isOERdDq0e
0hZ7BweDdq+0Hl4EGIyKx47MG8PZbor3Y0bJfOT9M4RmfnsepG7TN7eig/mJ7qft
6srvj7i9qQ6/1mJnE/+BYwqrzKmzbcuKw+26N/9n7BiCwRjdzQ9l+1cNmWdppnzM
022ewqeF5a3LQzoILqh2FFUbj03U8IsHm3nEtuV9Bv1RdQyPShpTc/YUfZq34Fk=
=Ii0I
-----END PGP SIGNATURE-----


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]