1*49c299b6SDenis Salopek // SPDX-License-Identifier: GPL-2.0 2*49c299b6SDenis Salopek 3*49c299b6SDenis Salopek #include "vmlinux.h" 4*49c299b6SDenis Salopek #include <bpf/bpf_helpers.h> 5*49c299b6SDenis Salopek 6*49c299b6SDenis Salopek __u32 set_pid = 0; 7*49c299b6SDenis Salopek __u64 set_key = 0; 8*49c299b6SDenis Salopek __u64 set_value = 0; 9*49c299b6SDenis Salopek 10*49c299b6SDenis Salopek struct { 11*49c299b6SDenis Salopek __uint(type, BPF_MAP_TYPE_HASH); 12*49c299b6SDenis Salopek __uint(max_entries, 2); 13*49c299b6SDenis Salopek __type(key, __u64); 14*49c299b6SDenis Salopek __type(value, __u64); 15*49c299b6SDenis Salopek } hash_map SEC(".maps"); 16*49c299b6SDenis Salopek 17*49c299b6SDenis Salopek SEC("tp/syscalls/sys_enter_getpgid") bpf_lookup_and_delete_test(const void * ctx)18*49c299b6SDenis Salopekint bpf_lookup_and_delete_test(const void *ctx) 19*49c299b6SDenis Salopek { 20*49c299b6SDenis Salopek if (set_pid == bpf_get_current_pid_tgid() >> 32) 21*49c299b6SDenis Salopek bpf_map_update_elem(&hash_map, &set_key, &set_value, BPF_NOEXIST); 22*49c299b6SDenis Salopek 23*49c299b6SDenis Salopek return 0; 24*49c299b6SDenis Salopek } 25*49c299b6SDenis Salopek 26*49c299b6SDenis Salopek char _license[] SEC("license") = "GPL"; 27