yann@766
|
1 |
Index: uClibc/libc/sysdeps/linux/mips/bits/atomic.h
|
yann@766
|
2 |
===================================================================
|
yann@766
|
3 |
--- uClibc/libc/sysdeps/linux/mips/bits/atomic.h (revision 23002)
|
yann@766
|
4 |
+++ uClibc/libc/sysdeps/linux/mips/bits/atomic.h (working copy)
|
yann@766
|
5 |
@@ -110,22 +110,22 @@
|
yann@766
|
6 |
/* For all "bool" routines, we return FALSE if exchange succesful. */
|
yann@766
|
7 |
|
yann@766
|
8 |
#define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq) \
|
yann@766
|
9 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
10 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
11 |
__arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
|
yann@766
|
12 |
!__cmp; })
|
yann@766
|
13 |
|
yann@766
|
14 |
#define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
|
yann@766
|
15 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
16 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
17 |
__arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
|
yann@766
|
18 |
!__cmp; })
|
yann@766
|
19 |
|
yann@766
|
20 |
#define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
|
yann@766
|
21 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
22 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
23 |
__arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
|
yann@766
|
24 |
!__cmp; })
|
yann@766
|
25 |
|
yann@766
|
26 |
#define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
|
yann@766
|
27 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
28 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
29 |
__arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
|
yann@766
|
30 |
!__cmp; })
|
yann@766
|
31 |
|
yann@766
|
32 |
@@ -133,24 +133,24 @@
|
yann@766
|
33 |
successful or not. */
|
yann@766
|
34 |
|
yann@766
|
35 |
#define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq) \
|
yann@766
|
36 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
37 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
38 |
__arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
|
yann@766
|
39 |
- (typeof (*mem))__prev; })
|
yann@766
|
40 |
+ (__typeof (*mem))__prev; })
|
yann@766
|
41 |
|
yann@766
|
42 |
#define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
|
yann@766
|
43 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
44 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
45 |
__arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
|
yann@766
|
46 |
- (typeof (*mem))__prev; })
|
yann@766
|
47 |
+ (__typeof (*mem))__prev; })
|
yann@766
|
48 |
|
yann@766
|
49 |
#define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
|
yann@766
|
50 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
51 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
52 |
__arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
|
yann@766
|
53 |
- (typeof (*mem))__prev; })
|
yann@766
|
54 |
+ (__typeof (*mem))__prev; })
|
yann@766
|
55 |
|
yann@766
|
56 |
#define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
|
yann@766
|
57 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
58 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
59 |
__arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
|
yann@766
|
60 |
- (typeof (*mem))__prev; })
|
yann@766
|
61 |
+ (__typeof (*mem))__prev; })
|
yann@766
|
62 |
|
yann@766
|
63 |
/* Compare and exchange with "acquire" semantics, ie barrier after. */
|
yann@766
|
64 |
|
yann@766
|
65 |
@@ -183,7 +183,7 @@
|
yann@766
|
66 |
(abort (), 0)
|
yann@766
|
67 |
|
yann@766
|
68 |
#define __arch_exchange_xxx_32_int(mem, newval, rel, acq) \
|
yann@766
|
69 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
70 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
71 |
__asm__ __volatile__ ("\n" \
|
yann@766
|
72 |
".set push\n\t" \
|
yann@766
|
73 |
MIPS_PUSH_MIPS2 \
|
yann@766
|
74 |
@@ -207,7 +207,7 @@
|
yann@766
|
75 |
(abort (), 0)
|
yann@766
|
76 |
#else
|
yann@766
|
77 |
#define __arch_exchange_xxx_64_int(mem, newval, rel, acq) \
|
yann@766
|
78 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
79 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
80 |
__asm__ __volatile__ ("\n" \
|
yann@766
|
81 |
".set push\n\t" \
|
yann@766
|
82 |
MIPS_PUSH_MIPS2 \
|
yann@766
|
83 |
@@ -236,13 +236,13 @@
|
yann@766
|
84 |
/* Atomically add value and return the previous (unincremented) value. */
|
yann@766
|
85 |
|
yann@766
|
86 |
#define __arch_exchange_and_add_8_int(mem, newval, rel, acq) \
|
yann@766
|
87 |
- (abort (), (typeof(*mem)) 0)
|
yann@766
|
88 |
+ (abort (), (__typeof(*mem)) 0)
|
yann@766
|
89 |
|
yann@766
|
90 |
#define __arch_exchange_and_add_16_int(mem, newval, rel, acq) \
|
yann@766
|
91 |
- (abort (), (typeof(*mem)) 0)
|
yann@766
|
92 |
+ (abort (), (__typeof(*mem)) 0)
|
yann@766
|
93 |
|
yann@766
|
94 |
#define __arch_exchange_and_add_32_int(mem, value, rel, acq) \
|
yann@766
|
95 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
96 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
97 |
__asm__ __volatile__ ("\n" \
|
yann@766
|
98 |
".set push\n\t" \
|
yann@766
|
99 |
MIPS_PUSH_MIPS2 \
|
yann@766
|
100 |
@@ -263,10 +263,10 @@
|
yann@766
|
101 |
#if _MIPS_SIM == _ABIO32
|
yann@766
|
102 |
/* We can't do an atomic 64-bit operation in O32. */
|
yann@766
|
103 |
#define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
|
yann@766
|
104 |
- (abort (), (typeof(*mem)) 0)
|
yann@766
|
105 |
+ (abort (), (__typeof(*mem)) 0)
|
yann@766
|
106 |
#else
|
yann@766
|
107 |
#define __arch_exchange_and_add_64_int(mem, value, rel, acq) \
|
yann@766
|
108 |
-({ typeof (*mem) __prev; int __cmp; \
|
yann@766
|
109 |
+({ __typeof (*mem) __prev; int __cmp; \
|
yann@766
|
110 |
__asm__ __volatile__ ( \
|
yann@766
|
111 |
".set push\n\t" \
|
yann@766
|
112 |
MIPS_PUSH_MIPS2 \
|