![]() |
|
|||
0001 /* SPDX-License-Identifier: GPL-2.0 */ 0002 /* 0003 * BPF Jit compiler defines 0004 * 0005 * Copyright IBM Corp. 2012,2015 0006 * 0007 * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> 0008 * Michael Holzheu <holzheu@linux.vnet.ibm.com> 0009 */ 0010 0011 #ifndef __ARCH_S390_NET_BPF_JIT_H 0012 #define __ARCH_S390_NET_BPF_JIT_H 0013 0014 #ifndef __ASSEMBLY__ 0015 0016 #include <linux/filter.h> 0017 #include <linux/types.h> 0018 0019 #endif /* __ASSEMBLY__ */ 0020 0021 /* 0022 * Stackframe layout (packed stack): 0023 * 0024 * ^ high 0025 * +---------------+ | 0026 * | old backchain | | 0027 * +---------------+ | 0028 * | r15 - r6 | | 0029 * +---------------+ | 0030 * | 4 byte align | | 0031 * | tail_call_cnt | | 0032 * BFP -> +===============+ | 0033 * | | | 0034 * | BPF stack | | 0035 * | | | 0036 * R15+160 -> +---------------+ | 0037 * | new backchain | | 0038 * R15+152 -> +---------------+ | 0039 * | + 152 byte SA | | 0040 * R15 -> +---------------+ + low 0041 * 0042 * We get 160 bytes stack space from calling function, but only use 0043 * 12 * 8 byte for old backchain, r15..r6, and tail_call_cnt. 0044 * 0045 * The stack size used by the BPF program ("BPF stack" above) is passed 0046 * via "aux->stack_depth". 0047 */ 0048 #define STK_SPACE_ADD (160) 0049 #define STK_160_UNUSED (160 - 12 * 8) 0050 #define STK_OFF (STK_SPACE_ADD - STK_160_UNUSED) 0051 0052 #define STK_OFF_R6 (160 - 11 * 8) /* Offset of r6 on stack */ 0053 #define STK_OFF_TCCNT (160 - 12 * 8) /* Offset of tail_call_cnt on stack */ 0054 0055 #endif /* __ARCH_S390_NET_BPF_JIT_H */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |
![]() ![]() |