BPF_ABS
case BPF_LD | BPF_W | BPF_ABS:
case BPF_LD | BPF_H | BPF_ABS:
case BPF_LD | BPF_B | BPF_ABS:
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
[BPF_LD | BPF_ABS | BPF_B] = data_ld1,
[BPF_LD | BPF_ABS | BPF_H] = data_ld2,
[BPF_LD | BPF_ABS | BPF_W] = data_ld4,
if (BPF_MODE(insn.code) != BPF_ABS &&
if (BPF_MODE(insn.code) != BPF_ABS &&
(BPF_MODE(code) == BPF_ABS || BPF_MODE(code) == BPF_IND);
case BPF_LD | BPF_W | BPF_ABS:
case BPF_LD | BPF_H | BPF_ABS:
case BPF_LD | BPF_B | BPF_ABS:
case BPF_LD | BPF_W | BPF_ABS:
case BPF_LD | BPF_H | BPF_ABS:
case BPF_LD | BPF_B | BPF_ABS:
.code = BPF_LD | BPF_SIZE(SIZE) | BPF_ABS, \
case BPF_LD | BPF_W | BPF_ABS:
ftest->code = BPF_LDX | BPF_W | BPF_ABS;
[BPF_LD | BPF_ABS | BPF_B] = true,
[BPF_LD | BPF_ABS | BPF_H] = true,
[BPF_LD | BPF_ABS | BPF_W] = true,
if (BPF_MODE(insn->code) == BPF_ABS) {
(mode == BPF_ABS && insn->src_reg != BPF_REG_0)) {
if (mode == BPF_ABS || mode == BPF_IND) {
(BPF_MODE(insn->code) == BPF_ABS ||
case BPF_LD | BPF_ABS:
(BPF_MODE(code) == BPF_ABS || BPF_MODE(code) == BPF_IND))
if (mode == BPF_IND || mode == BPF_ABS)
case BPF_LD | BPF_W | BPF_ABS:
ftest->code = BPF_LDX | BPF_W | BPF_ABS;
case BPF_LD | BPF_W | BPF_ABS:
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, 0x40),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, 0x44),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x48),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x3e),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, 0x20),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, -1),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, SKF_LL_OFF + 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, SKF_LL_OFF + 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, SKF_LL_OFF + 0x3c),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, SKF_LL_OFF + 0x3d),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, SKF_LL_OFF + 0x3e),
BPF_STMT(BPF_LD | BPF_ABS | BPF_B, SKF_LL_OFF + 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, 0x22),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, 0x25),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, 0x3e),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, -1),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, SKF_LL_OFF + 0x3e),
BPF_STMT(BPF_LD | BPF_ABS | BPF_H, SKF_LL_OFF + 0x3e),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x1c),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x22),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x21),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x23),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x3c),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, 0x3f),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, -1),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, SKF_LL_OFF + 0x3c),
BPF_STMT(BPF_LD | BPF_ABS | BPF_W, SKF_LL_OFF + 0x3c),
insn[i] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS, SKF_AD_OFF +
insn[i] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS, SKF_AD_OFF +
insn[len - 3] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS, SKF_AD_OFF +
BPF_STMT(BPF_LD | BPF_W | BPF_ABS, 1000),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, SKF_LL_OFF),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, SKF_LL_OFF + 1),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, SKF_NET_OFF),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, SKF_NET_OFF + 1),
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 1),
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 2),
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 2),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 2),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 2),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 2),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 12),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 20),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 54),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 56),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 23),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 20),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 12),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 23),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 20),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 16),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 14),
insn[i] = __BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 0);
insn[i + 1] = __BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LDX | BPF_W | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_ABS, 0),
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
BPF_STMT(BPF_LD | BPF_W | BPF_ABS,
[BPF_LD | BPF_W | BPF_ABS] = true,
[BPF_LD | BPF_H | BPF_ABS] = true,
[BPF_LD | BPF_B | BPF_ABS] = true,
case BPF_LD | BPF_W | BPF_ABS:
case BPF_LD | BPF_H | BPF_ABS:
case BPF_LD | BPF_B | BPF_ABS:
case BPF_LD | BPF_ABS | BPF_W:
case BPF_LD | BPF_ABS | BPF_H:
case BPF_LD | BPF_ABS | BPF_B:
BPF_MODE(fp->code) == BPF_ABS &&
.code = BPF_LD | BPF_ABS | BPF_B,
case BPF_LDX | BPF_ABS | BPF_W:
.code = BPF_LD | BPF_SIZE(SIZE) | BPF_ABS, \
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, syscall_nr),
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, syscall_arg(0)),
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, syscall_arg(0)),
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, LO_ARG(idx))
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, LO_ARG(idx)), \
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, HI_ARG(idx)), \
BPF_STMT(BPF_LD+BPF_W+BPF_ABS, \
BPF_STMT(BPF_LD+BPF_W+BPF_ABS,
BPF_STMT(BPF_LD+BPF_W+BPF_ABS,
BPF_STMT(BPF_LD+BPF_W+BPF_ABS,
case BPF_LD_W | BPF_ABS:
case BPF_LD_H | BPF_ABS:
case BPF_LD_B | BPF_ABS:
case BPF_LD_W | BPF_ABS:
case BPF_LD_H | BPF_ABS:
case BPF_LD_B | BPF_ABS:
bpf_set_curr_instr(BPF_LD | BPF_B | BPF_ABS, 0, 0, $3); }
bpf_set_curr_instr(BPF_LD | BPF_B | BPF_ABS, 0, 0,
bpf_set_curr_instr(BPF_LD | BPF_H | BPF_ABS, 0, 0, $3); }
bpf_set_curr_instr(BPF_LD | BPF_H | BPF_ABS, 0, 0,
bpf_set_curr_instr(BPF_LD | BPF_W | BPF_ABS, 0, 0,
bpf_set_curr_instr(BPF_LD | BPF_W | BPF_ABS, 0, 0, $3); }
.code = BPF_LD | BPF_SIZE(SIZE) | BPF_ABS, \
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
if (BPF_MODE(insn->code) == BPF_ABS) {
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, ethproto_off),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, ipproto_off),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, opt_ipproto_off),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, dport_off),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, dport_off + optlen),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, SKF_AD_OFF + SKF_AD_PKTTYPE),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, off_proto),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, off_dport),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, SKF_AD_OFF + SKF_AD_PKTTYPE),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, off_nexthdr),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, off_dport),
BPF_STMT(BPF_LD | BPF_B | BPF_ABS, 80), /* ldb [80] */
{ BPF_LD | BPF_B | BPF_ABS, 0, 0, 0, 0x50 },
{ BPF_LD | BPF_ABS | BPF_W, 0, 0, 0, 0 },
{ BPF_LD | BPF_W | BPF_ABS, 0, 0, 0 },
{ BPF_LD | BPF_W | BPF_ABS, 0, 0, SKF_AD_OFF + SKF_AD_CPU },
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, SKF_AD_OFF + SKF_AD_PKTTYPE),
BPF_STMT(BPF_LD + BPF_B + BPF_ABS, SKF_NET_OFF + offset_proto),
BPF_STMT(BPF_LD + BPF_H + BPF_ABS, SKF_NET_OFF + offset_dport),
BPF_STMT(BPF_LD|BPF_W|BPF_ABS, offsetof(struct seccomp_data, nr)),
BPF_STMT(BPF_LD|BPF_W|BPF_ABS, offsetof(struct seccomp_data, args[0])),
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS, syscall_arg(0)),
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS, syscall_arg(5)),
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS,
BPF_STMT(BPF_LD|BPF_W|BPF_ABS, syscall_arg(6)),
BPF_STMT(BPF_LD|BPF_W|BPF_ABS, \