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 Shaoint 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 Shaoint 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