0001 {
0002 "ld_ind: check calling conv, r1",
0003 .insns = {
0004 BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
0005 BPF_MOV64_IMM(BPF_REG_1, 1),
0006 BPF_LD_IND(BPF_W, BPF_REG_1, -0x200000),
0007 BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
0008 BPF_EXIT_INSN(),
0009 },
0010 .errstr = "R1 !read_ok",
0011 .result = REJECT,
0012 },
0013 {
0014 "ld_ind: check calling conv, r2",
0015 .insns = {
0016 BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
0017 BPF_MOV64_IMM(BPF_REG_2, 1),
0018 BPF_LD_IND(BPF_W, BPF_REG_2, -0x200000),
0019 BPF_MOV64_REG(BPF_REG_0, BPF_REG_2),
0020 BPF_EXIT_INSN(),
0021 },
0022 .errstr = "R2 !read_ok",
0023 .result = REJECT,
0024 },
0025 {
0026 "ld_ind: check calling conv, r3",
0027 .insns = {
0028 BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
0029 BPF_MOV64_IMM(BPF_REG_3, 1),
0030 BPF_LD_IND(BPF_W, BPF_REG_3, -0x200000),
0031 BPF_MOV64_REG(BPF_REG_0, BPF_REG_3),
0032 BPF_EXIT_INSN(),
0033 },
0034 .errstr = "R3 !read_ok",
0035 .result = REJECT,
0036 },
0037 {
0038 "ld_ind: check calling conv, r4",
0039 .insns = {
0040 BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
0041 BPF_MOV64_IMM(BPF_REG_4, 1),
0042 BPF_LD_IND(BPF_W, BPF_REG_4, -0x200000),
0043 BPF_MOV64_REG(BPF_REG_0, BPF_REG_4),
0044 BPF_EXIT_INSN(),
0045 },
0046 .errstr = "R4 !read_ok",
0047 .result = REJECT,
0048 },
0049 {
0050 "ld_ind: check calling conv, r5",
0051 .insns = {
0052 BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
0053 BPF_MOV64_IMM(BPF_REG_5, 1),
0054 BPF_LD_IND(BPF_W, BPF_REG_5, -0x200000),
0055 BPF_MOV64_REG(BPF_REG_0, BPF_REG_5),
0056 BPF_EXIT_INSN(),
0057 },
0058 .errstr = "R5 !read_ok",
0059 .result = REJECT,
0060 },
0061 {
0062 "ld_ind: check calling conv, r7",
0063 .insns = {
0064 BPF_MOV64_REG(BPF_REG_6, BPF_REG_1),
0065 BPF_MOV64_IMM(BPF_REG_7, 1),
0066 BPF_LD_IND(BPF_W, BPF_REG_7, -0x200000),
0067 BPF_MOV64_REG(BPF_REG_0, BPF_REG_7),
0068 BPF_EXIT_INSN(),
0069 },
0070 .result = ACCEPT,
0071 .retval = 1,
0072 },