brintos

brintos / linux-shallow public Read only

0
0
Text · 875 B · 92354cd Raw
47 lines · c
1// SPDX-License-Identifier: GPL-2.02// Copyright (c) 2019 Facebook3#include <linux/bpf.h>4#include <linux/version.h>5#include <bpf/bpf_helpers.h>6 7__u32 sig = 0, pid = 0, status = 0, signal_thread = 0;8 9static __always_inline int bpf_send_signal_test(void *ctx)10{11	int ret;12 13	if (status != 0 || pid == 0)14		return 0;15 16	if ((bpf_get_current_pid_tgid() >> 32) == pid) {17		if (signal_thread)18			ret = bpf_send_signal_thread(sig);19		else20			ret = bpf_send_signal(sig);21		if (ret == 0)22			status = 1;23	}24 25	return 0;26}27 28SEC("tracepoint/syscalls/sys_enter_nanosleep")29int send_signal_tp(void *ctx)30{31	return bpf_send_signal_test(ctx);32}33 34SEC("tracepoint/sched/sched_switch")35int send_signal_tp_sched(void *ctx)36{37	return bpf_send_signal_test(ctx);38}39 40SEC("perf_event")41int send_signal_perf(void *ctx)42{43	return bpf_send_signal_test(ctx);44}45 46char __license[] SEC("license") = "GPL";47