0001
0002 #ifndef _UAPI__LINUX_BPF_COMMON_H__
0003 #define _UAPI__LINUX_BPF_COMMON_H__
0004
0005
0006 #define BPF_CLASS(code) ((code) & 0x07)
0007 #define BPF_LD 0x00
0008 #define BPF_LDX 0x01
0009 #define BPF_ST 0x02
0010 #define BPF_STX 0x03
0011 #define BPF_ALU 0x04
0012 #define BPF_JMP 0x05
0013 #define BPF_RET 0x06
0014 #define BPF_MISC 0x07
0015
0016
0017 #define BPF_SIZE(code) ((code) & 0x18)
0018 #define BPF_W 0x00
0019 #define BPF_H 0x08
0020 #define BPF_B 0x10
0021
0022 #define BPF_MODE(code) ((code) & 0xe0)
0023 #define BPF_IMM 0x00
0024 #define BPF_ABS 0x20
0025 #define BPF_IND 0x40
0026 #define BPF_MEM 0x60
0027 #define BPF_LEN 0x80
0028 #define BPF_MSH 0xa0
0029
0030
0031 #define BPF_OP(code) ((code) & 0xf0)
0032 #define BPF_ADD 0x00
0033 #define BPF_SUB 0x10
0034 #define BPF_MUL 0x20
0035 #define BPF_DIV 0x30
0036 #define BPF_OR 0x40
0037 #define BPF_AND 0x50
0038 #define BPF_LSH 0x60
0039 #define BPF_RSH 0x70
0040 #define BPF_NEG 0x80
0041 #define BPF_MOD 0x90
0042 #define BPF_XOR 0xa0
0043
0044 #define BPF_JA 0x00
0045 #define BPF_JEQ 0x10
0046 #define BPF_JGT 0x20
0047 #define BPF_JGE 0x30
0048 #define BPF_JSET 0x40
0049 #define BPF_SRC(code) ((code) & 0x08)
0050 #define BPF_K 0x00
0051 #define BPF_X 0x08
0052
0053 #ifndef BPF_MAXINSNS
0054 #define BPF_MAXINSNS 4096
0055 #endif
0056
0057 #endif