[05/10] nptl: Move nptl-specific types to separate header
Commit Message
---
nptl/call_once.c | 2 +-
sysdeps/nptl/bits/thread-shared-types.h | 10 ++++++++++
sysdeps/nptl/threads.h | 13 +++++--------
3 files changed, 16 insertions(+), 9 deletions(-)
Comments
LGTM, thanks.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
On 14/01/2020 15:52, Samuel Thibault wrote:
> ---
> nptl/call_once.c | 2 +-
> sysdeps/nptl/bits/thread-shared-types.h | 10 ++++++++++
> sysdeps/nptl/threads.h | 13 +++++--------
> 3 files changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/nptl/call_once.c b/nptl/call_once.c
> index 3f880a9073..25e2964c76 100644
> --- a/nptl/call_once.c
> +++ b/nptl/call_once.c
> @@ -27,5 +27,5 @@ call_once (once_flag *flag, void (*func)(void))
> "sizeof (once_flag) != sizeof (pthread_once_t)");
> _Static_assert (alignof (once_flag) == alignof (pthread_once_t),
> "alignof (once_flag) != alignof (pthread_once_t)");
> - __pthread_once (&flag->__data, func);
> + __pthread_once ((pthread_once_t *) flag, func);
> }
Ok.
> diff --git a/sysdeps/nptl/bits/thread-shared-types.h b/sysdeps/nptl/bits/thread-shared-types.h
> index fd08b6916a..fbbdd0bb36 100644
> --- a/sysdeps/nptl/bits/thread-shared-types.h
> +++ b/sysdeps/nptl/bits/thread-shared-types.h
> @@ -116,4 +116,14 @@ struct __pthread_cond_s
> unsigned int __g_signals[2];
> };
>
> +typedef unsigned int __tss_t;
> +typedef unsigned long int __thrd_t;
> +
> +typedef struct
> +{
> + int __data __ONCE_ALIGNMENT;
> +} __once_flag;
> +
> +#define __ONCE_FLAG_INIT { 0 }
> +
> #endif /* _THREAD_SHARED_TYPES_H */
Ok.
> diff --git a/sysdeps/nptl/threads.h b/sysdeps/nptl/threads.h
> index 6d5e4bfe02..0ac489b4a1 100644
> --- a/sysdeps/nptl/threads.h
> +++ b/sysdeps/nptl/threads.h
> @@ -24,7 +24,7 @@
>
> __BEGIN_DECLS
>
> -#include <bits/pthreadtypes-arch.h>
> +#include <bits/thread-shared-types.h>
> #include <bits/types/struct_timespec.h>
>
> #ifndef __cplusplus
Ok, thread-shared-types.h includes pthreadtypes-arch.h.
> @@ -32,10 +32,10 @@ __BEGIN_DECLS
> #endif
>
> #define TSS_DTOR_ITERATIONS 4
> -typedef unsigned int tss_t;
> +typedef __tss_t tss_t;
> typedef void (*tss_dtor_t) (void*);
>
> -typedef unsigned long int thrd_t;
> +typedef __thrd_t thrd_t;
> typedef int (*thrd_start_t) (void*);
>
> /* Exit and error codes. */
> @@ -56,11 +56,8 @@ enum
> mtx_timed = 2
> };
>
> -typedef struct
> -{
> - int __data __ONCE_ALIGNMENT;
> -} once_flag;
> -#define ONCE_FLAG_INIT { 0 }
> +typedef __once_flag once_flag;
> +#define ONCE_FLAG_INIT __ONCE_FLAG_INIT
>
> typedef union
> {
>
Ok.
@@ -27,5 +27,5 @@ call_once (once_flag *flag, void (*func)(void))
"sizeof (once_flag) != sizeof (pthread_once_t)");
_Static_assert (alignof (once_flag) == alignof (pthread_once_t),
"alignof (once_flag) != alignof (pthread_once_t)");
- __pthread_once (&flag->__data, func);
+ __pthread_once ((pthread_once_t *) flag, func);
}
@@ -116,4 +116,14 @@ struct __pthread_cond_s
unsigned int __g_signals[2];
};
+typedef unsigned int __tss_t;
+typedef unsigned long int __thrd_t;
+
+typedef struct
+{
+ int __data __ONCE_ALIGNMENT;
+} __once_flag;
+
+#define __ONCE_FLAG_INIT { 0 }
+
#endif /* _THREAD_SHARED_TYPES_H */
@@ -24,7 +24,7 @@
__BEGIN_DECLS
-#include <bits/pthreadtypes-arch.h>
+#include <bits/thread-shared-types.h>
#include <bits/types/struct_timespec.h>
#ifndef __cplusplus
@@ -32,10 +32,10 @@ __BEGIN_DECLS
#endif
#define TSS_DTOR_ITERATIONS 4
-typedef unsigned int tss_t;
+typedef __tss_t tss_t;
typedef void (*tss_dtor_t) (void*);
-typedef unsigned long int thrd_t;
+typedef __thrd_t thrd_t;
typedef int (*thrd_start_t) (void*);
/* Exit and error codes. */
@@ -56,11 +56,8 @@ enum
mtx_timed = 2
};
-typedef struct
-{
- int __data __ONCE_ALIGNMENT;
-} once_flag;
-#define ONCE_FLAG_INIT { 0 }
+typedef __once_flag once_flag;
+#define ONCE_FLAG_INIT __ONCE_FLAG_INIT
typedef union
{