[PATCH v2 07/13] libc: mips: SmallCLib `print` headers

Jovan Dmitrovic <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
From: Jaydeep Patil <[email protected]>

---
 newlib/libc/include/ctype.h |  17 ++++
 newlib/libc/include/stdio.h | 178 ++++++++++++++++++++++++++++++++++++
 2 files changed, 195 insertions(+)

diff --git a/newlib/libc/include/ctype.h b/newlib/libc/include/ctype.h
index b29594a45..68e39d271 100644
--- a/newlib/libc/include/ctype.h
+++ b/newlib/libc/include/ctype.h
@@ -178,6 +178,23 @@ __locale_ctype_ptr_l(locale_t _l)
 
 #endif /* !__cplusplus */
 
+#ifdef __mips_clib_tiny
+#undef isalpha
+#undef isupper
+#undef islower
+#undef isdigit
+#undef isxdigit
+#undef isspace
+#undef ispunct
+#undef isalnum
+#undef isprint
+#undef isgraph
+#undef iscntrl
+#undef isblank
+#undef tolower
+#undef toupper
+#endif
+
 _END_STD_C
 
 #endif /* _CTYPE_H_ */
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h
index 77966578d..2c75f8729 100644
--- a/newlib/libc/include/stdio.h
+++ b/newlib/libc/include/stdio.h
@@ -798,6 +798,184 @@ _putchar_unlocked(int _c)
 
 #endif /* !__CUSTOM_FILE_IO__ */
 
