source: libcfa/prelude/sync-builtins.cfa

Last change on this file was be3f163, checked in by Peter A. Buhr <pabuhr@…>, 7 months ago

rename files gcc-builtins.cf builtins.cf extras.cf bootloader.cf and sync-builtins.cf with suffix .cfa

  • Property mode set to 100644
File size: 43.3 KB
Line 
1char __sync_fetch_and_add(volatile char *, char,...);
2signed char __sync_fetch_and_add(volatile signed char *, signed char,...);
3unsigned char __sync_fetch_and_add(volatile unsigned char *, unsigned char,...);
4signed short __sync_fetch_and_add(volatile signed short *, signed short,...);
5unsigned short __sync_fetch_and_add(volatile unsigned short *, unsigned short,...);
6signed int __sync_fetch_and_add(volatile signed int *, signed int,...);
7unsigned int __sync_fetch_and_add(volatile unsigned int *, unsigned int,...);
8signed long int __sync_fetch_and_add(volatile signed long int *, signed long int,...);
9unsigned long int __sync_fetch_and_add(volatile unsigned long int *, unsigned long int,...);
10signed long long int __sync_fetch_and_add(volatile signed long long int *, signed long long int,...);
11unsigned long long int __sync_fetch_and_add(volatile unsigned long long int *, unsigned long long int,...);
12#if defined(__SIZEOF_INT128__)
13signed __int128 __sync_fetch_and_add(volatile signed __int128 *, signed __int128,...);
14unsigned __int128 __sync_fetch_and_add(volatile unsigned __int128 *, unsigned __int128,...);
15#endif
16
17char __sync_fetch_and_sub(volatile char *, char,...);
18signed char __sync_fetch_and_sub(volatile signed char *, signed char,...);
19unsigned char __sync_fetch_and_sub(volatile unsigned char *, unsigned char,...);
20signed short __sync_fetch_and_sub(volatile signed short *, signed short,...);
21unsigned short __sync_fetch_and_sub(volatile unsigned short *, unsigned short,...);
22signed int __sync_fetch_and_sub(volatile signed int *, signed int,...);
23unsigned int __sync_fetch_and_sub(volatile unsigned int *, unsigned int,...);
24signed long int __sync_fetch_and_sub(volatile signed long int *, signed long int,...);
25unsigned long int __sync_fetch_and_sub(volatile unsigned long int *, unsigned long int,...);
26signed long long int __sync_fetch_and_sub(volatile signed long long int *, signed long long int,...);
27unsigned long long int __sync_fetch_and_sub(volatile unsigned long long int *, unsigned long long int,...);
28#if defined(__SIZEOF_INT128__)
29signed __int128 __sync_fetch_and_sub(volatile signed __int128 *, signed __int128,...);
30unsigned __int128 __sync_fetch_and_sub(volatile unsigned __int128 *, unsigned __int128,...);
31#endif
32
33char __sync_fetch_and_or(volatile char *, char,...);
34signed char __sync_fetch_and_or(volatile signed char *, signed char,...);
35unsigned char __sync_fetch_and_or(volatile unsigned char *, unsigned char,...);
36signed short __sync_fetch_and_or(volatile signed short *, signed short,...);
37unsigned short __sync_fetch_and_or(volatile unsigned short *, unsigned short,...);
38signed int __sync_fetch_and_or(volatile signed int *, signed int,...);
39unsigned int __sync_fetch_and_or(volatile unsigned int *, unsigned int,...);
40signed long int __sync_fetch_and_or(volatile signed long int *, signed long int,...);
41unsigned long int __sync_fetch_and_or(volatile unsigned long int *, unsigned long int,...);
42signed long long int __sync_fetch_and_or(volatile signed long long int *, signed long long int,...);
43unsigned long long int __sync_fetch_and_or(volatile unsigned long long int *, unsigned long long int,...);
44#if defined(__SIZEOF_INT128__)
45signed __int128 __sync_fetch_and_or(volatile signed __int128 *, signed __int128,...);
46unsigned __int128 __sync_fetch_and_or(volatile unsigned __int128 *, unsigned __int128,...);
47#endif
48
49char __sync_fetch_and_and(volatile char *, char,...);
50signed char __sync_fetch_and_and(volatile signed char *, signed char,...);
51unsigned char __sync_fetch_and_and(volatile unsigned char *, unsigned char,...);
52signed short __sync_fetch_and_and(volatile signed short *, signed short,...);
53unsigned short __sync_fetch_and_and(volatile unsigned short *, unsigned short,...);
54signed int __sync_fetch_and_and(volatile signed int *, signed int,...);
55unsigned int __sync_fetch_and_and(volatile unsigned int *, unsigned int,...);
56signed long int __sync_fetch_and_and(volatile signed long int *, signed long int,...);
57unsigned long int __sync_fetch_and_and(volatile unsigned long int *, unsigned long int,...);
58signed long long int __sync_fetch_and_and(volatile signed long long int *, signed long long int,...);
59unsigned long long int __sync_fetch_and_and(volatile unsigned long long int *, unsigned long long int,...);
60#if defined(__SIZEOF_INT128__)
61signed __int128 __sync_fetch_and_and(volatile signed __int128 *, signed __int128,...);
62unsigned __int128 __sync_fetch_and_and(volatile unsigned __int128 *, unsigned __int128,...);
63#endif
64
65char __sync_fetch_and_xor(volatile char *, char,...);
66signed char __sync_fetch_and_xor(volatile signed char *, signed char,...);
67unsigned char __sync_fetch_and_xor(volatile unsigned char *, unsigned char,...);
68signed short __sync_fetch_and_xor(volatile signed short *, signed short,...);
69unsigned short __sync_fetch_and_xor(volatile unsigned short *, unsigned short,...);
70signed int __sync_fetch_and_xor(volatile signed int *, signed int,...);
71unsigned int __sync_fetch_and_xor(volatile unsigned int *, unsigned int,...);
72signed long int __sync_fetch_and_xor(volatile signed long int *, signed long int,...);
73unsigned long int __sync_fetch_and_xor(volatile unsigned long int *, unsigned long int,...);
74signed long long int __sync_fetch_and_xor(volatile signed long long int *, signed long long int,...);
75unsigned long long int __sync_fetch_and_xor(volatile unsigned long long int *, unsigned long long int,...);
76#if defined(__SIZEOF_INT128__)
77signed __int128 __sync_fetch_and_xor(volatile signed __int128 *, signed __int128,...);
78unsigned __int128 __sync_fetch_and_xor(volatile unsigned __int128 *, unsigned __int128,...);
79#endif
80
81char __sync_fetch_and_nand(volatile char *, char,...);
82signed char __sync_fetch_and_nand(volatile signed char *, signed char,...);
83unsigned char __sync_fetch_and_nand(volatile unsigned char *, unsigned char,...);
84signed short __sync_fetch_and_nand(volatile signed short *, signed short,...);
85unsigned short __sync_fetch_and_nand(volatile unsigned short *, unsigned short,...);
86signed int __sync_fetch_and_nand(volatile signed int *, signed int,...);
87unsigned int __sync_fetch_and_nand(volatile unsigned int *, unsigned int,...);
88signed long int __sync_fetch_and_nand(volatile signed long int *, signed long int,...);
89unsigned long int __sync_fetch_and_nand(volatile unsigned long int *, unsigned long int,...);
90signed long long int __sync_fetch_and_nand(volatile signed long long int *, signed long long int,...);
91unsigned long long int __sync_fetch_and_nand(volatile unsigned long long int *, unsigned long long int,...);
92#if defined(__SIZEOF_INT128__)
93signed __int128 __sync_fetch_and_nand(volatile signed __int128 *, signed __int128,...);
94unsigned __int128 __sync_fetch_and_nand(volatile unsigned __int128 *, unsigned __int128,...);
95#endif
96
97char __sync_add_and_fetch(volatile char *, char,...);
98signed char __sync_add_and_fetch(volatile signed char *, signed char,...);
99unsigned char __sync_add_and_fetch(volatile unsigned char *, unsigned char,...);
100signed short __sync_add_and_fetch(volatile signed short *, signed short,...);
101unsigned short __sync_add_and_fetch(volatile unsigned short *, unsigned short,...);
102signed int __sync_add_and_fetch(volatile signed int *, signed int,...);
103signed int __sync_add_and_fetch(volatile signed int *, signed int,...);
104signed long int __sync_add_and_fetch(volatile signed long int *, signed long int,...);
105unsigned long int __sync_add_and_fetch(volatile unsigned long int *, unsigned long int,...);
106signed long long int __sync_add_and_fetch(volatile signed long long int *, signed long long int,...);
107unsigned long long int __sync_add_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
108#if defined(__SIZEOF_INT128__)
109signed __int128 __sync_add_and_fetch(volatile signed __int128 *, signed __int128,...);
110unsigned __int128 __sync_add_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
111#endif
112
113char __sync_sub_and_fetch(volatile char *, char,...);
114signed char __sync_sub_and_fetch(volatile signed char *, signed char,...);
115unsigned char __sync_sub_and_fetch(volatile unsigned char *, unsigned char,...);
116signed short __sync_sub_and_fetch(volatile signed short *, signed short,...);
117unsigned short __sync_sub_and_fetch(volatile unsigned short *, unsigned short,...);
118signed int __sync_sub_and_fetch(volatile signed int *, signed int,...);
119unsigned int __sync_sub_and_fetch(volatile unsigned int *, unsigned int,...);
120signed long int __sync_sub_and_fetch(volatile signed long int *, signed long int,...);
121unsigned long int __sync_sub_and_fetch(volatile unsigned long int *, unsigned long int,...);
122signed long long int __sync_sub_and_fetch(volatile signed long long int *, signed long long int,...);
123unsigned long long int __sync_sub_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
124#if defined(__SIZEOF_INT128__)
125signed __int128 __sync_sub_and_fetch(volatile signed __int128 *, signed __int128,...);
126unsigned __int128 __sync_sub_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
127#endif
128
129char __sync_or_and_fetch(volatile char *, char,...);
130signed char __sync_or_and_fetch(volatile signed char *, signed char,...);
131unsigned char __sync_or_and_fetch(volatile unsigned char *, unsigned char,...);
132signed short __sync_or_and_fetch(volatile signed short *, signed short,...);
133unsigned short __sync_or_and_fetch(volatile unsigned short *, unsigned short,...);
134signed int __sync_or_and_fetch(volatile signed int *, signed int,...);
135unsigned int __sync_or_and_fetch(volatile unsigned int *, unsigned int,...);
136signed long int __sync_or_and_fetch(volatile signed long int *, signed long int,...);
137unsigned long int __sync_or_and_fetch(volatile unsigned long int *, unsigned long int,...);
138signed long long int __sync_or_and_fetch(volatile signed long long int *, signed long long int,...);
139unsigned long long int __sync_or_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
140#if defined(__SIZEOF_INT128__)
141signed __int128 __sync_or_and_fetch(volatile signed __int128 *, signed __int128,...);
142unsigned __int128 __sync_or_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
143#endif
144
145char __sync_and_and_fetch(volatile char *, char,...);
146signed char __sync_and_and_fetch(volatile signed char *, signed char,...);
147unsigned char __sync_and_and_fetch(volatile unsigned char *, unsigned char,...);
148signed short __sync_and_and_fetch(volatile signed short *, signed short,...);
149unsigned short __sync_and_and_fetch(volatile unsigned short *, unsigned short,...);
150signed int __sync_and_and_fetch(volatile signed int *, signed int,...);
151unsigned int __sync_and_and_fetch(volatile unsigned int *, unsigned int,...);
152signed long int __sync_and_and_fetch(volatile signed long int *, signed long int,...);
153unsigned long int __sync_and_and_fetch(volatile unsigned long int *, unsigned long int,...);
154signed long long int __sync_and_and_fetch(volatile signed long long int *, signed long long int,...);
155unsigned long long int __sync_and_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
156#if defined(__SIZEOF_INT128__)
157signed __int128 __sync_and_and_fetch(volatile signed __int128 *, signed __int128,...);
158unsigned __int128 __sync_and_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
159#endif
160
161char __sync_xor_and_fetch(volatile char *, char,...);
162signed char __sync_xor_and_fetch(volatile signed char *, signed char,...);
163unsigned char __sync_xor_and_fetch(volatile unsigned char *, unsigned char,...);
164signed short __sync_xor_and_fetch(volatile signed short *, signed short,...);
165unsigned short __sync_xor_and_fetch(volatile unsigned short *, unsigned short,...);
166signed int __sync_xor_and_fetch(volatile signed int *, signed int,...);
167unsigned int __sync_xor_and_fetch(volatile unsigned int *, unsigned int,...);
168signed long int __sync_xor_and_fetch(volatile signed long int *, signed long int,...);
169unsigned long int __sync_xor_and_fetch(volatile unsigned long int *, unsigned long int,...);
170signed long long int __sync_xor_and_fetch(volatile signed long long int *, signed long long int,...);
171unsigned long long int __sync_xor_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
172#if defined(__SIZEOF_INT128__)
173signed __int128 __sync_xor_and_fetch(volatile signed __int128 *, signed __int128,...);
174unsigned __int128 __sync_xor_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
175#endif
176
177char __sync_nand_and_fetch(volatile char *, char,...);
178signed char __sync_nand_and_fetch(volatile signed char *, signed char,...);
179unsigned char __sync_nand_and_fetch(volatile unsigned char *, unsigned char,...);
180signed short __sync_nand_and_fetch(volatile signed short *, signed short,...);
181unsigned short __sync_nand_and_fetch(volatile unsigned short *, unsigned short,...);
182signed int __sync_nand_and_fetch(volatile signed int *, signed int,...);
183unsigned int __sync_nand_and_fetch(volatile unsigned int *, unsigned int,...);
184signed long int __sync_nand_and_fetch(volatile signed long int *, signed long int,...);
185unsigned long int __sync_nand_and_fetch(volatile unsigned long int *, unsigned long int,...);
186signed long long int __sync_nand_and_fetch(volatile signed long long int *, signed long long int,...);
187unsigned long long int __sync_nand_and_fetch(volatile unsigned long long int *, unsigned long long int,...);
188#if defined(__SIZEOF_INT128__)
189signed __int128 __sync_nand_and_fetch(volatile signed __int128 *, signed __int128,...);
190unsigned __int128 __sync_nand_and_fetch(volatile unsigned __int128 *, unsigned __int128,...);
191#endif
192
193_Bool __sync_bool_compare_and_swap(volatile char *, char, char,...);
194_Bool __sync_bool_compare_and_swap(volatile signed char *, signed char, signed char,...);
195_Bool __sync_bool_compare_and_swap(volatile unsigned char *, unsigned char, unsigned char,...);
196_Bool __sync_bool_compare_and_swap(volatile short *, signed short, signed short,...);
197_Bool __sync_bool_compare_and_swap(volatile short *, unsigned short, unsigned short,...);
198_Bool __sync_bool_compare_and_swap(volatile signed int *, signed int, signed int,...);
199_Bool __sync_bool_compare_and_swap(volatile unsigned int *, unsigned int, unsigned int,...);
200_Bool __sync_bool_compare_and_swap(volatile signed long int *, signed long int, signed long int,...);
201_Bool __sync_bool_compare_and_swap(volatile unsigned long int *, unsigned long int, unsigned long int,...);
202_Bool __sync_bool_compare_and_swap(volatile signed long long int *, signed long long int, signed long long int,...);
203_Bool __sync_bool_compare_and_swap(volatile unsigned long long int *, unsigned long long int, unsigned long long int,...);
204#if defined(__SIZEOF_INT128__)
205_Bool __sync_bool_compare_and_swap(volatile signed __int128 *, signed __int128, signed __int128,...);
206_Bool __sync_bool_compare_and_swap(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...);
207#endif
208// for all pointer types
209forall(T &) _Bool __sync_bool_compare_and_swap(T * volatile *, T *, T*, ...);
210
211char __sync_val_compare_and_swap(volatile char *, char, char,...);
212signed char __sync_val_compare_and_swap(volatile signed char *, signed char, signed char,...);
213unsigned char __sync_val_compare_and_swap(volatile unsigned char *, unsigned char, unsigned char,...);
214signed short __sync_val_compare_and_swap(volatile signed short *, signed short, signed short,...);
215unsigned short __sync_val_compare_and_swap(volatile unsigned short *, unsigned short, unsigned short,...);
216signed int __sync_val_compare_and_swap(volatile signed int *, signed int, signed int,...);
217unsigned int __sync_val_compare_and_swap(volatile unsigned int *, unsigned int, unsigned int,...);
218signed long int __sync_val_compare_and_swap(volatile signed long int *, signed long int, signed long int,...);
219unsigned long int __sync_val_compare_and_swap(volatile unsigned long int *, unsigned long int, unsigned long int,...);
220signed long long int __sync_val_compare_and_swap(volatile signed long long int *, signed long long int, signed long long int,...);
221unsigned long long int __sync_val_compare_and_swap(volatile unsigned long long int *, unsigned long long int, unsigned long long int,...);
222#if defined(__SIZEOF_INT128__)
223signed __int128 __sync_val_compare_and_swap(volatile signed __int128 *, signed __int128, signed __int128,...);
224unsigned __int128 __sync_val_compare_and_swap(volatile unsigned __int128 *, unsigned __int128, unsigned __int128,...);
225#endif
226// for all pointer types
227forall(T &) T * __sync_val_compare_and_swap(T * volatile *, T *, T*,...);
228
229char __sync_lock_test_and_set(volatile char *, char,...);
230signed char __sync_lock_test_and_set(volatile signed char *, signed char,...);
231unsigned char __sync_lock_test_and_set(volatile unsigned char *, unsigned char,...);
232signed short __sync_lock_test_and_set(volatile signed short *, signed short,...);
233unsigned short __sync_lock_test_and_set(volatile unsigned short *, unsigned short,...);
234signed int __sync_lock_test_and_set(volatile signed int *, signed int,...);
235unsigned int __sync_lock_test_and_set(volatile unsigned int *, unsigned int,...);
236signed long int __sync_lock_test_and_set(volatile signed long int *, signed long int,...);
237unsigned long int __sync_lock_test_and_set(volatile unsigned long int *, unsigned long int,...);
238signed long long int __sync_lock_test_and_set(volatile signed long long int *, signed long long int,...);
239unsigned long long int __sync_lock_test_and_set(volatile unsigned long long int *, unsigned long long int,...);
240#if defined(__SIZEOF_INT128__)
241signed __int128 __sync_lock_test_and_set(volatile signed __int128 *, signed __int128,...);
242unsigned __int128 __sync_lock_test_and_set(volatile unsigned __int128 *, unsigned __int128,...);
243#endif
244
245void __sync_lock_release(volatile char *,...);
246void __sync_lock_release(volatile signed char *,...);
247void __sync_lock_release(volatile unsigned char *,...);
248void __sync_lock_release(volatile signed short *,...);
249void __sync_lock_release(volatile unsigned short *,...);
250void __sync_lock_release(volatile signed int *,...);
251void __sync_lock_release(volatile unsigned int *,...);
252void __sync_lock_release(volatile signed long int *,...);
253void __sync_lock_release(volatile unsigned long int *,...);
254void __sync_lock_release(volatile signed long long int *,...);
255void __sync_lock_release(volatile unsigned long long int *,...);
256#if defined(__SIZEOF_INT128__)
257void __sync_lock_release(volatile signed __int128 *,...);
258void __sync_lock_release(volatile unsigned __int128 *,...);
259#endif
260
261void __sync_synchronize();
262
263
264
265
266_Bool __atomic_test_and_set(volatile _Bool *, int);
267_Bool __atomic_test_and_set(volatile char *, int);
268_Bool __atomic_test_and_set(volatile signed char *, int);
269_Bool __atomic_test_and_set(volatile unsigned char *, int);
270_Bool __atomic_test_and_set(volatile signed short *, int);
271_Bool __atomic_test_and_set(volatile unsigned short *, int);
272_Bool __atomic_test_and_set(volatile signed int *, int);
273_Bool __atomic_test_and_set(volatile unsigned int *, int);
274_Bool __atomic_test_and_set(volatile signed long int *, int);
275_Bool __atomic_test_and_set(volatile unsigned long int *, int);
276_Bool __atomic_test_and_set(volatile signed long long int *, int);
277_Bool __atomic_test_and_set(volatile unsigned long long int *, int);
278#if defined(__SIZEOF_INT128__)
279_Bool __atomic_test_and_set(volatile signed __int128 *, int);
280_Bool __atomic_test_and_set(volatile unsigned __int128 *, int);
281#endif
282
283void __atomic_clear(volatile _Bool *, int);
284void __atomic_clear(volatile char *, int);
285void __atomic_clear(volatile signed char *, int);
286void __atomic_clear(volatile unsigned char *, int);
287void __atomic_clear(volatile signed short *, int);
288void __atomic_clear(volatile unsigned short *, int);
289void __atomic_clear(volatile signed int *, int);
290void __atomic_clear(volatile unsigned int *, int);
291void __atomic_clear(volatile signed long int *, int);
292void __atomic_clear(volatile unsigned long int *, int);
293void __atomic_clear(volatile signed long long int *, int);
294void __atomic_clear(volatile unsigned long long int *, int);
295#if defined(__SIZEOF_INT128__)
296void __atomic_clear(volatile signed __int128 *, int);
297void __atomic_clear(volatile unsigned __int128 *, int);
298#endif
299
300_Bool __atomic_exchange_n(volatile _Bool *, _Bool, int);
301void __atomic_exchange(volatile _Bool *, _Bool *, _Bool *, int);
302char __atomic_exchange_n(volatile char *, char, int);
303void __atomic_exchange(volatile char *, char *, char *, int);
304signed char __atomic_exchange_n(volatile signed char *, signed char, int);
305void __atomic_exchange(volatile signed char *, signed char *, signed char *, int);
306unsigned char __atomic_exchange_n(volatile unsigned char *, unsigned char, int);
307void __atomic_exchange(volatile unsigned char *, unsigned char *, unsigned char *, int);
308signed short __atomic_exchange_n(volatile signed short *, signed short, int);
309void __atomic_exchange(volatile signed short *, signed short *, signed short *, int);
310unsigned short __atomic_exchange_n(volatile unsigned short *, unsigned short, int);
311void __atomic_exchange(volatile unsigned short *, unsigned short *, unsigned short *, int);
312signed int __atomic_exchange_n(volatile signed int *, signed int, int);
313void __atomic_exchange(volatile signed int *, signed int *, signed int *, int);
314unsigned int __atomic_exchange_n(volatile unsigned int *, unsigned int, int);
315void __atomic_exchange(volatile unsigned int *, unsigned int *, unsigned int *, int);
316signed long int __atomic_exchange_n(volatile signed long int *, signed long int, int);
317void __atomic_exchange(volatile signed long int *, signed long int *, signed long int *, int);
318unsigned long int __atomic_exchange_n(volatile unsigned long int *, unsigned long int, int);
319void __atomic_exchange(volatile unsigned long int *, unsigned long int *, unsigned long int *, int);
320signed long long int __atomic_exchange_n(volatile signed long long int *, signed long long int, int);
321void __atomic_exchange(volatile signed long long int *, signed long long int *, signed long long int *, int);
322unsigned long long int __atomic_exchange_n(volatile unsigned long long int *, unsigned long long int, int);
323void __atomic_exchange(volatile unsigned long long int *, unsigned long long int *, unsigned long long int *, int);
324#if defined(__SIZEOF_INT128__)
325signed __int128 __atomic_exchange_n(volatile signed __int128 *, signed __int128, int);
326void __atomic_exchange(volatile signed __int128 *, signed __int128 *, signed __int128 *, int);
327unsigned __int128 __atomic_exchange_n(volatile unsigned __int128 *, unsigned __int128, int);
328void __atomic_exchange(volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128 *, int);
329#endif
330// for all pointer types
331forall(T &) T * __atomic_exchange_n(T * volatile *, T *, int);
332forall(T &) void __atomic_exchange(T * volatile *, T **, T **, int);
333
334_Bool __atomic_load_n(const volatile _Bool *, int);
335void __atomic_load(const volatile _Bool *, _Bool *, int);
336char __atomic_load_n(const volatile char *, int);
337void __atomic_load(const volatile char *, char *, int);
338signed char __atomic_load_n(const volatile signed char *, int);
339void __atomic_load(const volatile signed char *, signed char *, int);
340unsigned char __atomic_load_n(const volatile unsigned char *, int);
341void __atomic_load(const volatile unsigned char *, unsigned char *, int);
342signed short __atomic_load_n(const volatile signed short *, int);
343void __atomic_load(const volatile signed short *, signed short *, int);
344unsigned short __atomic_load_n(const volatile unsigned short *, int);
345void __atomic_load(const volatile unsigned short *, unsigned short *, int);
346signed int __atomic_load_n(const volatile signed int *, int);
347void __atomic_load(const volatile signed int *, signed int *, int);
348unsigned int __atomic_load_n(const volatile unsigned int *, int);
349void __atomic_load(const volatile unsigned int *, unsigned int *, int);
350signed long int __atomic_load_n(const volatile signed long int *, int);
351void __atomic_load(const volatile signed long int *, signed long int *, int);
352unsigned long int __atomic_load_n(const volatile unsigned long int *, int);
353void __atomic_load(const volatile unsigned long int *, unsigned long int *, int);
354signed long long int __atomic_load_n(const volatile signed long long int *, int);
355void __atomic_load(const volatile signed long long int *, signed long long int *, int);
356unsigned long long int __atomic_load_n(const volatile unsigned long long int *, int);
357void __atomic_load(const volatile unsigned long long int *, unsigned long long int *, int);
358#if defined(__SIZEOF_INT128__)
359signed __int128 __atomic_load_n(const volatile signed __int128 *, int);
360void __atomic_load(const volatile signed __int128 *, signed __int128 *, int);
361unsigned __int128 __atomic_load_n(const volatile unsigned __int128 *, int);
362void __atomic_load(const volatile unsigned __int128 *, unsigned __int128 *, int);
363#endif
364// for all pointer types
365forall(T &) T * __atomic_load_n(T * const volatile *, int);
366forall(T &) void __atomic_load(T * const volatile *, T **, int);
367
368_Bool __atomic_compare_exchange_n(volatile char *, char *, char, _Bool, int, int);
369_Bool __atomic_compare_exchange  (volatile char *, char *, char *, _Bool, int, int);
370_Bool __atomic_compare_exchange_n(volatile signed char *, signed char *, signed char, _Bool, int, int);
371_Bool __atomic_compare_exchange  (volatile signed char *, signed char *, signed char *, _Bool, int, int);
372_Bool __atomic_compare_exchange_n(volatile unsigned char *, unsigned char *, unsigned char, _Bool, int, int);
373_Bool __atomic_compare_exchange  (volatile unsigned char *, unsigned char *, unsigned char *, _Bool, int, int);
374_Bool __atomic_compare_exchange_n(volatile signed short *, signed short *, signed short, _Bool, int, int);
375_Bool __atomic_compare_exchange  (volatile signed short *, signed short *, signed short *, _Bool, int, int);
376_Bool __atomic_compare_exchange_n(volatile unsigned short *, unsigned short *, unsigned short, _Bool, int, int);
377_Bool __atomic_compare_exchange  (volatile unsigned short *, unsigned short *, unsigned short *, _Bool, int, int);
378_Bool __atomic_compare_exchange_n(volatile signed int *, signed int *, signed int, _Bool, int, int);
379_Bool __atomic_compare_exchange  (volatile signed int *, signed int *, signed int *, _Bool, int, int);
380_Bool __atomic_compare_exchange_n(volatile unsigned int *, unsigned int *, unsigned int, _Bool, int, int);
381_Bool __atomic_compare_exchange  (volatile unsigned int *, unsigned int *, unsigned int *, _Bool, int, int);
382_Bool __atomic_compare_exchange_n(volatile signed long int *, signed long int *, signed long int, _Bool, int, int);
383_Bool __atomic_compare_exchange  (volatile signed long int *, signed long int *, signed long int *, _Bool, int, int);
384_Bool __atomic_compare_exchange_n(volatile unsigned long int *, unsigned long int *, unsigned long int, _Bool, int, int);
385_Bool __atomic_compare_exchange  (volatile unsigned long int *, unsigned long int *, unsigned long int *, _Bool, int, int);
386_Bool __atomic_compare_exchange_n(volatile signed long long int *, signed long long int *, signed long long int, _Bool, int, int);
387_Bool __atomic_compare_exchange  (volatile signed long long int *, signed long long int *, signed long long int *, _Bool, int, int);
388_Bool __atomic_compare_exchange_n(volatile unsigned long long int *, unsigned long long int *, unsigned long long int, _Bool, int, int);
389_Bool __atomic_compare_exchange  (volatile unsigned long long int *, unsigned long long int *, unsigned long long int *, _Bool, int, int);
390#if defined(__SIZEOF_INT128__)
391_Bool __atomic_compare_exchange_n (volatile signed __int128 *, signed __int128 *, signed __int128, _Bool, int, int);
392_Bool __atomic_compare_exchange   (volatile signed __int128 *, signed __int128 *, signed __int128 *, _Bool, int, int);
393_Bool __atomic_compare_exchange_n (volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128, _Bool, int, int);
394_Bool __atomic_compare_exchange   (volatile unsigned __int128 *, unsigned __int128 *, unsigned __int128 *, _Bool, int, int);
395#endif
396// for all pointer types
397forall(T &) _Bool __atomic_compare_exchange_n (T * volatile *, T **, T*, _Bool, int, int);
398forall(T &) _Bool __atomic_compare_exchange   (T * volatile *, T **, T**, _Bool, int, int);
399
400void __atomic_store_n(volatile _Bool *, _Bool, int);
401void __atomic_store(volatile _Bool *, _Bool *, int);
402void __atomic_store_n(volatile char *, char, int);
403void __atomic_store(volatile char *, char *, int);
404void __atomic_store_n(volatile signed char *, signed char, int);
405void __atomic_store(volatile signed char *, signed char *, int);
406void __atomic_store_n(volatile unsigned char *, unsigned char, int);
407void __atomic_store(volatile unsigned char *, unsigned char *, int);
408void __atomic_store_n(volatile signed short *, signed short, int);
409void __atomic_store(volatile signed short *, signed short *, int);
410void __atomic_store_n(volatile unsigned short *, unsigned short, int);
411void __atomic_store(volatile unsigned short *, unsigned short *, int);
412void __atomic_store_n(volatile signed int *, signed int, int);
413void __atomic_store(volatile signed int *, signed int *, int);
414void __atomic_store_n(volatile unsigned int *, unsigned int, int);
415void __atomic_store(volatile unsigned int *, unsigned int *, int);
416void __atomic_store_n(volatile signed long int *, signed long int, int);
417void __atomic_store(volatile signed long int *, signed long int *, int);
418void __atomic_store_n(volatile unsigned long int *, unsigned long int, int);
419void __atomic_store(volatile unsigned long int *, unsigned long int *, int);
420void __atomic_store_n(volatile signed long long int *, signed long long int, int);
421void __atomic_store(volatile signed long long int *, signed long long int *, int);
422void __atomic_store_n(volatile unsigned long long int *, unsigned long long int, int);
423void __atomic_store(volatile unsigned long long int *, unsigned long long int *, int);
424#if defined(__SIZEOF_INT128__)
425void __atomic_store_n(volatile signed __int128 *, signed __int128, int);
426void __atomic_store(volatile signed __int128 *, signed __int128 *, int);
427void __atomic_store_n(volatile unsigned __int128 *, unsigned __int128, int);
428void __atomic_store(volatile unsigned __int128 *, unsigned __int128 *, int);
429#endif
430// for all pointer types
431forall(T &) void __atomic_store_n(T * volatile *, T *, int);
432forall(T &) void __atomic_store(T * volatile *, T **, int);
433
434char __atomic_add_fetch  (volatile char *, char, int);
435signed char __atomic_add_fetch  (volatile signed char *, signed char, int);
436unsigned char __atomic_add_fetch  (volatile unsigned char *, unsigned char, int);
437signed short __atomic_add_fetch  (volatile signed short *, signed short, int);
438unsigned short __atomic_add_fetch  (volatile unsigned short *, unsigned short, int);
439signed int __atomic_add_fetch  (volatile signed int *, signed int, int);
440unsigned int __atomic_add_fetch  (volatile unsigned int *, unsigned int, int);
441signed long int __atomic_add_fetch  (volatile signed long int *, signed long int, int);
442unsigned long int __atomic_add_fetch  (volatile unsigned long int *, unsigned long int, int);
443signed long long int __atomic_add_fetch  (volatile signed long long int *, signed long long int, int);
444unsigned long long int __atomic_add_fetch  (volatile unsigned long long int *, unsigned long long int, int);
445#if defined(__SIZEOF_INT128__)
446signed __int128 __atomic_add_fetch   (volatile signed __int128 *, signed __int128, int);
447unsigned __int128 __atomic_add_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
448#endif
449
450char __atomic_sub_fetch  (volatile char *, char, int);
451signed char __atomic_sub_fetch  (volatile signed char *, signed char, int);
452unsigned char __atomic_sub_fetch  (volatile unsigned char *, unsigned char, int);
453signed short __atomic_sub_fetch  (volatile signed short *, signed short, int);
454unsigned short __atomic_sub_fetch  (volatile unsigned short *, unsigned short, int);
455signed int __atomic_sub_fetch  (volatile signed int *, signed int, int);
456unsigned int __atomic_sub_fetch  (volatile unsigned int *, unsigned int, int);
457signed long long int __atomic_sub_fetch  (volatile signed long int *, signed long int, int);
458unsigned long long int __atomic_sub_fetch  (volatile unsigned long int *, unsigned long int, int);
459signed long long int __atomic_sub_fetch  (volatile signed long long int *, signed long long int, int);
460unsigned long long int __atomic_sub_fetch  (volatile unsigned long long int *, unsigned long long int, int);
461#if defined(__SIZEOF_INT128__)
462signed __int128 __atomic_sub_fetch   (volatile signed __int128 *, signed __int128, int);
463unsigned __int128 __atomic_sub_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
464#endif
465
466char __atomic_and_fetch  (volatile char *, char, int);
467signed char __atomic_and_fetch  (volatile signed char *, signed char, int);
468unsigned char __atomic_and_fetch  (volatile unsigned char *, unsigned char, int);
469signed short __atomic_and_fetch  (volatile signed short *, signed short, int);
470unsigned short __atomic_and_fetch  (volatile unsigned short *, unsigned short, int);
471signed int __atomic_and_fetch  (volatile signed int *, signed int, int);
472unsigned int __atomic_and_fetch  (volatile unsigned int *, unsigned int, int);
473signed long int __atomic_and_fetch  (volatile signed long int *, signed long int, int);
474unsigned long int __atomic_and_fetch  (volatile unsigned long int *, unsigned long int, int);
475signed long long int __atomic_and_fetch  (volatile signed long long int *, signed long long int, int);
476unsigned long long int __atomic_and_fetch  (volatile unsigned long long int *, unsigned long long int, int);
477#if defined(__SIZEOF_INT128__)
478signed __int128 __atomic_and_fetch   (volatile signed __int128 *, signed __int128, int);
479unsigned __int128 __atomic_and_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
480#endif
481
482char __atomic_nand_fetch  (volatile char *, char, int);
483signed char __atomic_nand_fetch  (volatile signed char *, signed char, int);
484unsigned char __atomic_nand_fetch  (volatile unsigned char *, unsigned char, int);
485signed short __atomic_nand_fetch  (volatile signed short *, signed short, int);
486unsigned short __atomic_nand_fetch  (volatile unsigned short *, unsigned short, int);
487signed int __atomic_nand_fetch  (volatile signed int *, signed int, int);
488unsigned int __atomic_nand_fetch  (volatile unsigned int *, unsigned int, int);
489signed long int __atomic_nand_fetch  (volatile signed long int *, signed long int, int);
490unsigned long int __atomic_nand_fetch  (volatile unsigned long int *, unsigned long int, int);
491signed long long int __atomic_nand_fetch  (volatile signed long long int *, signed long long int, int);
492unsigned long long int __atomic_nand_fetch  (volatile unsigned long long int *, unsigned long long int, int);
493#if defined(__SIZEOF_INT128__)
494signed __int128 __atomic_nand_fetch   (volatile signed __int128 *, signed __int128, int);
495unsigned __int128 __atomic_nand_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
496#endif
497
498char __atomic_xor_fetch  (volatile char *, char, int);
499signed char __atomic_xor_fetch  (volatile signed char *, signed char, int);
500unsigned char __atomic_xor_fetch  (volatile unsigned char *, unsigned char, int);
501signed short __atomic_xor_fetch  (volatile signed short *, signed short, int);
502unsigned short __atomic_xor_fetch  (volatile unsigned short *, unsigned short, int);
503signed int __atomic_xor_fetch  (volatile signed int *, signed int, int);
504unsigned int __atomic_xor_fetch  (volatile unsigned int *, unsigned int, int);
505signed long int __atomic_xor_fetch  (volatile signed long int *, signed long int, int);
506unsigned long int __atomic_xor_fetch  (volatile unsigned long int *, unsigned long int, int);
507signed long long int __atomic_xor_fetch  (volatile signed long long int *, signed long long int, int);
508unsigned long long int __atomic_xor_fetch  (volatile unsigned long long int *, unsigned long long int, int);
509#if defined(__SIZEOF_INT128__)
510signed __int128 __atomic_xor_fetch   (volatile signed __int128 *, signed __int128, int);
511unsigned __int128 __atomic_xor_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
512#endif
513
514char __atomic_or_fetch  (volatile char *, char, int);
515signed char __atomic_or_fetch  (volatile signed char *, signed char, int);
516unsigned char __atomic_or_fetch  (volatile unsigned char *, unsigned char, int);
517signed short __atomic_or_fetch  (volatile signed short *, signed short, int);
518unsigned short __atomic_or_fetch  (volatile unsigned short *, unsigned short, int);
519signed int __atomic_or_fetch  (volatile signed int *, signed int, int);
520unsigned int __atomic_or_fetch  (volatile unsigned int *, unsigned int, int);
521signed long int __atomic_or_fetch  (volatile signed long int *, signed long int, int);
522unsigned long int __atomic_or_fetch  (volatile unsigned long int *, unsigned long int, int);
523signed long long int __atomic_or_fetch  (volatile signed long long int *, signed long long int, int);
524unsigned long long int __atomic_or_fetch  (volatile unsigned long long int *, unsigned long long int, int);
525#if defined(__SIZEOF_INT128__)
526signed __int128 __atomic_or_fetch   (volatile signed __int128 *, signed __int128, int);
527unsigned __int128 __atomic_or_fetch   (volatile unsigned __int128 *, unsigned __int128, int);
528#endif
529
530char __atomic_fetch_add  (volatile char *, char, int);
531signed char __atomic_fetch_add  (volatile signed char *, signed char, int);
532unsigned char __atomic_fetch_add  (volatile unsigned char *, unsigned char, int);
533signed short __atomic_fetch_add  (volatile signed short *, signed short, int);
534unsigned short __atomic_fetch_add  (volatile unsigned short *, unsigned short, int);
535signed int __atomic_fetch_add  (volatile signed int *, signed int, int);
536unsigned int __atomic_fetch_add  (volatile unsigned int *, unsigned int, int);
537signed long int __atomic_fetch_add  (volatile signed long int *, signed long int, int);
538unsigned long int __atomic_fetch_add  (volatile unsigned long int *, unsigned long int, int);
539signed long long int __atomic_fetch_add  (volatile signed long long int *, signed long long int, int);
540unsigned long long int __atomic_fetch_add  (volatile unsigned long long int *, unsigned long long int, int);
541#if defined(__SIZEOF_INT128__)
542signed __int128 __atomic_fetch_add   (volatile signed __int128 *, signed __int128, int);
543unsigned __int128 __atomic_fetch_add   (volatile unsigned __int128 *, unsigned __int128, int);
544#endif
545
546char __atomic_fetch_sub  (volatile char *, char, int);
547signed char __atomic_fetch_sub  (volatile signed char *, signed char, int);
548unsigned char __atomic_fetch_sub  (volatile unsigned char *, unsigned char, int);
549signed short __atomic_fetch_sub  (volatile signed short *, signed short, int);
550unsigned short __atomic_fetch_sub  (volatile unsigned short *, unsigned short, int);
551signed int __atomic_fetch_sub  (volatile signed int *, signed int, int);
552unsigned int __atomic_fetch_sub  (volatile unsigned int *, unsigned int, int);
553signed long int __atomic_fetch_sub  (volatile signed long int *, signed long int, int);
554unsigned long int __atomic_fetch_sub  (volatile unsigned long int *, unsigned long int, int);
555signed long long int __atomic_fetch_sub  (volatile signed long long int *, signed long long int, int);
556unsigned long long int __atomic_fetch_sub  (volatile unsigned long long int *, unsigned long long int, int);
557#if defined(__SIZEOF_INT128__)
558signed __int128 __atomic_fetch_sub   (volatile signed  __int128 *, signed __int128, int);
559unsigned __int128 __atomic_fetch_sub   (volatile unsigned  __int128 *, unsigned __int128, int);
560#endif
561
562char __atomic_fetch_and  (volatile char *, char, int);
563signed char __atomic_fetch_and  (volatile signed char *, signed char, int);
564unsigned char __atomic_fetch_and  (volatile unsigned char *, unsigned char, int);
565signed short __atomic_fetch_and  (volatile signed short *, signed short, int);
566unsigned short __atomic_fetch_and  (volatile unsigned short *, unsigned short, int);
567signed int __atomic_fetch_and  (volatile signed int *, signed int, int);
568unsigned int __atomic_fetch_and  (volatile unsigned int *, unsigned int, int);
569signed long int __atomic_fetch_and  (volatile signed long int *, signed long int, int);
570unsigned long int __atomic_fetch_and  (volatile unsigned long int *, unsigned long int, int);
571signed long long int __atomic_fetch_and  (volatile signed long long int *, signed long long int, int);
572unsigned long long int __atomic_fetch_and  (volatile unsigned long long int *, unsigned long long int, int);
573#if defined(__SIZEOF_INT128__)
574signed __int128 __atomic_fetch_and   (volatile signed __int128 *, signed __int128, int);
575unsigned __int128 __atomic_fetch_and   (volatile unsigned __int128 *, unsigned __int128, int);
576#endif
577
578char __atomic_fetch_nand  (volatile char *, char, int);
579signed char __atomic_fetch_nand  (volatile signed char *, signed char, int);
580unsigned char __atomic_fetch_nand  (volatile unsigned char *, unsigned char, int);
581signed short __atomic_fetch_nand  (volatile signed short *, signed short, int);
582unsigned short __atomic_fetch_nand  (volatile unsigned short *, unsigned short, int);
583signed int __atomic_fetch_nand  (volatile signed int *, signed int, int);
584unsigned int __atomic_fetch_nand  (volatile unsigned int *, unsigned int, int);
585signed long int __atomic_fetch_nand  (volatile signed long int *, signed long int, int);
586unsigned long int __atomic_fetch_nand  (volatile unsigned long int *, unsigned long int, int);
587signed long long int __atomic_fetch_nand  (volatile signed long long int *, signed long long int, int);
588unsigned long long int __atomic_fetch_nand  (volatile unsigned long long int *, unsigned long long int, int);
589#if defined(__SIZEOF_INT128__)
590signed __int128 __atomic_fetch_nand   (volatile signed __int128 *, signed __int128, int);
591unsigned __int128 __atomic_fetch_nand   (volatile unsigned __int128 *, unsigned __int128, int);
592#endif
593
594char __atomic_fetch_xor  (volatile char *, char, int);
595signed char __atomic_fetch_xor  (volatile signed char *, signed char, int);
596unsigned char __atomic_fetch_xor  (volatile unsigned char *, unsigned char, int);
597signed short __atomic_fetch_xor  (volatile signed short *, signed short, int);
598unsigned short __atomic_fetch_xor  (volatile unsigned short *, unsigned short, int);
599signed int __atomic_fetch_xor  (volatile signed int *, signed int, int);
600unsigned int __atomic_fetch_xor  (volatile unsigned int *, unsigned int, int);
601signed long int __atomic_fetch_xor  (volatile signed long int *, signed long int, int);
602unsigned long int __atomic_fetch_xor  (volatile unsigned long int *, unsigned long int, int);
603signed long long int __atomic_fetch_xor  (volatile signed long long int *, signed long long int, int);
604unsigned long long int __atomic_fetch_xor  (volatile unsigned long long int *, unsigned long long int, int);
605#if defined(__SIZEOF_INT128__)
606signed __int128 __atomic_fetch_xor   (volatile signed __int128 *, signed __int128, int);
607unsigned __int128 __atomic_fetch_xor   (volatile unsigned __int128 *, unsigned __int128, int);
608#endif
609
610char __atomic_fetch_or  (volatile char *, char, int);
611signed char __atomic_fetch_or  (volatile signed char *, signed char, int);
612unsigned char __atomic_fetch_or  (volatile unsigned char *, unsigned char, int);
613signed short __atomic_fetch_or  (volatile signed short *, signed short, int);
614unsigned short __atomic_fetch_or  (volatile unsigned short *, unsigned short, int);
615signed int __atomic_fetch_or  (volatile signed int *, signed int, int);
616unsigned int __atomic_fetch_or  (volatile unsigned int *, unsigned int, int);
617signed long int __atomic_fetch_or  (volatile signed long int *, signed long int, int);
618unsigned long int __atomic_fetch_or  (volatile unsigned long int *, unsigned long int, int);
619signed long long int __atomic_fetch_or  (volatile signed long long int *, signed long long int, int);
620unsigned long long int __atomic_fetch_or  (volatile unsigned long long int *, unsigned long long int, int);
621#if defined(__SIZEOF_INT128__)
622signed __int128 __atomic_fetch_or   (volatile signed __int128 *, signed __int128, int);
623unsigned __int128 __atomic_fetch_or   (volatile unsigned __int128 *, unsigned __int128, int);
624#endif
625
626_Bool __atomic_always_lock_free(unsigned long, const volatile void *);
627_Bool __atomic_is_lock_free(unsigned long, const volatile void *);
628
629void __atomic_thread_fence (int);
630void __atomic_signal_fence (int);
631void __atomic_feraiseexcept(int);
Note: See TracBrowser for help on using the repository browser.