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