xref: /OK3568_Linux_fs/kernel/scripts/atomic/atomics.tbl (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# name	meta	args...
2*4882a593Smuzhiyun#
3*4882a593Smuzhiyun# Where meta contains a string of variants to generate.
4*4882a593Smuzhiyun# Upper-case implies _{acquire,release,relaxed} variants.
5*4882a593Smuzhiyun# Valid meta values are:
6*4882a593Smuzhiyun# * B/b	- bool: returns bool
7*4882a593Smuzhiyun# * v	- void: returns void
8*4882a593Smuzhiyun# * I/i	- int: returns base type
9*4882a593Smuzhiyun# * R	- return: returns base type (has _return variants)
10*4882a593Smuzhiyun# * F/f	- fetch: returns base type (has fetch_ variants)
11*4882a593Smuzhiyun# * l	- load: returns base type (has _acquire order variant)
12*4882a593Smuzhiyun# * s	- store: returns void (has _release order variant)
13*4882a593Smuzhiyun#
14*4882a593Smuzhiyun# Where args contains list of type[:name], where type is:
15*4882a593Smuzhiyun# * cv	- const pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
16*4882a593Smuzhiyun# * v	- pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
17*4882a593Smuzhiyun# * i	- base type (int/s64/long)
18*4882a593Smuzhiyun# * p	- pointer to base type (int/s64/long)
19*4882a593Smuzhiyun#
20*4882a593Smuzhiyunread			l	cv
21*4882a593Smuzhiyunset			s	v	i
22*4882a593Smuzhiyunadd			vRF	i	v
23*4882a593Smuzhiyunsub			vRF	i	v
24*4882a593Smuzhiyuninc			vRF	v
25*4882a593Smuzhiyundec			vRF	v
26*4882a593Smuzhiyunand			vF	i	v
27*4882a593Smuzhiyunandnot			vF	i	v
28*4882a593Smuzhiyunor			vF	i	v
29*4882a593Smuzhiyunxor			vF	i	v
30*4882a593Smuzhiyunxchg			I	v	i
31*4882a593Smuzhiyuncmpxchg			I	v	i:old	i:new
32*4882a593Smuzhiyuntry_cmpxchg		B	v	p:old	i:new
33*4882a593Smuzhiyunsub_and_test		b	i	v
34*4882a593Smuzhiyundec_and_test		b	v
35*4882a593Smuzhiyuninc_and_test		b	v
36*4882a593Smuzhiyunadd_negative		b	i	v
37*4882a593Smuzhiyunadd_unless		fb	v	i:a	i:u
38*4882a593Smuzhiyuninc_not_zero		b	v
39*4882a593Smuzhiyuninc_unless_negative	b	v
40*4882a593Smuzhiyundec_unless_positive	b	v
41*4882a593Smuzhiyundec_if_positive		i	v
42