Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / include / uapi / linux / bpf_common.h
1 #ifndef _UAPI__LINUX_BPF_COMMON_H__
2 #define _UAPI__LINUX_BPF_COMMON_H__
3
4 /* Instruction classes */
5 #define BPF_CLASS(code) ((code) & 0x07)
6 #define         BPF_LD          0x00
7 #define         BPF_LDX         0x01
8 #define         BPF_ST          0x02
9 #define         BPF_STX         0x03
10 #define         BPF_ALU         0x04
11 #define         BPF_JMP         0x05
12 #define         BPF_RET         0x06
13 #define         BPF_MISC        0x07
14
15 /* ld/ldx fields */
16 #define BPF_SIZE(code)  ((code) & 0x18)
17 #define         BPF_W           0x00
18 #define         BPF_H           0x08
19 #define         BPF_B           0x10
20 #define BPF_MODE(code)  ((code) & 0xe0)
21 #define         BPF_IMM         0x00
22 #define         BPF_ABS         0x20
23 #define         BPF_IND         0x40
24 #define         BPF_MEM         0x60
25 #define         BPF_LEN         0x80
26 #define         BPF_MSH         0xa0
27
28 /* alu/jmp fields */
29 #define BPF_OP(code)    ((code) & 0xf0)
30 #define         BPF_ADD         0x00
31 #define         BPF_SUB         0x10
32 #define         BPF_MUL         0x20
33 #define         BPF_DIV         0x30
34 #define         BPF_OR          0x40
35 #define         BPF_AND         0x50
36 #define         BPF_LSH         0x60
37 #define         BPF_RSH         0x70
38 #define         BPF_NEG         0x80
39 #define         BPF_MOD         0x90
40 #define         BPF_XOR         0xa0
41
42 #define         BPF_JA          0x00
43 #define         BPF_JEQ         0x10
44 #define         BPF_JGT         0x20
45 #define         BPF_JGE         0x30
46 #define         BPF_JSET        0x40
47 #define BPF_SRC(code)   ((code) & 0x08)
48 #define         BPF_K           0x00
49 #define         BPF_X           0x08
50
51 #ifndef BPF_MAXINSNS
52 #define BPF_MAXINSNS 4096
53 #endif
54
55 #endif /* _UAPI__LINUX_BPF_COMMON_H__ */