diff --git a/boot/bootflow.c b/boot/bootflow.c
index 163cd49..0345755 100644
--- a/boot/bootflow.c
+++ b/boot/bootflow.c
@@ -427,7 +427,7 @@
 	return ret;
 }
 
-int bootflow_iter_uses_blk_dev(const struct bootflow_iter *iter)
+int bootflow_iter_check_blk(const struct bootflow_iter *iter)
 {
 	const struct udevice *media = dev_get_parent(iter->dev);
 	enum uclass_id id = device_get_uclass_id(media);
@@ -439,7 +439,7 @@
 	return -ENOTSUPP;
 }
 
-int bootflow_iter_uses_network(const struct bootflow_iter *iter)
+int bootflow_iter_check_net(const struct bootflow_iter *iter)
 {
 	const struct udevice *media = dev_get_parent(iter->dev);
 	enum uclass_id id = device_get_uclass_id(media);
@@ -451,7 +451,7 @@
 	return -ENOTSUPP;
 }
 
-int bootflow_iter_uses_system(const struct bootflow_iter *iter)
+int bootflow_iter_check_system(const struct bootflow_iter *iter)
 {
 	const struct udevice *media = dev_get_parent(iter->dev);
 	enum uclass_id id = device_get_uclass_id(media);
diff --git a/boot/bootmeth_distro.c b/boot/bootmeth_distro.c
index 6ef0fa1..3569298 100644
--- a/boot/bootmeth_distro.c
+++ b/boot/bootmeth_distro.c
@@ -59,7 +59,7 @@
 	int ret;
 
 	/* This only works on block devices */
-	ret = bootflow_iter_uses_blk_dev(iter);
+	ret = bootflow_iter_check_blk(iter);
 	if (ret)
 		return log_msg_ret("blk", ret);
 
diff --git a/boot/bootmeth_efi.c b/boot/bootmeth_efi.c
index d5438eb..f7bb153 100644
--- a/boot/bootmeth_efi.c
+++ b/boot/bootmeth_efi.c
@@ -104,7 +104,7 @@
 	int ret;
 
 	/* This only works on block devices */
-	ret = bootflow_iter_uses_blk_dev(iter);
+	ret = bootflow_iter_check_blk(iter);
 	if (ret)
 		return log_msg_ret("blk", ret);
 
diff --git a/boot/bootmeth_efi_mgr.c b/boot/bootmeth_efi_mgr.c
index 2f327c1..e9d9734 100644
--- a/boot/bootmeth_efi_mgr.c
+++ b/boot/bootmeth_efi_mgr.c
@@ -36,7 +36,7 @@
 	int ret;
 
 	/* Must be an bootstd device */
-	ret = bootflow_iter_uses_system(iter);
+	ret = bootflow_iter_check_system(iter);
 	if (ret)
 		return log_msg_ret("net", ret);
 
diff --git a/boot/bootmeth_pxe.c b/boot/bootmeth_pxe.c
index e699216..13e2ff4 100644
--- a/boot/bootmeth_pxe.c
+++ b/boot/bootmeth_pxe.c
@@ -44,7 +44,7 @@
 	int ret;
 
 	/* This only works on network devices */
-	ret = bootflow_iter_uses_network(iter);
+	ret = bootflow_iter_check_net(iter);
 	if (ret)
 		return log_msg_ret("net", ret);
 
diff --git a/boot/bootmeth_script.c b/boot/bootmeth_script.c
index c7061eb..3a3907d 100644
--- a/boot/bootmeth_script.c
+++ b/boot/bootmeth_script.c
@@ -28,7 +28,7 @@
 	int ret;
 
 	/* This only works on block devices */
-	ret = bootflow_iter_uses_blk_dev(iter);
+	ret = bootflow_iter_check_blk(iter);
 	if (ret)
 		return log_msg_ret("blk", ret);
 
diff --git a/include/bootflow.h b/include/bootflow.h
index 3a93e4b..8ff9e33 100644
--- a/include/bootflow.h
+++ b/include/bootflow.h
@@ -314,33 +314,33 @@
 void bootflow_remove(struct bootflow *bflow);
 
 /**
- * bootflow_iter_uses_blk_dev() - Check that a bootflow uses a block device
+ * bootflow_iter_check_blk() - Check that a bootflow uses a block device
  *
  * This checks the bootdev in the bootflow to make sure it uses a block device
  *
  * Return: 0 if OK, -ENOTSUPP if some other device is used (e.g. ethernet)
  */
-int bootflow_iter_uses_blk_dev(const struct bootflow_iter *iter);
+int bootflow_iter_check_blk(const struct bootflow_iter *iter);
 
 /**
- * bootflow_iter_uses_network() - Check that a bootflow uses a network device
+ * bootflow_iter_check_net() - Check that a bootflow uses a network device
  *
  * This checks the bootdev in the bootflow to make sure it uses a network
  * device
  *
  * Return: 0 if OK, -ENOTSUPP if some other device is used (e.g. MMC)
  */
-int bootflow_iter_uses_network(const struct bootflow_iter *iter);
+int bootflow_iter_check_net(const struct bootflow_iter *iter);
 
 /**
- * bootflow_iter_uses_system() - Check that a bootflow uses the bootstd device
+ * bootflow_iter_check_system() - Check that a bootflow uses the bootstd device
  *
  * This checks the bootdev in the bootflow to make sure it uses the bootstd
  * device
  *
  * Return: 0 if OK, -ENOTSUPP if some other device is used (e.g. MMC)
  */
-int bootflow_iter_uses_system(const struct bootflow_iter *iter);
+int bootflow_iter_check_system(const struct bootflow_iter *iter);
 
 /**
  * bootflow_menu_new() - Create a new bootflow menu
diff --git a/net/eth_bootdev.c b/net/eth_bootdev.c
index fdf48f0..bcbb35a 100644
--- a/net/eth_bootdev.c
+++ b/net/eth_bootdev.c
@@ -27,7 +27,7 @@
 	int ret;
 
 	/* Must be an Ethernet device */
-	ret = bootflow_iter_uses_network(iter);
+	ret = bootflow_iter_check_net(iter);
 	if (ret)
 		return log_msg_ret("net", ret);
 
