On Mon, Jan 23, 2023 at 6:52 AM Eduard Zingerman <eddyz87@xxxxxxxxx> 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@xxxxxxxxx> > --- > 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 >