162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/* Copyright (c) 2019 Facebook */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#include <stdbool.h>
562306a36Sopenharmony_ci#include <linux/bpf.h>
662306a36Sopenharmony_ci#include <bpf/bpf_helpers.h>
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci__u64 out__bpf_link_fops = -1;
962306a36Sopenharmony_ci__u64 out__bpf_link_fops1 = -1;
1062306a36Sopenharmony_ci__u64 out__btf_size = -1;
1162306a36Sopenharmony_ci__u64 out__per_cpu_start = -1;
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciextern const void bpf_link_fops __ksym;
1462306a36Sopenharmony_ciextern const void __start_BTF __ksym;
1562306a36Sopenharmony_ciextern const void __stop_BTF __ksym;
1662306a36Sopenharmony_ciextern const void __per_cpu_start __ksym;
1762306a36Sopenharmony_ci/* non-existing symbol, weak, default to zero */
1862306a36Sopenharmony_ciextern const void bpf_link_fops1 __ksym __weak;
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciSEC("raw_tp/sys_enter")
2162306a36Sopenharmony_ciint handler(const void *ctx)
2262306a36Sopenharmony_ci{
2362306a36Sopenharmony_ci	out__bpf_link_fops = (__u64)&bpf_link_fops;
2462306a36Sopenharmony_ci	out__btf_size = (__u64)(&__stop_BTF - &__start_BTF);
2562306a36Sopenharmony_ci	out__per_cpu_start = (__u64)&__per_cpu_start;
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	out__bpf_link_fops1 = (__u64)&bpf_link_fops1;
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	return 0;
3062306a36Sopenharmony_ci}
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_cichar _license[] SEC("license") = "GPL";
33