OSDN Git Service

Check in released NDK version r4.
[android-x86/prebuilt.git] / ndk / android-ndk-r4 / darwin / platforms / android-8 / arch-x86 / usr / include / linux / filter.h
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef __LINUX_FILTER_H__
13 #define __LINUX_FILTER_H__
14
15 #include <linux/compiler.h>
16 #include <linux/types.h>
17
18 #define BPF_MAJOR_VERSION 1
19 #define BPF_MINOR_VERSION 1
20
21 struct sock_filter
22 {
23  __u16 code;
24  __u8 jt;
25  __u8 jf;
26  __u32 k;
27 };
28
29 struct sock_fprog
30 {
31  unsigned short len;
32  struct sock_filter __user *filter;
33 };
34
35 #define BPF_CLASS(code) ((code) & 0x07)
36 #define BPF_LD 0x00
37 #define BPF_LDX 0x01
38 #define BPF_ST 0x02
39 #define BPF_STX 0x03
40 #define BPF_ALU 0x04
41 #define BPF_JMP 0x05
42 #define BPF_RET 0x06
43 #define BPF_MISC 0x07
44
45 #define BPF_SIZE(code) ((code) & 0x18)
46 #define BPF_W 0x00
47 #define BPF_H 0x08
48 #define BPF_B 0x10
49 #define BPF_MODE(code) ((code) & 0xe0)
50 #define BPF_IMM 0x00
51 #define BPF_ABS 0x20
52 #define BPF_IND 0x40
53 #define BPF_MEM 0x60
54 #define BPF_LEN 0x80
55 #define BPF_MSH 0xa0
56
57 #define BPF_OP(code) ((code) & 0xf0)
58 #define BPF_ADD 0x00
59 #define BPF_SUB 0x10
60 #define BPF_MUL 0x20
61 #define BPF_DIV 0x30
62 #define BPF_OR 0x40
63 #define BPF_AND 0x50
64 #define BPF_LSH 0x60
65 #define BPF_RSH 0x70
66 #define BPF_NEG 0x80
67 #define BPF_JA 0x00
68 #define BPF_JEQ 0x10
69 #define BPF_JGT 0x20
70 #define BPF_JGE 0x30
71 #define BPF_JSET 0x40
72 #define BPF_SRC(code) ((code) & 0x08)
73 #define BPF_K 0x00
74 #define BPF_X 0x08
75
76 #define BPF_RVAL(code) ((code) & 0x18)
77 #define BPF_A 0x10
78
79 #define BPF_MISCOP(code) ((code) & 0xf8)
80 #define BPF_TAX 0x00
81 #define BPF_TXA 0x80
82
83 #ifndef BPF_MAXINSNS
84 #define BPF_MAXINSNS 4096
85 #endif
86
87 #ifndef BPF_STMT
88 #define BPF_STMT(code, k) { (unsigned short)(code), 0, 0, k }
89 #endif
90 #ifndef BPF_JUMP
91 #define BPF_JUMP(code, k, jt, jf) { (unsigned short)(code), jt, jf, k }
92 #endif
93
94 #define BPF_MEMWORDS 16
95
96 #define SKF_AD_OFF (-0x1000)
97 #define SKF_AD_PROTOCOL 0
98 #define SKF_AD_PKTTYPE 4
99 #define SKF_AD_IFINDEX 8
100 #define SKF_AD_MAX 12
101 #define SKF_NET_OFF (-0x100000)
102 #define SKF_LL_OFF (-0x200000)
103
104 #endif