projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: expose set of available stdio values
[fw/altos]
/
src
/
ao_stdio.c
diff --git
a/src/ao_stdio.c
b/src/ao_stdio.c
index 7bc416e1cf2a35ccce874033f61bf583e2f93830..3dd457f7c63959d6da9b70363aca0d4db44960e4 100644
(file)
--- a/
src/ao_stdio.c
+++ b/
src/ao_stdio.c
@@
-21,11
+21,11
@@
* Basic I/O functions to support SDCC stdio package
*/
* Basic I/O functions to support SDCC stdio package
*/
-#define AO_NUM_STDIOS
2
+#define AO_NUM_STDIOS
(HAS_USB + PACKET_HAS_SLAVE + USE_SERIAL_STDIN)
static __xdata struct ao_stdio stdios[AO_NUM_STDIOS];
static __xdata struct ao_stdio stdios[AO_NUM_STDIOS];
-
static
__data int8_t ao_cur_stdio;
-
static
__data int8_t ao_num_stdios;
+__data int8_t ao_cur_stdio;
+__data int8_t ao_num_stdios;
void
putchar(char c)
void
putchar(char c)
@@
-38,13
+38,14
@@
putchar(char c)
void
flush(void)
{
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
}
__xdata uint8_t ao_stdin_ready;
char
-getchar(void) __reentrant
+getchar(void) __reentrant
__critical
{
char c;
int8_t stdio = ao_cur_stdio;
{
char c;
int8_t stdio = ao_cur_stdio;
@@
-65,7
+66,7
@@
getchar(void) __reentrant
void
ao_add_stdio(char (*pollchar)(void),
void (*putchar)(char),
void
ao_add_stdio(char (*pollchar)(void),
void (*putchar)(char),
- void (*flush)(void))
+ void (*flush)(void))
__reentrant
{
if (ao_num_stdios == AO_NUM_STDIOS)
ao_panic(AO_PANIC_STDIO);
{
if (ao_num_stdios == AO_NUM_STDIOS)
ao_panic(AO_PANIC_STDIO);