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