1*74579d8dSLorenzo Stoakes /* SPDX-License-Identifier: GPL-2.0 */ 2*74579d8dSLorenzo Stoakes #define DECLARE_PER_CPU(type, val) extern type val 3*74579d8dSLorenzo Stoakes #define DEFINE_PER_CPU(type, val) type val 4*74579d8dSLorenzo Stoakes 5*74579d8dSLorenzo Stoakes #define __get_cpu_var(var) var 6*74579d8dSLorenzo Stoakes #define this_cpu_ptr(var) var 7*74579d8dSLorenzo Stoakes #define this_cpu_read(var) var 8*74579d8dSLorenzo Stoakes #define this_cpu_xchg(var, val) uatomic_xchg(&var, val) 9*74579d8dSLorenzo Stoakes #define this_cpu_cmpxchg(var, old, new) uatomic_cmpxchg(&var, old, new) 10*74579d8dSLorenzo Stoakes #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); (ptr); }) 11*74579d8dSLorenzo Stoakes #define per_cpu(var, cpu) (*per_cpu_ptr(&(var), cpu)) 12