Message ID | 20230123145148.2791939-5-eddyz87@gmail.com (mailing list archive) |
---|---|
State | RFC |
Delegated to: | BPF |
Headers | show |
Series | test_verifier tests migration to inline assembly | expand |
On Mon, Jan 23, 2023 at 6:52 AM Eduard Zingerman <eddyz87@gmail.com> wrote: > > A convenience macro to allow the following usage: > > #include <linux/filter.h> > > ... > asm volatile ( > ... > ".8byte %[raw_insn];" > ... > : > : __imm_insn(raw_insn, BPF_RAW_INSN(...)) > : __clobber_all); > Ah, now I see why it's __imm_insns. Makes sense. Hopefully this won't be used very frequently anyways. > Signed-off-by: Eduard Zingerman <eddyz87@gmail.com> > --- > tools/testing/selftests/bpf/progs/bpf_misc.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/testing/selftests/bpf/progs/bpf_misc.h b/tools/testing/selftests/bpf/progs/bpf_misc.h > index e742a935de98..832bec4818d9 100644 > --- a/tools/testing/selftests/bpf/progs/bpf_misc.h > +++ b/tools/testing/selftests/bpf/progs/bpf_misc.h > @@ -61,6 +61,7 @@ > #define __clobber_common "r0", "r1", "r2", "r3", "r4", "r5", "memory" > #define __imm(name) [name]"i"(name) > #define __imm_addr(name) [name]"i"(&name) > +#define __imm_insn(name, expr) [name]"i"(*(long *)&(expr)) > > #if defined(__TARGET_ARCH_x86) > #define SYSCALL_WRAPPER 1 > -- > 2.39.0 >
diff --git a/tools/testing/selftests/bpf/progs/bpf_misc.h b/tools/testing/selftests/bpf/progs/bpf_misc.h index e742a935de98..832bec4818d9 100644 --- a/tools/testing/selftests/bpf/progs/bpf_misc.h +++ b/tools/testing/selftests/bpf/progs/bpf_misc.h @@ -61,6 +61,7 @@ #define __clobber_common "r0", "r1", "r2", "r3", "r4", "r5", "memory" #define __imm(name) [name]"i"(name) #define __imm_addr(name) [name]"i"(&name) +#define __imm_insn(name, expr) [name]"i"(*(long *)&(expr)) #if defined(__TARGET_ARCH_x86) #define SYSCALL_WRAPPER 1
A convenience macro to allow the following usage: #include <linux/filter.h> ... asm volatile ( ... ".8byte %[raw_insn];" ... : : __imm_insn(raw_insn, BPF_RAW_INSN(...)) : __clobber_all); Signed-off-by: Eduard Zingerman <eddyz87@gmail.com> --- tools/testing/selftests/bpf/progs/bpf_misc.h | 1 + 1 file changed, 1 insertion(+)