[PATCH 06/14] Add _REENT_STDERR(ptr)

Sebastian Huber <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
From: Matt Joyce <[email protected]>

Add a _REENT_STDERR() macro to encapsulate access to the _stderr
member of struct reent. This will help to replace the struct
member with a thread-local storage object in a follow up patch.
---
 newlib/libc/include/stdio.h     | 4 ++--
 newlib/libc/include/sys/reent.h | 1 +
 newlib/libc/machine/spu/stdio.c | 4 ++--
 newlib/libc/stdio/findfp.c      | 4 ++--
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h
index 95cc55fa9..c75e48125 100644
--- a/newlib/libc/include/stdio.h
+++ b/newlib/libc/include/stdio.h
@@ -169,11 +169,11 @@ typedef _ssize_t ssize_t;
 
 #define	stdin	_REENT_STDIN(_REENT)
 #define	stdout	_REENT_STDOUT(_REENT)
-#define	stderr	(_REENT->_stderr)
+#define	stderr	_REENT_STDERR(_REENT)
 
 #define _stdin_r(x)	_REENT_STDIN(x)
 #define _stdout_r(x)	_REENT_STDOUT(x)
-#define _stderr_r(x)	((x)->_stderr)
+#define _stderr_r(x)	_REENT_STDERR(x)
 
 /*
  * Functions defined in ANSI C standard.
diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index 652a330cb..c0647cfd9 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -722,6 +722,7 @@ struct _reent
 #define _REENT_ERRNO(_ptr)	((_ptr)->_errno)
 #define _REENT_STDIN(_ptr)	((_ptr)->_stdin)
 #define _REENT_STDOUT(_ptr)	((_ptr)->_stdout)
+#define _REENT_STDERR(_ptr)	((_ptr)->_stderr)
 
 #define _REENT_INIT_PTR(var) \
   { memset((var), 0, sizeof(*(var))); \
diff --git a/newlib/libc/machine/spu/stdio.c b/newlib/libc/machine/spu/stdio.c
index 769b8f1c9..83a60c06b 100644
--- a/newlib/libc/machine/spu/stdio.c
+++ b/newlib/libc/machine/spu/stdio.c
@@ -73,8 +73,8 @@ __sinit (struct _reent *s)
   _REENT_STDOUT(s) = &s->__sf[1];
   _REENT_STDOUT(s)->_fp = SPE_STDOUT;
 
-  s->_stderr = &s->__sf[2];
-  s->_stderr->_fp = SPE_STDERR;
+  _REENT_STDERR(s) = &s->__sf[2];
+  _REENT_STDERR(s)->_fp = SPE_STDERR;
 }
 
 void
diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c
index 04e3517a7..3c888d03c 100644
--- a/newlib/libc/stdio/findfp.c
+++ b/newlib/libc/stdio/findfp.c
@@ -222,8 +222,8 @@ cleanup_stdio (struct _reent *ptr)
     CLEANUP_FILE (ptr, _REENT_STDIN(ptr));
   if (_REENT_STDOUT(ptr) != &__sf[1])
     CLEANUP_FILE (ptr, _REENT_STDOUT(ptr));
-  if (ptr->_stderr != &__sf[2])
-    CLEANUP_FILE (ptr, ptr->_stderr);
+  if (_REENT_STDERR(ptr) != &__sf[2])
+    CLEANUP_FILE (ptr, _REENT_STDERR(ptr));
 }
 
 /*
-- 
2.35.3
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.