diff options
Diffstat (limited to 'arch/s390/net/bpf_jit.h')
-rw-r--r-- | arch/s390/net/bpf_jit.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/arch/s390/net/bpf_jit.h b/arch/s390/net/bpf_jit.h new file mode 100644 index 000000000..7822ea92e --- /dev/null +++ b/arch/s390/net/bpf_jit.h @@ -0,0 +1,55 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * BPF Jit compiler defines + * + * Copyright IBM Corp. 2012,2015 + * + * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> + * Michael Holzheu <holzheu@linux.vnet.ibm.com> + */ + +#ifndef __ARCH_S390_NET_BPF_JIT_H +#define __ARCH_S390_NET_BPF_JIT_H + +#ifndef __ASSEMBLY__ + +#include <linux/filter.h> +#include <linux/types.h> + +#endif /* __ASSEMBLY__ */ + +/* + * Stackframe layout (packed stack): + * + * ^ high + * +---------------+ | + * | old backchain | | + * +---------------+ | + * | r15 - r6 | | + * +---------------+ | + * | 4 byte align | | + * | tail_call_cnt | | + * BFP -> +===============+ | + * | | | + * | BPF stack | | + * | | | + * R15+160 -> +---------------+ | + * | new backchain | | + * R15+152 -> +---------------+ | + * | + 152 byte SA | | + * R15 -> +---------------+ + low + * + * We get 160 bytes stack space from calling function, but only use + * 12 * 8 byte for old backchain, r15..r6, and tail_call_cnt. + * + * The stack size used by the BPF program ("BPF stack" above) is passed + * via "aux->stack_depth". + */ +#define STK_SPACE_ADD (160) +#define STK_160_UNUSED (160 - 12 * 8) +#define STK_OFF (STK_SPACE_ADD - STK_160_UNUSED) + +#define STK_OFF_R6 (160 - 11 * 8) /* Offset of r6 on stack */ +#define STK_OFF_TCCNT (160 - 12 * 8) /* Offset of tail_call_cnt on stack */ + +#endif /* __ARCH_S390_NET_BPF_JIT_H */ |