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 Salopek int 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