Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * BPF Jit compiler defines
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  * Copyright IBM Corp. 2012,2015
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  *	      Michael Holzheu <holzheu@linux.vnet.ibm.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #ifndef __ARCH_S390_NET_BPF_JIT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define __ARCH_S390_NET_BPF_JIT_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #ifndef __ASSEMBLY__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #include <linux/filter.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #endif /* __ASSEMBLY__ */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)  * Stackframe layout (packed stack):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24)  *				    ^ high
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)  *	      +---------------+     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)  *	      | old backchain |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)  *	      +---------------+     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)  *	      |   r15 - r6    |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)  *	      +---------------+     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)  *	      | 4 byte align  |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)  *	      | tail_call_cnt |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)  * BFP	   -> +===============+     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)  *	      |		      |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)  *	      |   BPF stack   |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)  *	      |		      |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)  * R15+160 -> +---------------+     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)  *	      | new backchain |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)  * R15+152 -> +---------------+     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)  *	      | + 152 byte SA |     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40)  * R15	   -> +---------------+     + low
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)  * We get 160 bytes stack space from calling function, but only use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43)  * 12 * 8 byte for old backchain, r15..r6, and tail_call_cnt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)  * The stack size used by the BPF program ("BPF stack" above) is passed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)  * via "aux->stack_depth".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) #define STK_SPACE_ADD	(160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) #define STK_160_UNUSED	(160 - 12 * 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #define STK_OFF		(STK_SPACE_ADD - STK_160_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) #define STK_OFF_R6	(160 - 11 * 8)	/* Offset of r6 on stack */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) #define STK_OFF_TCCNT	(160 - 12 * 8)	/* Offset of tail_call_cnt on stack */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) #endif /* __ARCH_S390_NET_BPF_JIT_H */