summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAhmad Fatoum <a.fatoum@pengutronix.de>2019-12-04 13:56:51 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2019-12-09 10:27:35 +0100
commitca79508e0f717a62e5302330b4a62b2f28a1b032 (patch)
treedb0f027a5668d6a03213241e8df9bb4ed2713cc0
parenta62aab160e1f380c94972273a6347aa5a07f0809 (diff)
downloadbarebox-ca79508e0f717a62e5302330b4a62b2f28a1b032.tar.gz
barebox-ca79508e0f717a62e5302330b4a62b2f28a1b032.tar.xz
efi: add and use new efi_device_has_guid helper
We have at least two places where we check if a efidev has a particular guid and a follow-up commit will introduce a third place. So lets factor it out into a helper. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--drivers/block/efi-block-io.c11
-rw-r--r--drivers/efi/efi-device.c11
-rw-r--r--include/efi/efi-device.h12
3 files changed, 16 insertions, 18 deletions
diff --git a/drivers/block/efi-block-io.c b/drivers/block/efi-block-io.c
index 39dbfb0f7a..30db486876 100644
--- a/drivers/block/efi-block-io.c
+++ b/drivers/block/efi-block-io.c
@@ -131,16 +131,9 @@ static void efi_bio_print_info(struct efi_bio_priv *priv)
media->optimal_transfer_length_granularity);
}
-static int is_bio_usbdev(struct efi_device *efidev)
+static bool is_bio_usbdev(struct efi_device *efidev)
{
- int i;
-
- for (i = 0; i < efidev->num_guids; i++) {
- if (!efi_guidcmp(efidev->guids[i], EFI_USB_IO_PROTOCOL_GUID))
- return 1;
- }
-
- return 0;
+ return efi_device_has_guid(efidev, EFI_USB_IO_PROTOCOL_GUID);
}
static int efi_bio_probe(struct efi_device *efidev)
diff --git a/drivers/efi/efi-device.c b/drivers/efi/efi-device.c
index a1aac2dd31..ac035dcfac 100644
--- a/drivers/efi/efi-device.c
+++ b/drivers/efi/efi-device.c
@@ -386,16 +386,9 @@ static int efi_is_setup_mode(void)
return ret != 1;
}
-static int is_bio_usbdev(struct efi_device *efidev)
+static bool is_bio_usbdev(struct efi_device *efidev)
{
- int i;
-
- for (i = 0; i < efidev->num_guids; i++) {
- if (!efi_guidcmp(efidev->guids[i], EFI_USB_IO_PROTOCOL_GUID))
- return 1;
- }
-
- return 0;
+ return efi_device_has_guid(efidev, EFI_USB_IO_PROTOCOL_GUID);
}
static struct efi_device *bootdev;
diff --git a/include/efi/efi-device.h b/include/efi/efi-device.h
index 5eaf1f260d..5ec59a8a2d 100644
--- a/include/efi/efi-device.h
+++ b/include/efi/efi-device.h
@@ -45,4 +45,16 @@ int efi_connect_all(void);
void efi_register_devices(void);
struct efi_device *efi_get_bootsource(void);
+static inline bool efi_device_has_guid(struct efi_device *efidev, efi_guid_t guid)
+{
+ int i;
+
+ for (i = 0; i < efidev->num_guids; i++) {
+ if (!efi_guidcmp(efidev->guids[i], guid))
+ return true;
+ }
+
+ return false;
+}
+
#endif /* __EFI_EFI_DEVICE_H */