Fix all stdio reading functions to be __critical
[fw/altos] / src / ao_stdio.c
index 7bc416e1cf2a35ccce874033f61bf583e2f93830..78bbd3c3dab3e3d52d0731be50827e983c642dcb 100644 (file)
@@ -38,13 +38,14 @@ putchar(char c)
 void
 flush(void)
 {
-       stdios[ao_cur_stdio].flush();
+       if (stdios[ao_cur_stdio].flush)
+               stdios[ao_cur_stdio].flush();
 }
 
 __xdata uint8_t ao_stdin_ready;
 
 char
-getchar(void) __reentrant
+getchar(void) __reentrant __critical
 {
        char c;
        int8_t stdio = ao_cur_stdio;