60 lines · c
1{2 "check bpf_perf_event_data->sample_period byte load permitted",3 .insns = {4 BPF_MOV64_IMM(BPF_REG_0, 0),5#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__6 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1,7 offsetof(struct bpf_perf_event_data, sample_period)),8#else9 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1,10 offsetof(struct bpf_perf_event_data, sample_period) + 7),11#endif12 BPF_EXIT_INSN(),13 },14 .result = ACCEPT,15 .prog_type = BPF_PROG_TYPE_PERF_EVENT,16},17{18 "check bpf_perf_event_data->sample_period half load permitted",19 .insns = {20 BPF_MOV64_IMM(BPF_REG_0, 0),21#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__22 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1,23 offsetof(struct bpf_perf_event_data, sample_period)),24#else25 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1,26 offsetof(struct bpf_perf_event_data, sample_period) + 6),27#endif28 BPF_EXIT_INSN(),29 },30 .result = ACCEPT,31 .prog_type = BPF_PROG_TYPE_PERF_EVENT,32},33{34 "check bpf_perf_event_data->sample_period word load permitted",35 .insns = {36 BPF_MOV64_IMM(BPF_REG_0, 0),37#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__38 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1,39 offsetof(struct bpf_perf_event_data, sample_period)),40#else41 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1,42 offsetof(struct bpf_perf_event_data, sample_period) + 4),43#endif44 BPF_EXIT_INSN(),45 },46 .result = ACCEPT,47 .prog_type = BPF_PROG_TYPE_PERF_EVENT,48},49{50 "check bpf_perf_event_data->sample_period dword load permitted",51 .insns = {52 BPF_MOV64_IMM(BPF_REG_0, 0),53 BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_1,54 offsetof(struct bpf_perf_event_data, sample_period)),55 BPF_EXIT_INSN(),56 },57 .result = ACCEPT,58 .prog_type = BPF_PROG_TYPE_PERF_EVENT,59},60