162306a36Sopenharmony_ci# name	meta	args...
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Where meta contains a string of variants to generate.
462306a36Sopenharmony_ci# Upper-case implies _{acquire,release,relaxed} variants.
562306a36Sopenharmony_ci# Valid meta values are:
662306a36Sopenharmony_ci# * B/b	- bool: returns bool
762306a36Sopenharmony_ci# * v	- void: returns void
862306a36Sopenharmony_ci# * I/i	- int: returns base type
962306a36Sopenharmony_ci# * R	- return: returns base type (has _return variants)
1062306a36Sopenharmony_ci# * F/f	- fetch: returns base type (has fetch_ variants)
1162306a36Sopenharmony_ci# * l	- load: returns base type (has _acquire order variant)
1262306a36Sopenharmony_ci# * s	- store: returns void (has _release order variant)
1362306a36Sopenharmony_ci#
1462306a36Sopenharmony_ci# Where args contains list of type[:name], where type is:
1562306a36Sopenharmony_ci# * cv	- const pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
1662306a36Sopenharmony_ci# * v	- pointer to atomic base type (atomic_t/atomic64_t/atomic_long_t)
1762306a36Sopenharmony_ci# * i	- base type (int/s64/long)
1862306a36Sopenharmony_ci# * p	- pointer to base type (int/s64/long)
1962306a36Sopenharmony_ci#
2062306a36Sopenharmony_ciread			l	cv
2162306a36Sopenharmony_ciset			s	v	i
2262306a36Sopenharmony_ciadd			vRF	i	v
2362306a36Sopenharmony_cisub			vRF	i	v
2462306a36Sopenharmony_ciinc			vRF	v
2562306a36Sopenharmony_cidec			vRF	v
2662306a36Sopenharmony_ciand			vF	i	v
2762306a36Sopenharmony_ciandnot			vF	i	v
2862306a36Sopenharmony_cior			vF	i	v
2962306a36Sopenharmony_cixor			vF	i	v
3062306a36Sopenharmony_cixchg			I	v	i:new
3162306a36Sopenharmony_cicmpxchg			I	v	i:old	i:new
3262306a36Sopenharmony_citry_cmpxchg		B	v	p:old	i:new
3362306a36Sopenharmony_cisub_and_test		b	i	v
3462306a36Sopenharmony_cidec_and_test		b	v
3562306a36Sopenharmony_ciinc_and_test		b	v
3662306a36Sopenharmony_ciadd_negative		B	i	v
3762306a36Sopenharmony_ciadd_unless		fb	v	i:a	i:u
3862306a36Sopenharmony_ciinc_not_zero		b	v
3962306a36Sopenharmony_ciinc_unless_negative	b	v
4062306a36Sopenharmony_cidec_unless_positive	b	v
4162306a36Sopenharmony_cidec_if_positive		i	v
42