parted/revert-gpt-add-commands-to-manipulate-pMBR-boot-flag.patch

314 lines
9.5 KiB
Diff
Raw Normal View History

From ff10810537db7b9d1f287bed3c71a7570d395ba2 Mon Sep 17 00:00:00 2001
From: Petr Uzel <petr.uzel@suse.cz>
Date: Wed, 8 Jan 2014 18:01:15 +0100
Subject: [PATCH] Revert "gpt: add commands to manipulate pMBR boot flag"
This reverts commit a73918ea6d9477ac3e8dad11ed62c87aecc49714.
Conflicts:
libparted/labels/gpt.c
---
include/parted/disk.in.h | 4 --
libparted/disk.c | 3 --
libparted/labels/gpt.c | 59 +-----------------------------------------
parted/parted.c | 66 -----------------------------------------------
parted/ui.c | 29 --------------------
parted/ui.h | 3 --
6 files changed, 4 insertions(+), 160 deletions(-)
Index: parted-3.1/include/parted/disk.in.h
===================================================================
--- parted-3.1.orig/include/parted/disk.in.h
+++ parted-3.1/include/parted/disk.in.h
@@ -36,11 +36,9 @@ enum _PedDiskFlag {
This flag is available for msdos and sun disklabels (for sun labels
it only controls the aligning of the end of the partition) */
PED_DISK_CYLINDER_ALIGNMENT=1,
- /* This flag controls whether the boot flag of a GPT PMBR is set */
- PED_DISK_GPT_PMBR_BOOT=2,
};
#define PED_DISK_FIRST_FLAG PED_DISK_CYLINDER_ALIGNMENT
-#define PED_DISK_LAST_FLAG PED_DISK_GPT_PMBR_BOOT
+#define PED_DISK_LAST_FLAG PED_DISK_CYLINDER_ALIGNMENT
/**
* Partition types
Index: parted-3.1/libparted/disk.c
===================================================================
--- parted-3.1.orig/libparted/disk.c
+++ parted-3.1/libparted/disk.c
@@ -836,8 +836,7 @@ ped_disk_flag_get_name(PedDiskFlag flag)
switch (flag) {
case PED_DISK_CYLINDER_ALIGNMENT:
return N_("cylinder_alignment");
- case PED_DISK_GPT_PMBR_BOOT:
- return N_("pmbr_boot");
+
default:
ped_exception_throw (
PED_EXCEPTION_BUG,
Index: parted-3.1/libparted/labels/gpt.c
===================================================================
--- parted-3.1.orig/libparted/labels/gpt.c
+++ parted-3.1/libparted/labels/gpt.c
@@ -264,7 +264,6 @@ struct __attribute__ ((packed)) _GPTDisk
PedGeometry data_area;
int entry_count;
efi_guid_t uuid;
- int pmbr_boot;
};
/* uses libparted's disk_specific field in PedPartition, to store our info */
@@ -536,7 +535,6 @@ gpt_alloc (const PedDevice *dev)
gpt_disk_data->entry_count = GPT_DEFAULT_PARTITION_ENTRIES;
uuid_generate ((unsigned char *) &gpt_disk_data->uuid);
swap_uuid_and_efi_guid ((unsigned char *) (&gpt_disk_data->uuid));
- gpt_disk_data->pmbr_boot = 0;
return disk;
error_free_disk:
@@ -845,14 +843,6 @@ gpt_read_headers (PedDisk const *disk,
*backup_gpt = NULL;
PedDevice const *dev = disk->dev;
GPTDiskData *gpt_disk_data = disk->disk_specific;
- LegacyMBR_t *mbr;
-
- if (!ptt_read_sector (dev, 0, (void *)&mbr))
- return 1;
-
- if (mbr->PartitionRecord[0].BootIndicator == 0x80)
- gpt_disk_data->pmbr_boot = 1;
- free (mbr);
void *s1;
if (!ptt_read_sector (dev, 1, &s1))
@@ -1090,7 +1080,7 @@ error:
#ifndef DISCOVER_ONLY
/* Write the protective MBR (to keep DOS happy) */
static int
-_write_pmbr (PedDevice *dev, bool pmbr_boot)
+_write_pmbr (PedDevice *dev)
{
/* The UEFI spec is not clear about what to do with the following
elements of the Protective MBR (pmbr): BootCode (0-440B),
@@ -1115,8 +1105,6 @@ _write_pmbr (PedDevice *dev, bool pmbr_b
pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (0xFFFFFFFF);
else
pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (dev->length - 1UL);
- if (pmbr_boot)
- pmbr->PartitionRecord[0].BootIndicator = 0x80;
int write_ok = ped_device_write (dev, pmbr, GPT_PMBR_LBA,
GPT_PMBR_SECTORS);
@@ -1237,7 +1225,7 @@ gpt_write (const PedDisk *disk)
ptes_crc = efi_crc32 (ptes, ptes_bytes);
/* Write protective MBR */
- if (!_write_pmbr (disk->dev, gpt_disk_data->pmbr_boot))
+ if (!_write_pmbr (disk->dev))
goto error_free_ptes;
/* Write PTH and PTEs */
@@ -1523,46 +1511,6 @@ gpt_partition_enumerate (PedPartition *p
}
static int
-gpt_disk_set_flag (PedDisk *disk, PedDiskFlag flag, int state)
-{
- GPTDiskData *gpt_disk_data = disk->disk_specific;
- switch (flag)
- {
- case PED_DISK_GPT_PMBR_BOOT:
- gpt_disk_data->pmbr_boot = state;
- return 1;
- default:
- return 0;
- }
-}
-
-static int
-gpt_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag)
-{
- switch (flag)
- {
- case PED_DISK_GPT_PMBR_BOOT:
- return 1;
- default:
- return 0;
- }
-}
-
-static int
-gpt_disk_get_flag (const PedDisk *disk, PedDiskFlag flag)
-{
- GPTDiskData *gpt_disk_data = disk->disk_specific;
- switch (flag)
- {
- case PED_DISK_GPT_PMBR_BOOT:
- return gpt_disk_data->pmbr_boot;
- break;
- default:
- return 0;
- }
-}
-
-static int
gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
{
GPTPartitionData *gpt_part_data;
@@ -1850,9 +1798,6 @@ static PedDiskOps gpt_disk_ops =
partition_set_name: gpt_partition_set_name,
partition_get_name: gpt_partition_get_name,
- disk_set_flag: gpt_disk_set_flag,
- disk_get_flag: gpt_disk_get_flag,
- disk_is_flag_available: gpt_disk_is_flag_available,
PT_op_function_initializers (gpt)
};
Index: parted-3.1/parted/parted.c
===================================================================
--- parted-3.1.orig/parted/parted.c
+++ parted-3.1/parted/parted.c
@@ -1608,43 +1608,6 @@ error:
}
static int
-do_disk_set (PedDevice** dev)
-{
- PedDisk* disk;
- PedDiskFlag flag;
- int state;
-
- disk = ped_disk_new (*dev);
- if (!disk)
- goto error;
-
- if (!command_line_get_disk_flag (_("Flag to Invert?"), disk, &flag))
- goto error_destroy_disk;
- state = (ped_disk_get_flag (disk, flag) == 0 ? 1 : 0);
-
- if (!is_toggle_mode) {
- if (!command_line_get_state (_("New state?"), &state))
- goto error_destroy_disk;
- }
-
- if (!ped_disk_set_flag (disk, flag, state))
- goto error_destroy_disk;
- if (!ped_disk_commit (disk))
- goto error_destroy_disk;
- ped_disk_destroy (disk);
-
- if ((*dev)->type != PED_DEVICE_FILE)
- disk_is_modified = 1;
-
- return 1;
-
-error_destroy_disk:
- ped_disk_destroy (disk);
-error:
- return 0;
-}
-
-static int
do_set (PedDevice** dev)
{
PedDisk* disk;
@@ -1685,18 +1648,6 @@ error:
}
static int
-do_disk_toggle (PedDevice **dev)
-{
- int result;
-
- is_toggle_mode = 1;
- result = do_disk_set (dev);
- is_toggle_mode = 0;
-
- return result;
-}
-
-static int
do_toggle (PedDevice **dev)
{
int result;
@@ -1933,23 +1884,6 @@ NULL),
str_list_create (_(device_msg), NULL), 1));
command_register (commands, command_create (
- str_list_create_unique ("disk_set", _("disk_set"), NULL),
- do_disk_set,
- str_list_create (
-_("disk_set FLAG STATE change the FLAG on selected device"),
-NULL),
- str_list_create (flag_msg, _(state_msg), NULL), 1));
-
-command_register (commands, command_create (
- str_list_create_unique ("disk_toggle", _("disk_toggle"), NULL),
- do_disk_toggle,
- str_list_create (
-_("disk_toggle [FLAG] toggle the state of FLAG on "
-"selected device"),
-NULL),
- str_list_create (flag_msg, NULL), 1));
-
-command_register (commands, command_create (
str_list_create_unique ("set", _("set"), NULL),
do_set,
str_list_create (
Index: parted-3.1/parted/ui.c
===================================================================
--- parted-3.1.orig/parted/ui.c
+++ parted-3.1/parted/ui.c
@@ -1116,35 +1116,6 @@ command_line_get_disk_type (const char*
}
int
-command_line_get_disk_flag (const char* prompt, const PedDisk* disk,
- PedDiskFlag* flag)
-{
- StrList* opts = NULL;
- PedPartitionFlag walk = 0;
- char* flag_name;
-
- while ( (walk = ped_disk_flag_next (walk)) ) {
- if (ped_disk_is_flag_available (disk, walk)) {
- const char* walk_name;
-
- walk_name = ped_disk_flag_get_name (walk);
- opts = str_list_append (opts, walk_name);
- opts = str_list_append_unique (opts, _(walk_name));
- }
- }
-
- flag_name = command_line_get_word (prompt, NULL, opts, 1);
- str_list_destroy (opts);
-
- if (flag_name) {
- *flag = ped_disk_flag_get_by_name (flag_name);
- free (flag_name);
- return 1;
- } else
- return 0;
-}
-
-int
command_line_get_part_flag (const char* prompt, const PedPartition* part,
PedPartitionFlag* flag)
{
Index: parted-3.1/parted/ui.h
===================================================================
--- parted-3.1.orig/parted/ui.h
+++ parted-3.1/parted/ui.h
@@ -63,9 +63,6 @@ extern int command_line_get_fs_type (con
const PedFileSystemType*(* value));
extern int command_line_get_disk_type (const char* prompt,
const PedDiskType*(* value));
-extern int command_line_get_disk_flag (const char* prompt,
- const PedDisk* disk,
- PedDiskFlag* flag);
extern int command_line_get_part_flag (const char* prompt,
const PedPartition* part,
PedPartitionFlag* flag);