Commit | Line | Data |
---|---|---|
ace9bad4 MR |
1 | # name meta args... |
2 | # | |
3 | # Where meta contains a string of variants to generate. | |
4 | # Upper-case implies _{acquire,release,relaxed} variants. | |
5 | # Valid meta values are: | |
6 | # * B/b - bool: returns bool | |
7 | # * v - void: returns void | |
8 | # * I/i - int: returns base type | |
9 | # * R - return: returns base type (has _return variants) | |
10 | # * F/f - fetch: returns base type (has fetch_ variants) | |
11 | # * l - load: returns base type (has _acquire order variant) | |
12 | # * s - store: returns void (has _release order variant) | |
13 | # | |
14 | # Where args contains list of type[:name], where type is: | |
15 | # * cv - const pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t) | |
16 | # * v - pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t) | |
17 | # * i - base type (int/s64/long) | |
18 | # * p - pointer to base type (int/s64/long) | |
19 | # | |
20 | read l cv | |
21 | set s v i | |
22 | add vRF i v | |
23 | sub vRF i v | |
24 | inc vRF v | |
25 | dec vRF v | |
26 | and vF i v | |
27 | andnot vF i v | |
28 | or vF i v | |
29 | xor vF i v | |
1d78814d | 30 | xchg I v i:new |
ace9bad4 MR |
31 | cmpxchg I v i:old i:new |
32 | try_cmpxchg B v p:old i:new | |
33 | sub_and_test b i v | |
34 | dec_and_test b v | |
35 | inc_and_test b v | |
e5ab9eff | 36 | add_negative B i v |
ace9bad4 MR |
37 | add_unless fb v i:a i:u |
38 | inc_not_zero b v | |
39 | inc_unless_negative b v | |
40 | dec_unless_positive b v | |
41 | dec_if_positive i v |