[PATCH] Add _REENT_INIT_PTR_ZEROED()
Corinna Vinschen
vinschen@redhat.com
Mon Dec 14 14:35:00 GMT 2015
On Dec 14 09:57, Sebastian Huber wrote:
> Provide a _REENT_INIT_PTR_ZEROED() macro to initialize an already
> zero-initialized struct _reent.
Why? This might be nice to have, but since this patch is missing
a use-case, we just don't know...
>
> * libc/include/sys/reent.h (_REENT_INIT_PTR_ZEROED): New.
> (_REENT_INIT_PTR): Define only once and use
> _REENT_INIT_PTR_ZEROED().
> ---
> newlib/libc/include/sys/reent.h | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> 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. */
> --
> 1.8.4.5
Thanks,
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20151214/ea595050/attachment.sig>
More information about the Newlib
mailing list