+#if ( defined (__mips_clib_small) || defined (__mips_clib_tiny) )
+
+#undef	stdin
+#undef	stdout
+#undef	stderr
+extern FILE *__stdin;
+extern FILE *__stdout;
+extern FILE *__stderr;
+#define	stdin	__stdin
+#define	stdout	__stdout
+#define	stderr	__stderr
+
+#if defined (__mips_fio_float__)
+char * asnprintf_float (char *str, size_t *size, const char *fmt, ...);
+int asprintf_float (char **str, const char *fmt, ...);
+int dprintf_float (int fd, const char *fmt, ...);
+int fprintf_float (FILE *fp, const char *fmt, ...);
+int printf_float (const char *fmt, ...);
+int snprintf_float (char *str, size_t size, const char *fmt, ...);
+int sprintf_float (char *str, const char *fmt, ...);
+char * vasnprintf_float (char *str, size_t *size, const char *fmt, __VALIST ap);
+int vasprintf_float (char **str, const char *fmt, __VALIST ap);
+int vdprintf_float (int fd, const char *fmt, __VALIST ap);
+int vfprintf_float (FILE *fp, const char *fmt, __VALIST ap);
+int vprintf_float (const char *fmt, __VALIST ap);
+int vsnprintf_float (char *str, size_t size, const char *fmt, __VALIST ap);
+int vsprintf_float (char *str, const char *fmt, __VALIST ap);
+
+int fscanf_float (FILE *fp, const char *fmt, ...);
+int scanf_float (const char *fmt, ...);
+int sscanf_float ( const char *str, const char * fmt, ...);
+int vfscanf_float (FILE *fp, const char *fmt, __VALIST ap);
+int vscanf_float (const char *fmt, __VALIST ap);
+int vsscanf_float (const char *str, const char *fmt, __VALIST ap);
+
+#define asnprintf     asnprintf_float
+#define asprintf      asprintf_float
+#define dprintf       dprintf_float
+#define fprintf       fprintf_float
+#define printf        printf_float
+#define snprintf      snprintf_float
+#define sprintf       sprintf_float
+#define vasnprintf    vasnprintf_float
+#define vasprintf     vasprintf_float
+#define vdprintf      vdprintf_float
+#define vfprintf      vfprintf_float
+#define vprintf       vprintf_float
+#define vsnprintf     vsnprintf_float
+#define vsprintf      vsprintf_float
+#define fscanf        fscanf_float
+#define scanf         scanf_float
+#define sscanf        sscanf_float
+#define vfscanf       vfscanf_float
+#define vscanf        vscanf_float
+#define vsscanf       vsscanf_float
+
+#elif defined (__mips_fio_int__)
+
+char * asnprintf_int (char *str, size_t *size, const char *fmt, ...);
+int asprintf_int (char **str, const char *fmt, ...);
+int dprintf_int (int fd, const char *fmt, ...);
+int fprintf_int (FILE *fp, const char *fmt, ...);
+int printf_int (const char *fmt, ...);
+int snprintf_int (char *str, size_t size, const char *fmt, ...);
+int sprintf_int (char *str, const char *fmt, ...);
+char * vasnprintf_int (char *str, size_t *size, const char *fmt, __VALIST ap);
+int vasprintf_int (char **str, const char *fmt, __VALIST ap);
+int vdprintf_int (int fd, const char *fmt, __VALIST ap);
+int vfprintf_int (FILE *fp, const char *fmt, __VALIST ap);
+int vprintf_int (const char *fmt, __VALIST ap);
+int vsnprintf_int (char *str, size_t size, const char *fmt, __VALIST ap);
+int vsprintf_int (char *str, const char *fmt, __VALIST ap);
+
+int fscanf_int (FILE *fp, const char *fmt, ...);
+int scanf_int (const char *fmt, ...);
+int sscanf_int ( const char *str, const char * fmt, ...);
+int vfscanf_int (FILE *fp, const char *fmt, __VALIST ap);
+int vscanf_int (const char *fmt, __VALIST ap);
+int vsscanf_int (const char *str, const char *fmt, __VALIST ap);
+
+#define asnprintf    asnprintf_int
+#define asprintf     asprintf_int
+#define dprintf      dprintf_int
+#define fprintf      fprintf_int
+#define printf       printf_int
+#define snprintf     snprintf_int
+#define sprintf      sprintf_int
+#define vasnprintf   vasnprintf_int
+#define vasprintf    vasprintf_int
+#define vdprintf     vdprintf_int
+#define vfprintf     vfprintf_int
+#define vprintf      vprintf_int
+#define vsnprintf    vsnprintf_int
+#define vsprintf     vsprintf_int
+#define fscanf       fscanf_int
+#define scanf        scanf_int
+#define sscanf       sscanf_int
+#define vfscanf      vfscanf_int
+#define vscanf       vscanf_int
+#define vsscanf      vsscanf_int
+#endif
+
+#if defined (__mips_clib_tiny) && defined (__mips_no_file_io__)
+void clearerr_nofio (FILE * afp);
+int fclose_nofio (FILE *afp);
+int feof_nofio (FILE * afp);
+int ferror_nofio (FILE * afp);
+int fflush_nofio (FILE *afp);
+int fgetc_nofio (FILE * afp);
+int fgetpos_nofio (FILE *fp, _fpos_t *pos);
+char *fgets_nofio (char *buf, int n, FILE *afp);
+FILE * fopen_nofio (const char *fname, const char *mode);
+int fputc_nofio (int c, FILE * afp);
+int fputs_nofio (char const *s, FILE *fp);
+size_t fread_nofio (void * buf, size_t size, size_t count, FILE * afp);
+FILE *freopen_nofio (const char *file, const char *mode, FILE *afp);
+int fseek_nofio (register FILE *fp, long offset, int whence);
+int fsetpos_nofio (FILE *fp, const _fpos_t *pos);
+long ftell_nofio (FILE *fp);
+size_t fwrite_nofio (const void * abuf, size_t size, size_t count, FILE * afp);
+int getc_nofio (FILE *fp);
+int getchar_nofio (void);
+char * gets_nofio (char *buf);
+int putc_nofio (int c, FILE *fp);
+int putchar_nofio (int c);
+int puts_nofio (const char *s);
+int remove_nofio (const char *filename);
+void rewind_nofio (FILE * fp);
+void setbuf_nofio (FILE *fp, char *buf);
+int setvbuf_nofio (FILE *afp, char *buf, int mode, size_t size);
+FILE * tmpfile_nofio (void);
+char *tmpnam_nofio (char *s);
+int ungetc_nofio (int c, FILE *afp);
+void perror_nofio (const char *s);
+
+#define clearerr	clearerr_nofio
+#define fclose		fclose_nofio
+#define feof		feof_nofio
+#define ferror		ferror_nofio
+#define fflush		fflush_nofio
+#define fgetc		fgetc_nofio
+#define fgetpos		fgetpos_nofio
+#define fgets		fgets_nofio
+#define fopen		fopen_nofio
+#define fputc		fputc_nofio
+#define fputs		fputs_nofio
+#define fread		fread_nofio
+#define freopen		freopen_nofio
+#define fseek		fseek_nofio
+#define fsetpos		fsetpos_nofio
+#define ftell		ftell_nofio
+#define fwrite		fwrite_nofio
+#define getc		getc_nofio
+#define getchar		getchar_nofio
+#define gets		gets_nofio
+#define putc		putc_nofio
+#define putchar		putchar_nofio
+#define puts		puts_nofio
+#define remove		remove_nofio
+#define rewind		rewind_nofio
+#define setbuf		setbuf_nofio
+#define setvbuf		setvbuf_nofio
+#define tmpfile		tmpfile_nofio
+#define tmpnam		tmpnam_nofio
+#define ungetc  ungetc_nofio
+#define perror  perror_nofio
+#endif
+
+#undef	getc
+#undef	putc
+#undef	getchar
+#undef	putchar
+#undef	feof
+#undef	ferror
+#undef	clearerr
+
+#endif
+
 _END_STD_C
 
 #if __SSP_FORTIFY_LEVEL > 0
-- 
2.34.1
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.