18c2ecf20Sopenharmony_ci{ 28c2ecf20Sopenharmony_ci "dead code: start", 38c2ecf20Sopenharmony_ci .insns = { 48c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 58c2ecf20Sopenharmony_ci BPF_LDX_MEM(BPF_B, BPF_REG_8, BPF_REG_9, 0), 68c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 78c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 88c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, -4), 98c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 108c2ecf20Sopenharmony_ci }, 118c2ecf20Sopenharmony_ci .errstr_unpriv = "R9 !read_ok", 128c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 138c2ecf20Sopenharmony_ci .result = ACCEPT, 148c2ecf20Sopenharmony_ci .retval = 7, 158c2ecf20Sopenharmony_ci}, 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci "dead code: mid 1", 188c2ecf20Sopenharmony_ci .insns = { 198c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 208c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1), 218c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 0), 228c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 238c2ecf20Sopenharmony_ci }, 248c2ecf20Sopenharmony_ci .result = ACCEPT, 258c2ecf20Sopenharmony_ci .retval = 7, 268c2ecf20Sopenharmony_ci}, 278c2ecf20Sopenharmony_ci{ 288c2ecf20Sopenharmony_ci "dead code: mid 2", 298c2ecf20Sopenharmony_ci .insns = { 308c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_prandom_u32), 318c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 4), 328c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 1), 338c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 2), 348c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 358c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 368c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 1), 378c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 388c2ecf20Sopenharmony_ci }, 398c2ecf20Sopenharmony_ci .result = ACCEPT, 408c2ecf20Sopenharmony_ci .retval = 1, 418c2ecf20Sopenharmony_ci}, 428c2ecf20Sopenharmony_ci{ 438c2ecf20Sopenharmony_ci "dead code: end 1", 448c2ecf20Sopenharmony_ci .insns = { 458c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 468c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1), 478c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 488c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 498c2ecf20Sopenharmony_ci }, 508c2ecf20Sopenharmony_ci .result = ACCEPT, 518c2ecf20Sopenharmony_ci .retval = 7, 528c2ecf20Sopenharmony_ci}, 538c2ecf20Sopenharmony_ci{ 548c2ecf20Sopenharmony_ci "dead code: end 2", 558c2ecf20Sopenharmony_ci .insns = { 568c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 578c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1), 588c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 598c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 608c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 618c2ecf20Sopenharmony_ci }, 628c2ecf20Sopenharmony_ci .result = ACCEPT, 638c2ecf20Sopenharmony_ci .retval = 7, 648c2ecf20Sopenharmony_ci}, 658c2ecf20Sopenharmony_ci{ 668c2ecf20Sopenharmony_ci "dead code: end 3", 678c2ecf20Sopenharmony_ci .insns = { 688c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 698c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1), 708c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 718c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1), 728c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 1), 738c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 748c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, -5), 758c2ecf20Sopenharmony_ci }, 768c2ecf20Sopenharmony_ci .result = ACCEPT, 778c2ecf20Sopenharmony_ci .retval = 7, 788c2ecf20Sopenharmony_ci}, 798c2ecf20Sopenharmony_ci{ 808c2ecf20Sopenharmony_ci "dead code: tail of main + func", 818c2ecf20Sopenharmony_ci .insns = { 828c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 838c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1), 848c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 858c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 868c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 878c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 888c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 898c2ecf20Sopenharmony_ci }, 908c2ecf20Sopenharmony_ci .errstr_unpriv = "function calls to other bpf functions are allowed for", 918c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 928c2ecf20Sopenharmony_ci .result = ACCEPT, 938c2ecf20Sopenharmony_ci .retval = 7, 948c2ecf20Sopenharmony_ci}, 958c2ecf20Sopenharmony_ci{ 968c2ecf20Sopenharmony_ci "dead code: tail of main + two functions", 978c2ecf20Sopenharmony_ci .insns = { 988c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 998c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1), 1008c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1018c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 1028c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1038c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 1048c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1058c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 1068c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1078c2ecf20Sopenharmony_ci }, 1088c2ecf20Sopenharmony_ci .errstr_unpriv = "function calls to other bpf functions are allowed for", 1098c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 1108c2ecf20Sopenharmony_ci .result = ACCEPT, 1118c2ecf20Sopenharmony_ci .retval = 7, 1128c2ecf20Sopenharmony_ci}, 1138c2ecf20Sopenharmony_ci{ 1148c2ecf20Sopenharmony_ci "dead code: function in the middle and mid of another func", 1158c2ecf20Sopenharmony_ci .insns = { 1168c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 7), 1178c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 3), 1188c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1198c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 12), 1208c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1218c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_0, 7), 1228c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 7, 1), 1238c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -5), 1248c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1258c2ecf20Sopenharmony_ci }, 1268c2ecf20Sopenharmony_ci .errstr_unpriv = "function calls to other bpf functions are allowed for", 1278c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 1288c2ecf20Sopenharmony_ci .result = ACCEPT, 1298c2ecf20Sopenharmony_ci .retval = 7, 1308c2ecf20Sopenharmony_ci}, 1318c2ecf20Sopenharmony_ci{ 1328c2ecf20Sopenharmony_ci "dead code: middle of main before call", 1338c2ecf20Sopenharmony_ci .insns = { 1348c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 1358c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 2, 1), 1368c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 5), 1378c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 1388c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1398c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1408c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1418c2ecf20Sopenharmony_ci }, 1428c2ecf20Sopenharmony_ci .errstr_unpriv = "function calls to other bpf functions are allowed for", 1438c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 1448c2ecf20Sopenharmony_ci .result = ACCEPT, 1458c2ecf20Sopenharmony_ci .retval = 2, 1468c2ecf20Sopenharmony_ci}, 1478c2ecf20Sopenharmony_ci{ 1488c2ecf20Sopenharmony_ci "dead code: start of a function", 1498c2ecf20Sopenharmony_ci .insns = { 1508c2ecf20Sopenharmony_ci BPF_MOV64_IMM(BPF_REG_1, 2), 1518c2ecf20Sopenharmony_ci BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1), 1528c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1538c2ecf20Sopenharmony_ci BPF_JMP_IMM(BPF_JA, 0, 0, 0), 1548c2ecf20Sopenharmony_ci BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 1558c2ecf20Sopenharmony_ci BPF_EXIT_INSN(), 1568c2ecf20Sopenharmony_ci }, 1578c2ecf20Sopenharmony_ci .errstr_unpriv = "function calls to other bpf functions are allowed for", 1588c2ecf20Sopenharmony_ci .result_unpriv = REJECT, 1598c2ecf20Sopenharmony_ci .result = ACCEPT, 1608c2ecf20Sopenharmony_ci .retval = 2, 1618c2ecf20Sopenharmony_ci}, 162