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