xref: /linux/tools/testing/selftests/sched_ext/prog_run.bpf.c (revision d86adb4fc0655a0867da811d000df75d2a325ef6)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * A scheduler that validates that we can invoke sched_ext kfuncs in
4  * BPF_PROG_TYPE_SYSCALL programs.
5  *
6  * Copyright (c) 2024 Meta Platforms, Inc. and affiliates.
7  * Copyright (c) 2024 David Vernet <dvernet@meta.com>
8  */
9 
10 #include <scx/common.bpf.h>
11 
12 UEI_DEFINE(uei);
13 
14 char _license[] SEC("license") = "GPL";
15 
16 SEC("syscall")
17 int BPF_PROG(prog_run_syscall)
18 {
19 	scx_bpf_exit(0xdeadbeef, "Exited from PROG_RUN");
20 	return 0;
21 }
22 
23 void BPF_STRUCT_OPS(prog_run_exit, struct scx_exit_info *ei)
24 {
25 	UEI_RECORD(uei, ei);
26 }
27 
28 SEC(".struct_ops.link")
29 struct sched_ext_ops prog_run_ops = {
30 	.exit			= prog_run_exit,
31 	.name			= "prog_run",
32 };
33