stdio_valid() will confirm that a struct stdio_dev pointer is indeed
valid.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulie...@suse.de>

---

Changes since v1:
 - Properly document function

 common/stdio.c      | 11 +++++++++++
 include/stdio_dev.h | 11 +++++++++++
 2 files changed, 22 insertions(+)

diff --git a/common/stdio.c b/common/stdio.c
index abf9b1e915..69b7d2692d 100644
--- a/common/stdio.c
+++ b/common/stdio.c
@@ -157,6 +157,17 @@ static int stdio_probe_device(const char *name, enum 
uclass_id id,
        return 0;
 }
 
+bool stdio_valid(struct stdio_dev *dev)
+{
+       struct stdio_dev *sdev;
+
+       list_for_each_entry(sdev, &devs.list, list)
+               if (sdev == dev)
+                       return true;
+
+       return false;
+}
+
 struct stdio_dev *stdio_get_by_name(const char *name)
 {
        struct list_head *pos;
diff --git a/include/stdio_dev.h b/include/stdio_dev.h
index 48871a6a22..e9d610a840 100644
--- a/include/stdio_dev.h
+++ b/include/stdio_dev.h
@@ -98,6 +98,17 @@ struct list_head *stdio_get_list(void);
 struct stdio_dev *stdio_get_by_name(const char *name);
 struct stdio_dev *stdio_clone(struct stdio_dev *dev);
 
+/**
+ * stdio_valid() - Validate stdio device exists
+ *
+ * Verifies that dev is contained in the global list of stdio devices.
+ *
+ * @dev: Stdio device pointer
+ *
+ * returns 'true' when valid, 'false' otherwise
+ */
+bool stdio_valid(struct stdio_dev *dev);
+
 int drv_lcd_init(void);
 int drv_video_init(void);
 int drv_keyboard_init(void);
-- 
2.30.0

Reply via email to