altos: Remove spurious ao_mma655x_spi_index variable
[fw/altos] / src / kernel / ao_stdio.c
index 9911813778698fadb89b1e40ec69ee6f91676f89..dc09b5c772cb37fab569824f25dbe9e602cce8bb 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -54,6 +55,9 @@
 #ifndef PACKET_HAS_SLAVE
 #define PACKET_HAS_SLAVE       0
 #endif
+#ifndef CONSOLE_STDIN
+#define CONSOLE_STDIN          0
+#endif
 
 #define USE_SERIAL_STDIN (USE_SERIAL_0_STDIN + \
                          USE_SERIAL_1_STDIN +  \
@@ -66,7 +70,7 @@
                          USE_SERIAL_8_STDIN +  \
                          USE_SERIAL_9_STDIN)
 
-#define AO_NUM_STDIOS  (HAS_USB + PACKET_HAS_SLAVE + USE_SERIAL_STDIN)
+#define AO_NUM_STDIOS  (HAS_USB + PACKET_HAS_SLAVE + USE_SERIAL_STDIN + CONSOLE_STDIN)
 
 __xdata struct ao_stdio ao_stdios[AO_NUM_STDIOS];
 
@@ -80,7 +84,7 @@ __pdata int8_t ao_cur_stdio;
 #endif
 
 void
-putchar(char c)
+ao_putchar(char c)
 {
 #if LOW_LEVEL_DEBUG
        if (!ao_cur_task) {
@@ -106,7 +110,7 @@ flush(void)
 __xdata uint8_t ao_stdin_ready;
 
 char
-getchar(void) __reentrant
+ao_getchar(void) __reentrant
 {
        int c;
        int8_t stdio;
@@ -142,10 +146,8 @@ ao_add_stdio(int (*_pollchar)(void),
             void (*putchar)(char),
             void (*flush)(void)) __reentrant
 {
-#if AO_NUM_STDIOS > 1
        if (ao_num_stdios == AO_NUM_STDIOS)
                ao_panic(AO_PANIC_STDIO);
-#endif
        ao_stdios[ao_num_stdios]._pollchar = _pollchar;
        ao_stdios[ao_num_stdios].putchar = putchar;
        ao_stdios[ao_num_stdios].flush = flush;