xref: /openbmc/linux/scripts/atomic/atomics.tbl (revision 1d78814d)
1ace9bad4SMark Rutland# name	meta	args...
2ace9bad4SMark Rutland#
3ace9bad4SMark Rutland# Where meta contains a string of variants to generate.
4ace9bad4SMark Rutland# Upper-case implies _{acquire,release,relaxed} variants.
5ace9bad4SMark Rutland# Valid meta values are:
6ace9bad4SMark Rutland# * B/b	- bool: returns bool
7ace9bad4SMark Rutland# * v	- void: returns void
8ace9bad4SMark Rutland# * I/i	- int: returns base type
9ace9bad4SMark Rutland# * R	- return: returns base type (has _return variants)
10ace9bad4SMark Rutland# * F/f	- fetch: returns base type (has fetch_ variants)
11ace9bad4SMark Rutland# * l	- load: returns base type (has _acquire order variant)
12ace9bad4SMark Rutland# * s	- store: returns void (has _release order variant)
13ace9bad4SMark Rutland#
14ace9bad4SMark Rutland# Where args contains list of type[:name], where type is:
15ace9bad4SMark Rutland# * cv	- const pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
16ace9bad4SMark Rutland# * v	- pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
17ace9bad4SMark Rutland# * i	- base type (int/s64/long)
18ace9bad4SMark Rutland# * p	- pointer to base type (int/s64/long)
19ace9bad4SMark Rutland#
20ace9bad4SMark Rutlandread			l	cv
21ace9bad4SMark Rutlandset			s	v	i
22ace9bad4SMark Rutlandadd			vRF	i	v
23ace9bad4SMark Rutlandsub			vRF	i	v
24ace9bad4SMark Rutlandinc			vRF	v
25ace9bad4SMark Rutlanddec			vRF	v
26ace9bad4SMark Rutlandand			vF	i	v
27ace9bad4SMark Rutlandandnot			vF	i	v
28ace9bad4SMark Rutlandor			vF	i	v
29ace9bad4SMark Rutlandxor			vF	i	v
30*1d78814dSMark Rutlandxchg			I	v	i:new
31ace9bad4SMark Rutlandcmpxchg			I	v	i:old	i:new
32ace9bad4SMark Rutlandtry_cmpxchg		B	v	p:old	i:new
33ace9bad4SMark Rutlandsub_and_test		b	i	v
34ace9bad4SMark Rutlanddec_and_test		b	v
35ace9bad4SMark Rutlandinc_and_test		b	v
36e5ab9effSThomas Gleixneradd_negative		B	i	v
37ace9bad4SMark Rutlandadd_unless		fb	v	i:a	i:u
38ace9bad4SMark Rutlandinc_not_zero		b	v
39ace9bad4SMark Rutlandinc_unless_negative	b	v
40ace9bad4SMark Rutlanddec_unless_positive	b	v
41ace9bad4SMark Rutlanddec_if_positive		i	v
42