diff options
Diffstat (limited to 'newlib/libc/include')
-rw-r--r-- | newlib/libc/include/stdio.h | 9 | ||||
-rw-r--r-- | newlib/libc/include/sys/config.h | 1 | ||||
-rw-r--r-- | newlib/libc/include/sys/custom_file.h | 2 | ||||
-rw-r--r-- | newlib/libc/include/sys/reent.h | 11 |
4 files changed, 20 insertions, 3 deletions
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h index f99480d44..4d3e0c597 100644 --- a/newlib/libc/include/stdio.h +++ b/newlib/libc/include/stdio.h @@ -395,6 +395,7 @@ FILE *_EXFUN(funopen,(const _PTR _cookie, #define fwopen(cookie, fn) funopen(cookie, (int (*)())0, fn, (fpos_t (*)())0, (int (*)())0) #endif +#ifndef __CUSTOM_FILE_IO__ /* * The __sfoo macros are here so that we can * define function versions in the C library. @@ -472,9 +473,6 @@ static __inline int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #endif /* lint */ #endif /* __CYGWIN__ */ -#define getchar() getc(stdin) -#define putchar(x) putc(x, stdout) - #ifndef __STRICT_ANSI__ /* fast always-buffered version, true iff error */ #define fast_putc(x,p) (--(p)->_w < 0 ? \ @@ -486,6 +484,11 @@ static __inline int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) { #endif #endif +#endif /* !__CUSTOM_FILE_IO__ */ + +#define getchar() getc(stdin) +#define putchar(x) putc(x, stdout) + _END_STD_C #endif /* _STDIO_H_ */ diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h index 1f3c3e03d..58305d4a8 100644 --- a/newlib/libc/include/sys/config.h +++ b/newlib/libc/include/sys/config.h @@ -132,6 +132,7 @@ #ifdef __SPU__ #define MALLOC_ALIGNMENT 16 +#define __CUSTOM_FILE_IO__ #endif /* This block should be kept in sync with GCC's limits.h. The point diff --git a/newlib/libc/include/sys/custom_file.h b/newlib/libc/include/sys/custom_file.h new file mode 100644 index 000000000..96314fb91 --- /dev/null +++ b/newlib/libc/include/sys/custom_file.h @@ -0,0 +1,2 @@ +#error System-specific custom_file.h is missing. + diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h index a7d4f968f..93c79ffc7 100644 --- a/newlib/libc/include/sys/reent.h +++ b/newlib/libc/include/sys/reent.h @@ -212,6 +212,12 @@ struct __sFILE { #endif }; +#ifdef __CUSTOM_FILE_IO__ + +/* Get custom _FILE definition. */ +#include <sys/custom_file.h> + +#else /* !__CUSTOM_FILE_IO__ */ #ifdef __LARGE64_FILES struct __sFILE64 { unsigned char *_p; /* current position in (some) buffer */ @@ -260,6 +266,7 @@ typedef struct __sFILE64 __FILE; #else typedef struct __sFILE __FILE; #endif /* __LARGE64_FILES */ +#endif /* !__CUSTOM_FILE_IO__ */ struct _glue { @@ -459,6 +466,10 @@ extern const struct __sFILE_fake __sf_fake_stderr; #define __reent_assert(x) ((void)0) #endif +#ifdef __CUSTOM_FILE_IO__ +#error Custom FILE I/O and _REENT_SMALL not currently supported. +#endif + /* Generic _REENT check macro. */ #define _REENT_CHECK(var, what, type, size, init) do { \ struct _reent *_r = (var); \ |