From ee22664bcb1fdedece15e07d047ba86f3d791ee6 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Tue, 24 Mar 2015 10:47:13 -0400 Subject: fix retrieving ESP partition type ESP are the only partitions we're detecting through their pt_type (modulo 0x12 which was Compaq Diagnostic & unlikely to be found on GPT...) However GPT has no equivalent to pt_type But we can test for ESP flag --- perl-install/c/stuff.xs.pl | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'perl-install/c') diff --git a/perl-install/c/stuff.xs.pl b/perl-install/c/stuff.xs.pl index 631271a1e..c6adf9a68 100755 --- a/perl-install/c/stuff.xs.pl +++ b/perl-install/c/stuff.xs.pl @@ -576,6 +576,27 @@ get_iso_volume_ids(int fd) print ' +int +is_partition_ESP(char * device_path, int part_number) + CODE: + PedDevice *dev = ped_device_get(device_path); + RETVAL = 0; + if(dev) { + PedDisk* disk = ped_disk_new(dev); + if(disk) { + PedPartition* part = ped_disk_get_partition(disk, part_number); + if (!part) { + printf("is_partition_ESP: failed to find partition\n"); + } else { + RETVAL=ped_partition_get_flag(part, PED_PARTITION_ESP); + } + ped_disk_destroy(disk); + } + } + OUTPUT: + RETVAL + + const char * get_disk_type(char * device_path) CODE: -- cgit v1.2.1