default features: make musl usable without feature test macros
[musl] / src / internal / pthread_impl.h
index d67edf2..56b92b2 100644 (file)
@@ -28,13 +28,12 @@ struct pthread {
        pid_t tid, pid;
        int tsd_used, errno_val, *errno_ptr;
        volatile int cancel, canceldisable, cancelasync;
+       int detached;
        unsigned char *map_base;
        size_t map_size;
        void *start_arg;
        void *(*start)(void *);
        void *result;
-       int detached;
-       int exitlock;
        struct __ptcb *cancelbuf;
        void **tsd;
        pthread_attr_t attr;
@@ -47,7 +46,8 @@ struct pthread {
        int unblock_cancel;
        int delete_timer;
        locale_t locale;
-       int killlock;
+       int killlock[2];
+       int exitlock[2];
 };
 
 struct __timer {
@@ -59,7 +59,8 @@ struct __timer {
 
 #define _a_stacksize __u.__s[0]
 #define _a_guardsize __u.__s[1]
-#define _a_detach __u.__i[2*__SU+0]
+#define _a_stackaddr __u.__s[2]
+#define _a_detach __u.__i[3*__SU+0]
 #define _m_type __u.__i[0]
 #define _m_lock __u.__i[1]
 #define _m_waiters __u.__i[2]
@@ -89,9 +90,12 @@ struct __timer {
 #define SIGCANCEL 33
 #define SIGSYNCCALL 34
 
-#define SIGPT_SET ((sigset_t *)(unsigned long [1+(sizeof(long)==4)]){ \
+#define SIGALL_SET ((sigset_t *)(const unsigned long long [2]){ -1,-1 })
+#define SIGPT_SET \
+       ((sigset_t *)(const unsigned long [__SYSCALL_SSLEN/sizeof(long)]){ \
        [sizeof(long)==4] = 3UL<<(32*(sizeof(long)>4)) })
-#define SIGTIMER_SET ((sigset_t *)(unsigned long [1+(sizeof(long)==4)]){ \
+#define SIGTIMER_SET \
+       ((sigset_t *)(const unsigned long [__SYSCALL_SSLEN/sizeof(long)]){ \
         0x80000000 })
 
 pthread_t __pthread_self_init(void);