1*6c850cbcSKP Singh // SPDX-License-Identifier: GPL-2.0
2*6c850cbcSKP Singh /* Copyright (C) 2025 Google LLC. */
3*6c850cbcSKP Singh #include <linux/bpf.h>
4*6c850cbcSKP Singh #include <time.h>
5*6c850cbcSKP Singh #include <bpf/bpf_helpers.h>
6*6c850cbcSKP Singh
7*6c850cbcSKP Singh #include "bpf_misc.h"
8*6c850cbcSKP Singh
9*6c850cbcSKP Singh struct {
10*6c850cbcSKP Singh __uint(type, BPF_MAP_TYPE_ARRAY);
11*6c850cbcSKP Singh __type(key, __u32);
12*6c850cbcSKP Singh __type(value, __u32);
13*6c850cbcSKP Singh __uint(max_entries, 1);
14*6c850cbcSKP Singh } excl_map SEC(".maps");
15*6c850cbcSKP Singh
16*6c850cbcSKP Singh char _license[] SEC("license") = "GPL";
17*6c850cbcSKP Singh
18*6c850cbcSKP Singh SEC("?fentry.s/" SYS_PREFIX "sys_getpgid")
should_have_access(void * ctx)19*6c850cbcSKP Singh int should_have_access(void *ctx)
20*6c850cbcSKP Singh {
21*6c850cbcSKP Singh int key = 0, value = 0xdeadbeef;
22*6c850cbcSKP Singh
23*6c850cbcSKP Singh bpf_map_update_elem(&excl_map, &key, &value, 0);
24*6c850cbcSKP Singh return 0;
25*6c850cbcSKP Singh }
26*6c850cbcSKP Singh
27*6c850cbcSKP Singh SEC("?fentry.s/" SYS_PREFIX "sys_getpgid")
should_not_have_access(void * ctx)28*6c850cbcSKP Singh int should_not_have_access(void *ctx)
29*6c850cbcSKP Singh {
30*6c850cbcSKP Singh int key = 0, value = 0xdeadbeef;
31*6c850cbcSKP Singh
32*6c850cbcSKP Singh bpf_map_update_elem(&excl_map, &key, &value, 0);
33*6c850cbcSKP Singh return 0;
34*6c850cbcSKP Singh }
35