X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fkernel%2Fao_stdio.c;h=c578c57cd920b3bc6ea5e4af4c1af8520cfd8283;hb=d225adc3af9e5726d436cbbdbf8dcc5837e50804;hp=c3b51d123ef1407702200798feaf17c6711c3e02;hpb=0686a7b8aec524d81bda4c572549a3a068ce0eed;p=fw%2Faltos diff --git a/src/kernel/ao_stdio.c b/src/kernel/ao_stdio.c index c3b51d12..c578c57c 100644 --- a/src/kernel/ao_stdio.c +++ b/src/kernel/ao_stdio.c @@ -145,13 +145,13 @@ ao_echo(void) int8_t ao_add_stdio(int (*_pollchar)(void), void (*putchar)(char), - void (*flush)(void)) + void (*_flush)(void)) { if (ao_num_stdios == AO_NUM_STDIOS) ao_panic(AO_PANIC_STDIO); ao_stdios[ao_num_stdios]._pollchar = _pollchar; ao_stdios[ao_num_stdios].putchar = putchar; - ao_stdios[ao_num_stdios].flush = flush; + ao_stdios[ao_num_stdios].flush = _flush; ao_stdios[ao_num_stdios].echo = 1; #if AO_NUM_STDIOS > 1 return ao_num_stdios++; @@ -188,4 +188,20 @@ ao_flushc(FILE *ignore) static FILE __stdio = FDEV_SETUP_STREAM(ao_putc, ao_getc, ao_flushc, _FDEV_SETUP_RW); +#ifdef PICOLIBC_STDIO_GLOBALS + +#ifdef __strong_reference +#define STDIO_ALIAS(x) __strong_reference(stdin, x); +#else +#define STDIO_ALIAS(x) FILE *const x = &__stdio; +#endif + +FILE *const stdin = &__stdio; +STDIO_ALIAS(stdout); +STDIO_ALIAS(stderr); + +#else + FILE *const __iob[3] = { &__stdio, &__stdio, &__stdio }; + +#endif