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:
parent
55da0cf13e
commit
be2edd99c0
|
@ -1383,3 +1383,33 @@ u8 device_path_to_type(struct efi_device_path *dev_path)
|
||||||
|
|
||||||
return device_path_type(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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
char *device_path_to_str(struct efi_device_path *dev_path);
|
||||||
u8 device_path_to_type(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);
|
const char *efi_guid_string(efi_guid_t *g);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue