diff --git a/components/libc/compilers/armlibc/libc.h b/components/libc/compilers/armlibc/libc.h index aef0324018cdb8563512a0351399653f1e5c7829..e57897f0a8ba1498b871a38a00a1101763017af2 100644 --- a/components/libc/compilers/armlibc/libc.h +++ b/components/libc/compilers/armlibc/libc.h @@ -31,6 +31,7 @@ int libc_system_init(void); int libc_stdio_set_console(const char* device_name, int mode); +int libc_stdio_get_console(void); int libc_stdio_read (void *buffer, size_t size); int libc_stdio_write(const void *buffer, size_t size); diff --git a/components/libc/compilers/armlibc/stdio.c b/components/libc/compilers/armlibc/stdio.c index cba51beb186e6b2d58c525e16b1db7fa005b3bb2..d1ac9765686d67508d099455489be2d9d6035d72 100644 --- a/components/libc/compilers/armlibc/stdio.c +++ b/components/libc/compilers/armlibc/stdio.c @@ -58,6 +58,11 @@ int libc_stdio_set_console(const char* device_name, int mode) return std_fd; } +int libc_stdio_get_console(void) +{ + return std_fd; +} + int libc_stdio_read(void *buffer, size_t size) { return read(std_fd, buffer, size); diff --git a/components/libc/compilers/dlib/libc.h b/components/libc/compilers/dlib/libc.h index db571d2ee157e0e5bc38ab0ba0bdf250087864c9..d0a081d538a184f4f886f2e2629499013f269b60 100644 --- a/components/libc/compilers/dlib/libc.h +++ b/components/libc/compilers/dlib/libc.h @@ -32,6 +32,7 @@ int libc_system_init(void); int libc_stdio_set_console(const char* device_name, int mode); +int libc_stdio_get_console(void); int libc_stdio_read (void *buffer, size_t size); int libc_stdio_write(const void *buffer, size_t size); diff --git a/components/libc/compilers/dlib/stdio.c b/components/libc/compilers/dlib/stdio.c index 24e421f2b30f78d93e176a3b5e28800f3cd9f6be..12c1081d8bc8ee4b06e54fca630cddb36c66c198 100644 --- a/components/libc/compilers/dlib/stdio.c +++ b/components/libc/compilers/dlib/stdio.c @@ -58,6 +58,10 @@ int libc_stdio_set_console(const char* device_name, int mode) return std_fd; } +int libc_stdio_get_console(void) { + return std_fd; +} + int libc_stdio_read(void *buffer, size_t size) { return read(std_fd, buffer, size); diff --git a/components/libc/compilers/newlib/libc.h b/components/libc/compilers/newlib/libc.h index 7cab52a11f858c711c0522102286203e0ae15332..d077de96560cca9be6217aa8e0d6934eef9887bc 100644 --- a/components/libc/compilers/newlib/libc.h +++ b/components/libc/compilers/newlib/libc.h @@ -38,6 +38,7 @@ int libc_system_init(void); int libc_stdio_set_console(const char* device_name, int mode); +int libc_stdio_get_console(void); /* some time related function */ int libc_set_time(const struct timespec *time); diff --git a/components/libc/compilers/newlib/stdio.c b/components/libc/compilers/newlib/stdio.c index 276e68050c273483facf4f1393ed0fd652cd2d23..f28383818d771dd386fbedf8febe7be4c37a6348 100644 --- a/components/libc/compilers/newlib/stdio.c +++ b/components/libc/compilers/newlib/stdio.c @@ -83,3 +83,10 @@ int libc_stdio_set_console(const char* device_name, int mode) return fileno(std_console); } + +int libc_stdio_get_console(void) { + if (std_console) + return fileno(std_console); + else + return -1; +}