@@ -33,6 +33,7 @@
#if defined(CONFIG_HARD_I2C) || defined(CONFIG_SOFT_I2C)
#include <i2c.h>
#endif
+#include <errno.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -122,6 +123,31 @@ struct stdio_dev* stdio_get_by_name(const char *name)
return NULL;
}
+struct stdio_dev *stdio_get_fd(int ioe)
+{
+ switch (ioe) {
+ case stdin:
+ case stdout:
+ case stderr:
+ return stdio_devices[ioe];
+ default:
+ return NULL;
+ }
+}
+
+int stdio_set_fd(int ioe, struct stdio_dev *dev)
+{
+ switch (ioe) {
+ case stdin:
+ case stdout:
+ case stderr:
+ stdio_devices[ioe] = dev;
+ return 0;
+ default:
+ return -EINVAL;
+ }
+}
+
struct stdio_dev* stdio_clone(struct stdio_dev *dev)
{
struct stdio_dev *_dev;
@@ -97,6 +97,8 @@ int stdio_deregister(const char *devname);
#endif
struct list_head* stdio_get_list(void);
struct stdio_dev* stdio_get_by_name(const char* name);
+struct stdio_dev *stdio_get_fd(int ioe);
+int stdio_set_fd(int ioe, struct stdio_dev *dev);
struct stdio_dev* stdio_clone(struct stdio_dev *dev);
#ifdef CONFIG_ARM_DCC_MULTI
Implement stdio_get_fd() and stdio_set_fd() calls to access currently assigned STDIO devices. This will in turn allow to make the stdio_devices[] local to stdio.c Signed-off-by: Marek Vasut <marex@denx.de> Cc: Wolfgang Denk <wd@denx.de> --- common/stdio.c | 26 ++++++++++++++++++++++++++ include/stdio_dev.h | 2 ++ 2 files changed, 28 insertions(+)