BPF_IND
case BPF_LD | BPF_W | BPF_IND:
case BPF_LD | BPF_H | BPF_IND:
case BPF_LD | BPF_B | BPF_IND:
[BPF_LD | BPF_IND | BPF_B] = data_ind_ld1,
[BPF_LD | BPF_IND | BPF_H] = data_ind_ld2,
[BPF_LD | BPF_IND | BPF_W] = data_ind_ld4,
BPF_MODE(insn.code) != BPF_IND)
BPF_MODE(insn.code) != BPF_IND)
(BPF_MODE(code) == BPF_ABS || BPF_MODE(code) == BPF_IND);
.code = BPF_LD | BPF_SIZE(SIZE) | BPF_IND, \
[BPF_LD | BPF_IND | BPF_B] = true,
[BPF_LD | BPF_IND | BPF_H] = true,
[BPF_LD | BPF_IND | BPF_W] = true,
} else if (BPF_MODE(insn->code) == BPF_IND) {
if (mode == BPF_IND) {
if (mode == BPF_ABS || mode == BPF_IND) {
BPF_MODE(insn->code) == BPF_IND)) {
case BPF_LD | BPF_IND:
(BPF_MODE(code) == BPF_ABS || BPF_MODE(code) == BPF_IND))
if (mode == BPF_IND || mode == BPF_ABS)
BPF_STMT(BPF_LD | BPF_IND | BPF_B, 0x0),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, 0x4),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, 0x8),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, -0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, -0x2),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, -0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, -0x3f),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, SKF_LL_OFF + 1),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, SKF_LL_OFF + 2),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, SKF_LL_OFF + 3),
BPF_STMT(BPF_LD | BPF_IND | BPF_B, SKF_LL_OFF + 4),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, 0x2),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, -0x2),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, -0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_H, -0x3f),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, 0x4),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, -0x4),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, -0x2),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, -0x3),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, -0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, 0x1),
BPF_STMT(BPF_LD | BPF_IND | BPF_W, -0x3f),
BPF_STMT(BPF_LD | BPF_B | BPF_IND, 1),
BPF_STMT(BPF_LD | BPF_H | BPF_IND, MAX_K),
BPF_STMT(BPF_LD | BPF_B | BPF_IND, 0),
BPF_STMT(BPF_LD | BPF_B | BPF_IND, 0),
BPF_STMT(BPF_LD | BPF_B | BPF_IND, MAX_K),
BPF_STMT(BPF_LD | BPF_W | BPF_IND, 0),
BPF_STMT(BPF_LD | BPF_H | BPF_IND, 14),
BPF_STMT(BPF_LD | BPF_H | BPF_IND, 16),
BPF_STMT(BPF_LD | BPF_H | BPF_IND, 14),
BPF_STMT(BPF_LD | BPF_H | BPF_IND, 16),
BPF_STMT(BPF_LD | BPF_B | BPF_IND, 26),
[BPF_LD | BPF_W | BPF_IND] = true,
[BPF_LD | BPF_H | BPF_IND] = true,
[BPF_LD | BPF_B | BPF_IND] = true,
bool indirect = BPF_MODE(fp->code) == BPF_IND;
case BPF_LD | BPF_IND | BPF_W:
case BPF_LD | BPF_IND | BPF_H:
case BPF_LD | BPF_IND | BPF_B:
bool indirect = BPF_MODE(orig->code) == BPF_IND;
case BPF_LD_W | BPF_IND:
case BPF_LD_H | BPF_IND:
case BPF_LD_B | BPF_IND:
case BPF_LD_W | BPF_IND:
case BPF_LD_H | BPF_IND:
case BPF_LD_B | BPF_IND:
bpf_set_curr_instr(BPF_LD | BPF_B | BPF_IND, 0, 0, $5); }
bpf_set_curr_instr(BPF_LD | BPF_B | BPF_IND, 0, 0, $6); }
bpf_set_curr_instr(BPF_LD | BPF_H | BPF_IND, 0, 0, $5); }
bpf_set_curr_instr(BPF_LD | BPF_H | BPF_IND, 0, 0, $6); }
bpf_set_curr_instr(BPF_LD | BPF_W | BPF_IND, 0, 0, $5); }
bpf_set_curr_instr(BPF_LD | BPF_W | BPF_IND, 0, 0, $6); }
.code = BPF_LD | BPF_SIZE(SIZE) | BPF_IND, \
} else if (BPF_MODE(insn->code) == BPF_IND) {