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