[PATCH 07/14] Add _REENT_INC(ptr)

Sebastian Huber sebastian.huber@embedded-brains.de
Tue Jun 21 12:49:24 GMT 2022


From: Matt Joyce <matthew.joyce@embedded-brains.de>

Add a _REENT_INC() macro to encapsulate access to the _inc 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/sys/reent.h | 1 +
 newlib/libc/stdio/tmpnam.c      | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index c0647cfd9..2c1593a5f 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -720,6 +720,7 @@ struct _reent
 
 #define _REENT_EMERGENCY(_ptr)	((_ptr)->_emergency)
 #define _REENT_ERRNO(_ptr)	((_ptr)->_errno)
+#define _REENT_INC(_ptr)	((_ptr)->_inc)
 #define _REENT_STDIN(_ptr)	((_ptr)->_stdin)
 #define _REENT_STDOUT(_ptr)	((_ptr)->_stdout)
 #define _REENT_STDERR(_ptr)	((_ptr)->_stderr)
diff --git a/newlib/libc/stdio/tmpnam.c b/newlib/libc/stdio/tmpnam.c
index 7379a7640..2767b4b20 100644
--- a/newlib/libc/stdio/tmpnam.c
+++ b/newlib/libc/stdio/tmpnam.c
@@ -135,9 +135,9 @@ _tmpnam_r (struct _reent *p,
     }
   pid = _getpid_r (p);
 
-  if (worker (p, result, P_tmpdir, "t", pid, &p->_inc))
+  if (worker (p, result, P_tmpdir, "t", pid, &_REENT_INC(p)))
     {
-      p->_inc++;
+      _REENT_INC(p)++;
       return result;
     }
 
@@ -162,7 +162,7 @@ _tempnam_r (struct _reent *p,
   if (filename)
     {
       if (! worker (p, filename, dir, prefix,
-		    _getpid_r (p) ^ (int) (_POINTER_INT) p, &p->_inc))
+		    _getpid_r (p) ^ (int) (_POINTER_INT) p, &_REENT_INC(p)))
 	return NULL;
     }
   return filename;
-- 
2.35.3



More information about the Newlib mailing list