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 b2454365743797020b1f5658118261e703fe38ce..cdd42ef181f34c8b838a367a60c209cf7cae2182 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 ad913c5aac99bec96ac40b06889b8f16c1bdf6e9..03fc91e38c103a26766f4a058d226a05f947eb6a 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 01e8cd6bf655e167d66f9060e73f69721f997656..4c3cb28d44c36b04fe6f136af47952fb4840e311 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 1edc95dcdf88eff3984b594a51a6bd92758e9237..b391461e16d19adb68ba310fee7d091f1f98c765 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 71489bca2c317ed2f3055562283fe393b2e9653c..357ecd55ea8787b10f73e321f6e7c43334afffcd 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 cd2cecc98bca6b52a6b02e6518cc1ef398dbd9c6..71125941341d1392661eccdf6367793d270b0c2a 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 c0cc1ef9f90dc4bf27e075c0207590314f75a209..bece8a269c9b8ccc62498e0d3378946358b1cd5e 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 a7ba39baac06821a528cbd02f1b5a57e349c57d8..9d85a354794611676acc87ce51accbd8350f96ae 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 1a26001a574940f190049405234b0151d062b862..8c7a1e26b8943e7011d90cf07ad9eae74b21e8e5 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 4a296ba11890d1dae8766697deedfc526dcf3864..dcfa4cf1c771c5347240c3bd826448b69f094f06 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 4e85950ec72c2057e601bbcb0eb552a06521da16..cd7a80e342c69981f6f3095e17dfb88739c38281 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 1f47f0934f5c769c6c9b1abbcca730fd44610410..e7061973d6d6b1c00a79cd2c3cd4bb04b0f104d7 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;
 }