aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
m---------lib/picolibc0
-rw-r--r--lib/picolibc-stdio.c18
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/picolibc b/lib/picolibc
-Subproject 80528c684b10aaee977397e7eb40c4784e6dc43
+Subproject f68b8204f797d6b3bfbc7c4da4d257961fbc877
diff --git a/lib/picolibc-stdio.c b/lib/picolibc-stdio.c
new file mode 100644
index 000000000..1d7514ba2
--- /dev/null
+++ b/lib/picolibc-stdio.c
@@ -0,0 +1,18 @@
+// This file is included in the picolibc build.
+// It makes stdio functions available to the C library.
+
+#include <stdio.h>
+#include <sys/cdefs.h>
+
+// Defined in the runtime package. Writes to the default console (usually, the
+// first UART or an USB-CDC device).
+int runtime_putchar(char, FILE*);
+
+// Define stdin, stdout, and stderr as a single object.
+// This object must not reside in ROM.
+static FILE __stdio = FDEV_SETUP_STREAM(runtime_putchar, NULL, NULL, _FDEV_SETUP_WRITE);
+
+// Define the underlying structs for stdin, stdout, and stderr.
+FILE *const stdin = &__stdio;
+__strong_reference(stdin, stdout);
+__strong_reference(stdin, stderr);