103 lines · c
1// SPDX-License-Identifier: GPL-2.02/* Copyright (c) 2024 Meta Platforms, Inc. and affiliates. */3#include <vmlinux.h>4#include <bpf/bpf_helpers.h>5#include <bpf/bpf_tracing.h>6#include "../bpf_testmod/bpf_testmod.h"7 8char _license[] SEC("license") = "GPL";9 10#define TRAMP(x) \11 SEC("struct_ops/tramp_" #x) \12 int BPF_PROG(tramp_ ## x, int a) \13 { \14 return a; \15 }16 17TRAMP(1)18TRAMP(2)19TRAMP(3)20TRAMP(4)21TRAMP(5)22TRAMP(6)23TRAMP(7)24TRAMP(8)25TRAMP(9)26TRAMP(10)27TRAMP(11)28TRAMP(12)29TRAMP(13)30TRAMP(14)31TRAMP(15)32TRAMP(16)33TRAMP(17)34TRAMP(18)35TRAMP(19)36TRAMP(20)37TRAMP(21)38TRAMP(22)39TRAMP(23)40TRAMP(24)41TRAMP(25)42TRAMP(26)43TRAMP(27)44TRAMP(28)45TRAMP(29)46TRAMP(30)47TRAMP(31)48TRAMP(32)49TRAMP(33)50TRAMP(34)51TRAMP(35)52TRAMP(36)53TRAMP(37)54TRAMP(38)55TRAMP(39)56TRAMP(40)57 58#define F_TRAMP(x) .tramp_ ## x = (void *)tramp_ ## x59 60SEC(".struct_ops.link")61struct bpf_testmod_ops multi_pages = {62 F_TRAMP(1),63 F_TRAMP(2),64 F_TRAMP(3),65 F_TRAMP(4),66 F_TRAMP(5),67 F_TRAMP(6),68 F_TRAMP(7),69 F_TRAMP(8),70 F_TRAMP(9),71 F_TRAMP(10),72 F_TRAMP(11),73 F_TRAMP(12),74 F_TRAMP(13),75 F_TRAMP(14),76 F_TRAMP(15),77 F_TRAMP(16),78 F_TRAMP(17),79 F_TRAMP(18),80 F_TRAMP(19),81 F_TRAMP(20),82 F_TRAMP(21),83 F_TRAMP(22),84 F_TRAMP(23),85 F_TRAMP(24),86 F_TRAMP(25),87 F_TRAMP(26),88 F_TRAMP(27),89 F_TRAMP(28),90 F_TRAMP(29),91 F_TRAMP(30),92 F_TRAMP(31),93 F_TRAMP(32),94 F_TRAMP(33),95 F_TRAMP(34),96 F_TRAMP(35),97 F_TRAMP(36),98 F_TRAMP(37),99 F_TRAMP(38),100 F_TRAMP(39),101 F_TRAMP(40),102};103