1/*-
2 * Test 0022:	BPF_JMP+BPF_JEQ+BPF_X
3 *
4 * $FreeBSD$
5 */
6
7/* BPF program */
8static struct bpf_insn	pc[] = {
9	BPF_STMT(BPF_LD+BPF_IMM, 0x01234567),
10	BPF_STMT(BPF_LDX+BPF_IMM, 0x01234568),
11	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_X, 0, 3, 0),
12	BPF_STMT(BPF_LDX+BPF_IMM, 0x01234567),
13	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_X, 0, 2, 1),
14	BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de),
15	BPF_STMT(BPF_RET+BPF_A, 0),
16	BPF_STMT(BPF_LDX+BPF_IMM, 0x01234566),
17	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_X, 0, 1, 0),
18	BPF_STMT(BPF_LD+BPF_IMM, 0xc0decafe),
19	BPF_STMT(BPF_RET+BPF_A, 0),
20};
21
22/* Packet */
23static u_char	pkt[] = {
24	0x00,
25};
26
27/* Packet length seen on wire */
28static u_int	wirelen =	sizeof(pkt);
29
30/* Packet length passed on buffer */
31static u_int	buflen =	sizeof(pkt);
32
33/* Invalid instruction */
34static int	invalid =	0;
35
36/* Expected return value */
37static u_int	expect =	0xc0decafe;
38
39/* Expected signal */
40static int	expect_signal =	0;
41