aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc/include
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2013-10-23 10:04:43 +0000
committerCorinna Vinschen <corinna@vinschen.de>2013-10-23 10:04:43 +0000
commit0c3d8e5ab5f177ae080bf7afa2cbdc5ebcc9f401 (patch)
tree4a947f48e5edc605a8b04cc9c9033e010a665448 /newlib/libc/include
parent27f8495dd59a4d5827040ab599ef457ee9e21af6 (diff)
downloadnewlib-0c3d8e5ab5f177ae080bf7afa2cbdc5ebcc9f401.zip
newlib-0c3d8e5ab5f177ae080bf7afa2cbdc5ebcc9f401.tar.gz
newlib-0c3d8e5ab5f177ae080bf7afa2cbdc5ebcc9f401.tar.bz2
* libc/include/stdio.h (funopen): Change prototype of
__readfn and __writefn parameter to match new definition of FILE's _read and _write methods. (_funopen_r): Ditto. (funopen): Ditto. (_funopen_r): Ditto. * libc/include/sys/config.h (_READ_WRITE_BUFSIZE_TYPE) Define as type int if not already defined. Add comment to explain. * libc/include/sys/reent.h: Include stddef.h. (struct __sFILE): Change type of last parameter in declaration of _read and _write methods to _READ_WRITE_BUFSIZE_TYPE. (struct __sFILE64): Ditto. * libc/stdio/local.h (__sread): Declare with last parameter set to _READ_WRITE_BUFSIZE_TYPE. (__seofread): Ditto. (__swrite): Ditto. (__swrite64): Ditto. * libc/stdio/fvwrite.c (__sfvwrite_r): Change type of local variables w and s to _READ_WRITE_RETURN_TYPE. * libc/stdio/fflush.c (__sflush_r): Change type of local variables n and t to _READ_WRITE_BUFSIZE_TYPE and _READ_WRITE_RETURN_TYPE. Add local variables flags to keep _flags value. * libc/stdio/fmemopen.c (fmemreader): Align to above change. (fmemwriter): Ditto. * libc/stdio/fopencookie.c (fcreader): Ditto. (fcwriter): Ditto. * libc/stdio/funopen.c (funread): Ditto. (funwrite): Ditto. (funreader): Ditto. (funwriter): Ditto. * libc/stdio/open_memstream.c (memwriter): Ditto. * libc/stdio/stdio.c (__sread): Ditto. (__seofread): Ditto. (__swrite): Ditto. * libc/stdio64/stdio64.c (__swrite64): Ditto.
Diffstat (limited to 'newlib/libc/include')
-rw-r--r--newlib/libc/include/stdio.h24
-rw-r--r--newlib/libc/include/sys/config.h6
-rw-r--r--newlib/libc/include/sys/reent.h11
3 files changed, 29 insertions, 12 deletions
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h
index 504e671..20064d1 100644
--- a/newlib/libc/include/stdio.h
+++ b/newlib/libc/include/stdio.h
@@ -516,24 +516,32 @@ int _EXFUN(__swbuf_r, (struct _reent *, int, FILE *));
#ifndef __STRICT_ANSI__
# ifdef __LARGE64_FILES
FILE *_EXFUN(funopen,(const _PTR __cookie,
- int (*__readfn)(_PTR __c, char *__buf, int __n),
- int (*__writefn)(_PTR __c, const char *__buf, int __n),
+ int (*__readfn)(_PTR __c, char *__buf,
+ _READ_WRITE_BUFSIZE_TYPE __n),
+ int (*__writefn)(_PTR __c, const char *__buf,
+ _READ_WRITE_BUFSIZE_TYPE __n),
_fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence),
int (*__closefn)(_PTR __c)));
FILE *_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie,
- int (*__readfn)(_PTR __c, char *__buf, int __n),
- int (*__writefn)(_PTR __c, const char *__buf, int __n),
+ int (*__readfn)(_PTR __c, char *__buf,
+ _READ_WRITE_BUFSIZE_TYPE __n),
+ int (*__writefn)(_PTR __c, const char *__buf,
+ _READ_WRITE_BUFSIZE_TYPE __n),
_fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence),
int (*__closefn)(_PTR __c)));
# else
FILE *_EXFUN(funopen,(const _PTR __cookie,
- int (*__readfn)(_PTR __cookie, char *__buf, int __n),
- int (*__writefn)(_PTR __cookie, const char *__buf, int __n),
+ int (*__readfn)(_PTR __cookie, char *__buf,
+ _READ_WRITE_BUFSIZE_TYPE __n),
+ int (*__writefn)(_PTR __cookie, const char *__buf
+ _READ_WRITE_BUFSIZE_TYPE __n),
fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence),
int (*__closefn)(_PTR __cookie)));
FILE *_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie,
- int (*__readfn)(_PTR __cookie, char *__buf, int __n),
- int (*__writefn)(_PTR __cookie, const char *__buf, int __n),
+ int (*__readfn)(_PTR __cookie, char *__buf,
+ _READ_WRITE_BUFSIZE_TYPE __n),
+ int (*__writefn)(_PTR __cookie, const char *__buf,
+ _READ_WRITE_BUFSIZE_TYPE __n),
fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence),
int (*__closefn)(_PTR __cookie)));
# endif /* !__LARGE64_FILES */
diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h
index c726e14..0de3ffb 100644
--- a/newlib/libc/include/sys/config.h
+++ b/newlib/libc/include/sys/config.h
@@ -250,6 +250,12 @@
#ifndef _READ_WRITE_RETURN_TYPE
#define _READ_WRITE_RETURN_TYPE int
#endif
+/* Define `count' parameter of read/write routines. In POSIX, the `count'
+ parameter is "size_t" but legacy newlib code has been using "int" for some
+ time. If not specified, "int" is defaulted. */
+#ifndef _READ_WRITE_BUFSIZE_TYPE
+#define _READ_WRITE_BUFSIZE_TYPE int
+#endif
#ifndef __WCHAR_MAX__
#if __INT_MAX__ == 32767 || defined (_WIN32)
diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index c8ef630..ce5b3ed 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -11,6 +11,7 @@ extern "C" {
#define _SYS_REENT_H_
#include <_ansi.h>
+#include <stddef.h>
#include <sys/_types.h>
#define _NULL 0
@@ -192,9 +193,10 @@ struct __sFILE {
_PTR _cookie; /* cookie passed to io functions */
_READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
- char *, int));
+ char *, _READ_WRITE_BUFSIZE_TYPE));
_READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
- const char *, int));
+ const char *,
+ _READ_WRITE_BUFSIZE_TYPE));
_fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
int _EXFNPTR(_close, (struct _reent *, _PTR));
@@ -247,9 +249,10 @@ struct __sFILE64 {
_PTR _cookie; /* cookie passed to io functions */
_READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
- char *, int));
+ char *, _READ_WRITE_BUFSIZE_TYPE));
_READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
- const char *, int));
+ const char *,
+ _READ_WRITE_BUFSIZE_TYPE));
_fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
int _EXFNPTR(_close, (struct _reent *, _PTR));