Lines Matching refs:sz

93 #define	itype(sz)	uint ## sz ## _t  argument
98 #define atomic_cas(p, e, s, sz) \ argument
99 atomic_cas_ ## sz((p), (e), (s))
101 #define atomic_cas_acq(p, e, s, sz) ({ \ argument
102 itype(sz) v; \
103 v = atomic_cas((p), (e), (s), sz); \
108 #define atomic_cas_rel(p, e, s, sz) ({ \ argument
109 itype(sz) v; \
111 v = atomic_cas((p), (e), (s), sz); \
115 #define atomic_op(p, op, v, sz) ({ \ argument
116 itype(sz) e, r, s; \
117 for (e = *(volatile itype(sz) *)(p);; e = r) { \
119 r = atomic_cas_ ## sz((p), e, s); \
126 #define atomic_op_acq(p, op, v, sz) ({ \ argument
127 itype(sz) t; \
128 t = atomic_op((p), op, (v), sz); \
133 #define atomic_op_rel(p, op, v, sz) ({ \ argument
134 itype(sz) t; \
136 t = atomic_op((p), op, (v), sz); \
140 #define atomic_ld_acq(p, sz) ({ \ argument
141 itype(sz) v; \
142 v = atomic_cas((p), 0, 0, sz); \
147 #define atomic_ld_clear(p, sz) ({ \ argument
148 itype(sz) e, r; \
149 for (e = *(volatile itype(sz) *)(p);; e = r) { \
150 r = atomic_cas((p), e, 0, sz); \
157 #define atomic_st(p, v, sz) ({ \ argument
158 itype(sz) e, r; \
159 for (e = *(volatile itype(sz) *)(p);; e = r) { \
160 r = atomic_cas((p), e, (v), sz); \
167 #define atomic_st_acq(p, v, sz) do { \ argument
168 atomic_st((p), (v), sz); \
172 #define atomic_st_rel(p, v, sz) do { \ argument
174 atomic_st((p), (v), sz); \
177 #define ATOMIC_GEN(name, ptype, vtype, atype, sz) \ argument
182 return ((vtype)atomic_op((p), +, (v), sz)); \
187 return ((vtype)atomic_op_acq((p), +, (v), sz)); \
192 return ((vtype)atomic_op_rel((p), +, (v), sz)); \
198 return ((vtype)atomic_op((p), &, ~(v), sz)); \
203 return ((vtype)atomic_op_acq((p), &, ~(v), sz)); \
208 return ((vtype)atomic_op_rel((p), &, ~(v), sz)); \
214 return (((vtype)atomic_cas((p), (e), (s), sz)) == (e)); \
219 return (((vtype)atomic_cas_acq((p), (e), (s), sz)) == (e)); \
224 return (((vtype)atomic_cas_rel((p), (e), (s), sz)) == (e)); \
232 t = (vtype)atomic_cas((p), (*ep), (s), sz); \
243 t = (vtype)atomic_cas_acq((p), (*ep), (s), sz); \
254 t = (vtype)atomic_cas_rel((p), (*ep), (s), sz); \
264 return ((vtype)atomic_cas_acq((p), 0, 0, sz)); \
270 return ((vtype)atomic_ld_clear((p), sz)); \
276 return ((vtype)atomic_op((p), |, (v), sz)); \
281 return ((vtype)atomic_op_acq((p), |, (v), sz)); \
286 return ((vtype)atomic_op_rel((p), |, (v), sz)); \
292 return ((vtype)atomic_op((p), -, (v), sz)); \
297 return ((vtype)atomic_op_acq((p), -, (v), sz)); \
302 return ((vtype)atomic_op_rel((p), -, (v), sz)); \
308 atomic_st_acq((p), (v), sz); \
313 atomic_st_rel((p), (v), sz); \
319 return ((vtype)atomic_st((p), (v), sz)); \