make pthread attribute types structs, even when they just have one field
authorRich Felker <dalias@aerifal.cx>
Mon, 22 Jul 2013 17:57:02 +0000 (13:57 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 22 Jul 2013 17:57:02 +0000 (13:57 -0400)
this change is to get the right tags for C++ ABI matching. it should
have no other effects.

12 files changed:
include/alltypes.h.in
src/thread/pthread_attr_get.c
src/thread/pthread_barrier_init.c
src/thread/pthread_barrierattr_setpshared.c
src/thread/pthread_cond_init.c
src/thread/pthread_condattr_setclock.c
src/thread/pthread_condattr_setpshared.c
src/thread/pthread_mutex_init.c
src/thread/pthread_mutexattr_setpshared.c
src/thread/pthread_mutexattr_setrobust.c
src/thread/pthread_mutexattr_settype.c
src/thread/pthread_rwlockattr_setpshared.c

index b245436..cdd42ef 100644 (file)
@@ -48,9 +48,9 @@ TYPEDEF struct __pthread * pthread_t;
 TYPEDEF int pthread_once_t;
 TYPEDEF int pthread_key_t;
 TYPEDEF int pthread_spinlock_t;
-TYPEDEF unsigned pthread_mutexattr_t;
-TYPEDEF unsigned pthread_condattr_t;
-TYPEDEF unsigned pthread_barrierattr_t;
+TYPEDEF struct { unsigned __attr; } pthread_mutexattr_t;
+TYPEDEF struct { unsigned __attr; } pthread_condattr_t;
+TYPEDEF struct { unsigned __attr; } pthread_barrierattr_t;
 TYPEDEF struct { unsigned __attr[2]; } pthread_rwlockattr_t;
 
 TYPEDEF struct _IO_FILE FILE;
index ad913c5..03fc91e 100644 (file)
@@ -52,19 +52,19 @@ int pthread_attr_getstacksize(const pthread_attr_t *restrict a, size_t *restrict
 
 int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict a, int *restrict pshared)
 {
-       *pshared = !!*a;
+       *pshared = !!a->__attr;
        return 0;
 }
 
 int pthread_condattr_getclock(const pthread_condattr_t *restrict a, clockid_t *restrict clk)
 {
-       *clk = *a & 0x7fffffff;
+       *clk = a->__attr & 0x7fffffff;
        return 0;
 }
 
 int pthread_condattr_getpshared(const pthread_condattr_t *restrict a, int *restrict pshared)
 {
-       *pshared = *a>>31;
+       *pshared = a->__attr>>31;
        return 0;
 }
 
@@ -75,24 +75,24 @@ int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict a, int *re
 }
 int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict a, int *restrict pshared)
 {
-       *pshared = *a>>31;
+       *pshared = a->__attr>>31;
        return 0;
 }
 
 int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict a, int *restrict robust)
 {
-       *robust = *a / 4U % 2;
+       *robust = a->__attr / 4U % 2;
        return 0;
 }
 
 int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict a, int *restrict type)
 {
-       *type = *a & 3;
+       *type = a->__attr & 3;
        return 0;
 }
 
 int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict a, int *restrict pshared)
 {
-       *pshared = *(int *)a;
+       *pshared = a->__attr[0];
        return 0;
 }
index 01e8cd6..4c3cb28 100644 (file)
@@ -3,6 +3,6 @@
 int pthread_barrier_init(pthread_barrier_t *restrict b, const pthread_barrierattr_t *restrict a, unsigned count)
 {
        if (count-1 > INT_MAX-1) return EINVAL;
-       *b = (pthread_barrier_t){ ._b_limit = count-1 | (a?*a:0) };
+       *b = (pthread_barrier_t){ ._b_limit = count-1 | (a?a->__attr:0) };
        return 0;
 }
index 1edc95d..b391461 100644 (file)
@@ -2,6 +2,6 @@
 
 int pthread_barrierattr_setpshared(pthread_barrierattr_t *a, int pshared)
 {
-       *a = pshared ? INT_MIN : 0;
+       a->__attr = pshared ? INT_MIN : 0;
        return 0;
 }
index 71489bc..357ecd5 100644 (file)
@@ -4,8 +4,8 @@ int pthread_cond_init(pthread_cond_t *restrict c, const pthread_condattr_t *rest
 {
        *c = (pthread_cond_t){0};
        if (a) {
-               c->_c_clock = *a & 0x7fffffff;
-               if (*a>>31) c->_c_mutex = (void *)-1;
+               c->_c_clock = a->__attr & 0x7fffffff;
+               if (a->__attr>>31) c->_c_mutex = (void *)-1;
        }
        return 0;
 }
index cd2cecc..7112594 100644 (file)
@@ -3,7 +3,7 @@
 int pthread_condattr_setclock(pthread_condattr_t *a, clockid_t clk)
 {
        if (clk < 0 || clk-2U < 2) return EINVAL;
-       *a &= 0x80000000;
-       *a |= clk;
+       a->__attr &= 0x80000000;
+       a->__attr |= clk;
        return 0;
 }
index c0cc1ef..bece8a2 100644 (file)
@@ -3,7 +3,7 @@
 int pthread_condattr_setpshared(pthread_condattr_t *a, int pshared)
 {
        if (pshared > 1U) return EINVAL;
-       *a &= 0x7fffffff;
-       *a |= pshared<<31;
+       a->__attr &= 0x7fffffff;
+       a->__attr |= pshared<<31;
        return 0;
 }
index a7ba39b..9d85a35 100644 (file)
@@ -3,6 +3,6 @@
 int pthread_mutex_init(pthread_mutex_t *restrict m, const pthread_mutexattr_t *restrict a)
 {
        *m = (pthread_mutex_t){0};
-       if (a) m->_m_type = *a & 7;
+       if (a) m->_m_type = a->__attr & 7;
        return 0;
 }
index 1a26001..8c7a1e2 100644 (file)
@@ -3,7 +3,7 @@
 int pthread_mutexattr_setpshared(pthread_mutexattr_t *a, int pshared)
 {
        if (pshared > 1U) return EINVAL;
-       *a &= 0x7fffffff;
-       *a |= pshared<<31;
+       a->__attr &= 0x7fffffff;
+       a->__attr |= pshared<<31;
        return 0;
 }
index 4a296ba..dcfa4cf 100644 (file)
@@ -3,7 +3,7 @@
 int pthread_mutexattr_setrobust(pthread_mutexattr_t *a, int robust)
 {
        if (robust > 1U) return EINVAL;
-       *a &= ~4;
-       *a |= robust*4;
+       a->__attr &= ~4;
+       a->__attr |= robust*4;
        return 0;
 }
index 4e85950..cd7a80e 100644 (file)
@@ -3,6 +3,6 @@
 int pthread_mutexattr_settype(pthread_mutexattr_t *a, int type)
 {
        if ((unsigned)type > 2) return EINVAL;
-       *a = (*a & ~3) | type;
+       a->__attr = (a->__attr & ~3) | type;
        return 0;
 }
index 1f47f09..e706197 100644 (file)
@@ -3,6 +3,6 @@
 int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *a, int pshared)
 {
        if (pshared > 1U) return EINVAL;
-       *(int *)a = pshared;
+       a->__attr[0] = pshared;
        return 0;
 }