summaryrefslogtreecommitdiff
path: root/src/kernel/ao_stdio.c
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2018-08-05 12:23:22 +0800
committerKeith Packard <keithp@keithp.com>2018-10-13 08:21:58 -0700
commit7c04888cf9809e0c73f0813c74e8dd972facde3a (patch)
treeebb43ee5aa61cc65ce28595c19b4dd3c19812ead /src/kernel/ao_stdio.c
parent56629222711ba3ef7853405c9b07ad614fb29b95 (diff)
altos: Switch to newlib-nano for libc on arm
Stop using pdclib Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/kernel/ao_stdio.c')
-rw-r--r--src/kernel/ao_stdio.c35
1 files changed, 33 insertions, 2 deletions
diff --git a/src/kernel/ao_stdio.c b/src/kernel/ao_stdio.c
index dc09b5c7..227499c8 100644
--- a/src/kernel/ao_stdio.c
+++ b/src/kernel/ao_stdio.c
@@ -83,7 +83,7 @@ __pdata int8_t ao_cur_stdio;
#define ao_num_stdios 0
#endif
-void
+int
ao_putchar(char c)
{
#if LOW_LEVEL_DEBUG
@@ -92,12 +92,13 @@ ao_putchar(char c)
if (c == '\n')
ao_debug_out('\r');
ao_debug_out(c);
- return;
+ return 0;
}
#endif
if (c == '\n')
(*ao_stdios[ao_cur_stdio].putchar)('\r');
(*ao_stdios[ao_cur_stdio].putchar)(c);
+ return 0;
}
void
@@ -158,3 +159,33 @@ ao_add_stdio(int (*_pollchar)(void),
return 0;
#endif
}
+
+/*
+ * Basic I/O functions to support newlib tinystdio package
+ */
+
+static int
+ao_putc(char c, FILE *ignore)
+{
+ (void) ignore;
+ return ao_putchar(c);
+}
+
+static int
+ao_getc(FILE *ignore)
+{
+ (void) ignore;
+ return ao_getchar();
+}
+
+static int
+ao_flushc(FILE *ignore)
+{
+ (void) ignore;
+ flush();
+ return 0;
+}
+
+static FILE __stdio = FDEV_SETUP_STREAM(ao_putc, ao_getc, ao_flushc, _FDEV_SETUP_RW);
+
+FILE *const __iob[3] = { &__stdio, &__stdio, &__stdio };