From b5fd066153c40a70a29caa1ea7987723ab687763 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Tue, 16 Jan 2024 17:00:02 -0500 Subject: Move c_src dirs back to toplevel We just wanted c sourcefiles out of the top level, not c source directories. Signed-off-by: Kent Overstreet --- c_src/include/linux/percpu.h | 191 ------------------------------------------- 1 file changed, 191 deletions(-) delete mode 100644 c_src/include/linux/percpu.h (limited to 'c_src/include/linux/percpu.h') diff --git a/c_src/include/linux/percpu.h b/c_src/include/linux/percpu.h deleted file mode 100644 index 740d8332..00000000 --- a/c_src/include/linux/percpu.h +++ /dev/null @@ -1,191 +0,0 @@ -#ifndef __TOOLS_LINUX_PERCPU_H -#define __TOOLS_LINUX_PERCPU_H - -#include - -#define __percpu - -#define free_percpu(percpu) free(percpu) - -#define __alloc_percpu_gfp(size, align, gfp) calloc(1, size) -#define __alloc_percpu(size, align) calloc(1, size) - -#define alloc_percpu_gfp(type, gfp) \ - (typeof(type) __percpu *)__alloc_percpu_gfp(sizeof(type), \ - __alignof__(type), gfp) -#define alloc_percpu(type) \ - (typeof(type) __percpu *)__alloc_percpu(sizeof(type), \ - __alignof__(type)) - -#define __verify_pcpu_ptr(ptr) - -#define per_cpu_ptr(ptr, cpu) (ptr) -#define raw_cpu_ptr(ptr) (ptr) -#define this_cpu_ptr(ptr) raw_cpu_ptr(ptr) - -#define __pcpu_size_call_return(stem, variable) \ -({ \ - typeof(variable) pscr_ret__; \ - __verify_pcpu_ptr(&(variable)); \ - switch(sizeof(variable)) { \ - case 1: pscr_ret__ = stem##1(variable); break; \ - case 2: pscr_ret__ = stem##2(variable); break; \ - case 4: pscr_ret__ = stem##4(variable); break; \ - case 8: pscr_ret__ = stem##8(variable); break; \ - default: \ - __bad_size_call_parameter(); break; \ - } \ - pscr_ret__; \ -}) - -#define __pcpu_size_call_return2(stem, variable, ...) \ -({ \ - typeof(variable) pscr2_ret__; \ - __verify_pcpu_ptr(&(variable)); \ - switch(sizeof(variable)) { \ - case 1: pscr2_ret__ = stem##1(variable, __VA_ARGS__); break; \ - case 2: pscr2_ret__ = stem##2(variable, __VA_ARGS__); break; \ - case 4: pscr2_ret__ = stem##4(variable, __VA_ARGS__); break; \ - case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \ - default: \ - __bad_size_call_parameter(); break; \ - } \ - pscr2_ret__; \ -}) - -/* - * Special handling for cmpxchg_double. cmpxchg_double is passed two - * percpu variables. The first has to be aligned to a double word - * boundary and the second has to follow directly thereafter. - * We enforce this on all architectures even if they don't support - * a double cmpxchg instruction, since it's a cheap requirement, and it - * avoids breaking the requirement for architectures with the instruction. - */ -#define __pcpu_double_call_return_bool(stem, pcp1, pcp2, ...) \ -({ \ - bool pdcrb_ret__; \ - __verify_pcpu_ptr(&(pcp1)); \ - BUILD_BUG_ON(sizeof(pcp1) != sizeof(pcp2)); \ - VM_BUG_ON((unsigned long)(&(pcp1)) % (2 * sizeof(pcp1))); \ - VM_BUG_ON((unsigned long)(&(pcp2)) != \ - (unsigned long)(&(pcp1)) + sizeof(pcp1)); \ - switch(sizeof(pcp1)) { \ - case 1: pdcrb_ret__ = stem##1(pcp1, pcp2, __VA_ARGS__); break; \ - case 2: pdcrb_ret__ = stem##2(pcp1, pcp2, __VA_ARGS__); break; \ - case 4: pdcrb_ret__ = stem##4(pcp1, pcp2, __VA_ARGS__); break; \ - case 8: pdcrb_ret__ = stem##8(pcp1, pcp2, __VA_ARGS__); break; \ - default: \ - __bad_size_call_parameter(); break; \ - } \ - pdcrb_ret__; \ -}) - -#define __pcpu_size_call(stem, variable, ...) \ -do { \ - __verify_pcpu_ptr(&(variable)); \ - switch(sizeof(variable)) { \ - case 1: stem##1(variable, __VA_ARGS__);break; \ - case 2: stem##2(variable, __VA_ARGS__);break; \ - case 4: stem##4(variable, __VA_ARGS__);break; \ - case 8: stem##8(variable, __VA_ARGS__);break; \ - default: \ - __bad_size_call_parameter();break; \ - } \ -} while (0) - -#define raw_cpu_read(pcp) __pcpu_size_call_return(raw_cpu_read_, pcp) -#define raw_cpu_write(pcp, val) __pcpu_size_call(raw_cpu_write_, pcp, val) -#define raw_cpu_add(pcp, val) __pcpu_size_call(raw_cpu_add_, pcp, val) -#define raw_cpu_and(pcp, val) __pcpu_size_call(raw_cpu_and_, pcp, val) -#define raw_cpu_or(pcp, val) __pcpu_size_call(raw_cpu_or_, pcp, val) -#define raw_cpu_add_return(pcp, val) __pcpu_size_call_return2(raw_cpu_add_return_, pcp, val) -#define raw_cpu_xchg(pcp, nval) __pcpu_size_call_return2(raw_cpu_xchg_, pcp, nval) -#define raw_cpu_cmpxchg(pcp, oval, nval) \ - __pcpu_size_call_return2(raw_cpu_cmpxchg_, pcp, oval, nval) -#define raw_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \ - __pcpu_double_call_return_bool(raw_cpu_cmpxchg_double_, pcp1, pcp2, oval1, oval2, nval1, nval2) - -#define raw_cpu_sub(pcp, val) raw_cpu_add(pcp, -(val)) -#define raw_cpu_inc(pcp) raw_cpu_add(pcp, 1) -#define raw_cpu_dec(pcp) raw_cpu_sub(pcp, 1) -#define raw_cpu_sub_return(pcp, val) raw_cpu_add_return(pcp, -(typeof(pcp))(val)) -#define raw_cpu_inc_return(pcp) raw_cpu_add_return(pcp, 1) -#define raw_cpu_dec_return(pcp) raw_cpu_add_return(pcp, -1) - -#define __this_cpu_read(pcp) \ -({ \ - raw_cpu_read(pcp); \ -}) - -#define __this_cpu_write(pcp, val) \ -({ \ - raw_cpu_write(pcp, val); \ -}) - -#define __this_cpu_add(pcp, val) \ -({ \ - raw_cpu_add(pcp, val); \ -}) - -#define __this_cpu_and(pcp, val) \ -({ \ - raw_cpu_and(pcp, val); \ -}) - -#define __this_cpu_or(pcp, val) \ -({ \ - raw_cpu_or(pcp, val); \ -}) - -#define __this_cpu_add_return(pcp, val) \ -({ \ - raw_cpu_add_return(pcp, val); \ -}) - -#define __this_cpu_xchg(pcp, nval) \ -({ \ - raw_cpu_xchg(pcp, nval); \ -}) - -#define __this_cpu_cmpxchg(pcp, oval, nval) \ -({ \ - raw_cpu_cmpxchg(pcp, oval, nval); \ -}) - -#define __this_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \ - raw_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2); \ -}) - -#define __this_cpu_sub(pcp, val) __this_cpu_add(pcp, -(typeof(pcp))(val)) -#define __this_cpu_inc(pcp) __this_cpu_add(pcp, 1) -#define __this_cpu_dec(pcp) __this_cpu_sub(pcp, 1) -#define __this_cpu_sub_return(pcp, val) __this_cpu_add_return(pcp, -(typeof(pcp))(val)) -#define __this_cpu_inc_return(pcp) __this_cpu_add_return(pcp, 1) -#define __this_cpu_dec_return(pcp) __this_cpu_add_return(pcp, -1) - -#define this_cpu_read(pcp) ((pcp)) -#define this_cpu_write(pcp, val) ((pcp) = val) -#define this_cpu_add(pcp, val) ((pcp) += val) -#define this_cpu_and(pcp, val) ((pcp) &= val) -#define this_cpu_or(pcp, val) ((pcp) |= val) -#define this_cpu_add_return(pcp, val) ((pcp) += val) -#define this_cpu_xchg(pcp, nval) \ -({ \ - typeof(pcp) _r = (pcp); \ - (pcp) = (nval); \ - _r; \ -}) - -#define this_cpu_cmpxchg(pcp, oval, nval) \ - __pcpu_size_call_return2(this_cpu_cmpxchg_, pcp, oval, nval) -#define this_cpu_cmpxchg_double(pcp1, pcp2, oval1, oval2, nval1, nval2) \ - __pcpu_double_call_return_bool(this_cpu_cmpxchg_double_, pcp1, pcp2, oval1, oval2, nval1, nval2) - -#define this_cpu_sub(pcp, val) this_cpu_add(pcp, -(typeof(pcp))(val)) -#define this_cpu_inc(pcp) this_cpu_add(pcp, 1) -#define this_cpu_dec(pcp) this_cpu_sub(pcp, 1) -#define this_cpu_sub_return(pcp, val) this_cpu_add_return(pcp, -(typeof(pcp))(val)) -#define this_cpu_inc_return(pcp) this_cpu_add_return(pcp, 1) -#define this_cpu_dec_return(pcp) this_cpu_add_return(pcp, -1) - -#endif /* __TOOLS_LINUX_PERCPU_H */ -- cgit v1.2.3