9
0
Fork 0

efi: add helper to get the GPT partition UUID for a device

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Michael Olbrich 2015-07-17 21:22:39 +02:00 committed by Sascha Hauer
parent 55da0cf13e
commit be2edd99c0
2 changed files with 31 additions and 0 deletions

View File

@ -1383,3 +1383,33 @@ u8 device_path_to_type(struct efi_device_path *dev_path)
return device_path_type(dev_path);
}
char *device_path_to_partuuid(struct efi_device_path *dev_path)
{
struct efi_device_path *dev_path_node;
struct harddrive_device_path *hd;
char *str = NULL;;
dev_path = unpack_device_path(dev_path);
for (dev_path_node = dev_path; !is_device_path_end(dev_path_node);
dev_path_node = next_device_path_node(dev_path_node)) {
if (device_path_type(dev_path_node) != MEDIA_DEVICE_PATH)
continue;
if (dev_path_node->sub_type != MEDIA_HARDDRIVE_DP)
continue;
hd = (struct harddrive_device_path *)dev_path_node;
if (hd->signature_type != SIGNATURE_TYPE_GUID)
continue;
str = xasprintf("%pUl", (efi_guid_t *)&(hd->signature[0]));
break;
}
return str;
}

View File

@ -624,6 +624,7 @@ static inline int efi_compare_guid(efi_guid_t *a, efi_guid_t *b)
char *device_path_to_str(struct efi_device_path *dev_path);
u8 device_path_to_type(struct efi_device_path *dev_path);
char *device_path_to_partuuid(struct efi_device_path *dev_path);
const char *efi_guid_string(efi_guid_t *g);