1181847Sjkim/*- 2182393Sjkim * Test 0021: BPF_JMP+BPF_JGE+BPF_X 3181847Sjkim * 4181847Sjkim * $FreeBSD$ 5181847Sjkim */ 6181847Sjkim 7181847Sjkim/* BPF program */ 8181847Sjkimstruct bpf_insn pc[] = { 9182393Sjkim BPF_STMT(BPF_LD+BPF_IMM, 0x01234567), 10182393Sjkim BPF_STMT(BPF_LDX+BPF_IMM, 0x01234568), 11182393Sjkim BPF_JUMP(BPF_JMP+BPF_JGE+BPF_X, 0, 3, 0), 12182393Sjkim BPF_STMT(BPF_LDX+BPF_IMM, 0x01234567), 13182393Sjkim BPF_JUMP(BPF_JMP+BPF_JGE+BPF_X, 0, 2, 1), 14182393Sjkim BPF_STMT(BPF_LD+BPF_IMM, 0xdeadc0de), 15181847Sjkim BPF_STMT(BPF_RET+BPF_A, 0), 16182393Sjkim BPF_STMT(BPF_LDX+BPF_IMM, 0x01234566), 17182393Sjkim BPF_JUMP(BPF_JMP+BPF_JGE+BPF_X, 0, 0, 1), 18182393Sjkim BPF_STMT(BPF_LD+BPF_IMM, 0xc0decafe), 19181847Sjkim BPF_STMT(BPF_RET+BPF_A, 0), 20181847Sjkim}; 21181847Sjkim 22181847Sjkim/* Packet */ 23181847Sjkimu_char pkt[] = { 24181847Sjkim 0x00, 25181847Sjkim}; 26181847Sjkim 27181847Sjkim/* Packet length seen on wire */ 28181847Sjkimu_int wirelen = sizeof(pkt); 29181847Sjkim 30181847Sjkim/* Packet length passed on buffer */ 31181847Sjkimu_int buflen = sizeof(pkt); 32181847Sjkim 33181847Sjkim/* Invalid instruction */ 34181847Sjkimint invalid = 0; 35181847Sjkim 36181847Sjkim/* Expected return value */ 37181847Sjkimu_int expect = 0xc0decafe; 38181847Sjkim 39182393Sjkim/* Expected signal */ 40181847Sjkimint expect_signal = 0; 41