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 30 xchg I v i:new 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 36 add_negative B i v 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
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.