diff options
author | Matt Joyce <matthew.joyce@embedded-brains.de> | 2022-01-18 10:13:04 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2022-07-13 06:55:41 +0200 |
commit | f3b8138239d3ba34c4ecaa4305b0fbd7eb4e28a5 (patch) | |
tree | 80cc7a629134d4568bf5dc71898266555a6863b0 /newlib/libc/stdio/funopen.c | |
parent | d0d78e96ebf4187fb9362465f1a397680447046f (diff) | |
download | newlib-f3b8138239d3ba34c4ecaa4305b0fbd7eb4e28a5.zip newlib-f3b8138239d3ba34c4ecaa4305b0fbd7eb4e28a5.tar.gz newlib-f3b8138239d3ba34c4ecaa4305b0fbd7eb4e28a5.tar.bz2 |
Add _REENT_ERRNO(ptr)
Add a _REENT_ERRNO() macro to encapsulate the access to the
_errno member of struct reent. This will help to replace the
structure member with a thread-local storage object in a follow
up patch.
Replace uses of __errno_r() with _REENT_ERRNO(). Keep __errno_r() macro for
potential users outside of Newlib.
Diffstat (limited to 'newlib/libc/stdio/funopen.c')
-rw-r--r-- | newlib/libc/stdio/funopen.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/newlib/libc/stdio/funopen.c b/newlib/libc/stdio/funopen.c index a1c0d76..4ed5019 100644 --- a/newlib/libc/stdio/funopen.c +++ b/newlib/libc/stdio/funopen.c @@ -113,7 +113,7 @@ funreader (struct _reent *ptr, funcookie *c = (funcookie *) cookie; errno = 0; if ((result = c->readfn (c->cookie, buf, n)) < 0 && errno) - ptr->_errno = errno; + _REENT_ERRNO(ptr) = errno; return result; } @@ -127,7 +127,7 @@ funwriter (struct _reent *ptr, funcookie *c = (funcookie *) cookie; errno = 0; if ((result = c->writefn (c->cookie, buf, n)) < 0 && errno) - ptr->_errno = errno; + _REENT_ERRNO(ptr) = errno; return result; } @@ -142,15 +142,15 @@ funseeker (struct _reent *ptr, fpos_t result; errno = 0; if ((result = c->seekfn (c->cookie, (fpos_t) off, whence)) < 0 && errno) - ptr->_errno = errno; + _REENT_ERRNO(ptr) = errno; #else /* __LARGE64_FILES */ _fpos64_t result; errno = 0; if ((result = c->seekfn (c->cookie, (_fpos64_t) off, whence)) < 0 && errno) - ptr->_errno = errno; + _REENT_ERRNO(ptr) = errno; else if ((_fpos_t)result != result) { - ptr->_errno = EOVERFLOW; + _REENT_ERRNO(ptr) = EOVERFLOW; result = -1; } #endif /* __LARGE64_FILES */ @@ -168,7 +168,7 @@ funseeker64 (struct _reent *ptr, funcookie *c = (funcookie *) cookie; errno = 0; if ((result = c->seekfn (c->cookie, off, whence)) < 0 && errno) - ptr->_errno = errno; + _REENT_ERRNO(ptr) = errno; return result; } #endif /* __LARGE64_FILES */ @@ -183,7 +183,7 @@ funcloser (struct _reent *ptr, { errno = 0; if ((result = c->closefn (c->cookie)) < 0 && errno) - ptr->_errno = errno; + _REENT_ERRNO(ptr) = errno; } _free_r (ptr, c); return result; @@ -202,7 +202,7 @@ _funopen_r (struct _reent *ptr, if (!readfn && !writefn) { - ptr->_errno = EINVAL; + _REENT_ERRNO(ptr) = EINVAL; return NULL; } if ((fp = __sfp (ptr)) == NULL) |