1*1cd0e771SYafang Shao // SPDX-License-Identifier: GPL-2.0
2*1cd0e771SYafang Shao /* Copyright (C) 2023 Yafang Shao <laoar.shao@gmail.com> */
3*1cd0e771SYafang Shao 
4*1cd0e771SYafang Shao #include "vmlinux.h"
5*1cd0e771SYafang Shao #include <bpf/bpf_tracing.h>
6*1cd0e771SYafang Shao 
7*1cd0e771SYafang Shao char tp_name[128];
8*1cd0e771SYafang Shao 
9*1cd0e771SYafang Shao SEC("lsm/bpf")
BPF_PROG(lsm_run,int cmd,union bpf_attr * attr,unsigned int size)10*1cd0e771SYafang Shao int BPF_PROG(lsm_run, int cmd, union bpf_attr *attr, unsigned int size)
11*1cd0e771SYafang Shao {
12*1cd0e771SYafang Shao 	switch (cmd) {
13*1cd0e771SYafang Shao 	case BPF_RAW_TRACEPOINT_OPEN:
14*1cd0e771SYafang Shao 		bpf_probe_read_user_str(tp_name, sizeof(tp_name) - 1,
15*1cd0e771SYafang Shao 					(void *)attr->raw_tracepoint.name);
16*1cd0e771SYafang Shao 		break;
17*1cd0e771SYafang Shao 	default:
18*1cd0e771SYafang Shao 		break;
19*1cd0e771SYafang Shao 	}
20*1cd0e771SYafang Shao 	return 0;
21*1cd0e771SYafang Shao }
22*1cd0e771SYafang Shao 
23*1cd0e771SYafang Shao SEC("raw_tracepoint")
BPF_PROG(raw_tp_run)24*1cd0e771SYafang Shao int BPF_PROG(raw_tp_run)
25*1cd0e771SYafang Shao {
26*1cd0e771SYafang Shao 	return 0;
27*1cd0e771SYafang Shao }
28*1cd0e771SYafang Shao 
29*1cd0e771SYafang Shao char _license[] SEC("license") = "GPL";
30