[newlib-cygwin] Add _REENT_INIT_PTR_ZEROED()

Corinna Vinschen corinna@sourceware.org
Mon Dec 14 14:46:00 GMT 2015


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=f376e4f93b6d8df62590122d33fdf7239a1f86a7

commit f376e4f93b6d8df62590122d33fdf7239a1f86a7
Author: Sebastian Huber <sebastian.huber@embedded-brains.de>
Date:   Mon Dec 14 09:57:54 2015 +0100

    Add _REENT_INIT_PTR_ZEROED()
    
    Provide a _REENT_INIT_PTR_ZEROED() macro to initialize an already
    zero-initialized struct _reent.
    
    	* libc/include/sys/reent.h (_REENT_INIT_PTR_ZEROED): New.
    	(_REENT_INIT_PTR): Define only once and use _REENT_INIT_PTR_ZEROED().

Diff:
---
 newlib/ChangeLog                |  5 +++++
 newlib/libc/include/sys/reent.h | 15 +++++++++------
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 681a573..b1b4585 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,5 +1,10 @@
 2015-12-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
 
+	* libc/include/sys/reent.h (_REENT_INIT_PTR_ZEROED): New.
+	(_REENT_INIT_PTR): Define only once and use _REENT_INIT_PTR_ZEROED().
+
+2015-12-14  Sebastian Huber  <sebastian.huber@embedded-brains.de>
+
 	* libc/include/sys/_sigset.h: New.
 	* libc/include/sys/select.h: Do not include <sys/types.h> and
 	<sys/time.h> to avoid cyclic header file dependencies.  Include
diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index ce5b3ed..5481ca2 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -446,9 +446,8 @@ extern const struct __sFILE_fake __sf_fake_stderr;
     _NULL \
   }
 
-#define _REENT_INIT_PTR(var) \
-  { memset((var), 0, sizeof(*(var))); \
-    (var)->_stdin = (__FILE *)&__sf_fake_stdin; \
+#define _REENT_INIT_PTR_ZEROED(var) \
+  { (var)->_stdin = (__FILE *)&__sf_fake_stdin; \
     (var)->_stdout = (__FILE *)&__sf_fake_stdout; \
     (var)->_stderr = (__FILE *)&__sf_fake_stderr; \
     (var)->_current_locale = "C"; \
@@ -694,9 +693,8 @@ struct _reent
     {_NULL, 0, _NULL} \
   }
 
-#define _REENT_INIT_PTR(var) \
-  { memset((var), 0, sizeof(*(var))); \
-    (var)->_stdin = &(var)->__sf[0]; \
+#define _REENT_INIT_PTR_ZEROED(var) \
+  { (var)->_stdin = &(var)->__sf[0]; \
     (var)->_stdout = &(var)->__sf[1]; \
     (var)->_stderr = &(var)->__sf[2]; \
     (var)->_current_locale = "C"; \
@@ -745,6 +743,11 @@ struct _reent
 
 #endif /* !_REENT_SMALL */
 
+#define _REENT_INIT_PTR(var) \
+  { memset((var), 0, sizeof(*(var))); \
+    _REENT_INIT_PTR_ZEROED(var); \
+  }
+
 /* This value is used in stdlib/misc.c.  reent/reent.c has to know it
    as well to make sure the freelist is correctly free'd.  Therefore
    we define it here, rather than in stdlib/misc.c, as before. */



More information about the Newlib-cvs mailing list