]> Git Repo - J-linux.git/blob - tools/testing/selftests/bpf/bpf_testmod/bpf_testmod_kfunc.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / tools / testing / selftests / bpf / bpf_testmod / bpf_testmod_kfunc.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2
3 #ifndef _BPF_TESTMOD_KFUNC_H
4 #define _BPF_TESTMOD_KFUNC_H
5
6 #ifndef __KERNEL__
7 #include <vmlinux.h>
8 #include <bpf/bpf_helpers.h>
9 #else
10 #define __ksym
11 struct prog_test_member1 {
12         int a;
13 };
14
15 struct prog_test_member {
16         struct prog_test_member1 m;
17         int c;
18 };
19
20 struct prog_test_ref_kfunc {
21         int a;
22         int b;
23         struct prog_test_member memb;
24         struct prog_test_ref_kfunc *next;
25         refcount_t cnt;
26 };
27 #endif
28
29 struct prog_test_pass1 {
30         int x0;
31         struct {
32                 int x1;
33                 struct {
34                         int x2;
35                         struct {
36                                 int x3;
37                         };
38                 };
39         };
40 };
41
42 struct prog_test_pass2 {
43         int len;
44         short arr1[4];
45         struct {
46                 char arr2[4];
47                 unsigned long arr3[8];
48         } x;
49 };
50
51 struct prog_test_fail1 {
52         void *p;
53         int x;
54 };
55
56 struct prog_test_fail2 {
57         int x8;
58         struct prog_test_pass1 x;
59 };
60
61 struct prog_test_fail3 {
62         int len;
63         char arr1[2];
64         char arr2[];
65 };
66
67 struct init_sock_args {
68         int af;
69         int type;
70 };
71
72 struct addr_args {
73         char addr[sizeof(struct __kernel_sockaddr_storage)];
74         int addrlen;
75 };
76
77 struct sendmsg_args {
78         struct addr_args addr;
79         char msg[10];
80         int msglen;
81 };
82
83 struct bpf_testmod_ctx {
84         struct callback_head    rcu;
85         refcount_t              usage;
86 };
87
88 struct prog_test_ref_kfunc *
89 bpf_kfunc_call_test_acquire(unsigned long *scalar_ptr) __ksym;
90 void bpf_kfunc_call_test_release(struct prog_test_ref_kfunc *p) __ksym;
91 void bpf_kfunc_call_test_ref(struct prog_test_ref_kfunc *p) __ksym;
92
93 void bpf_kfunc_call_test_mem_len_pass1(void *mem, int len) __ksym;
94 int *bpf_kfunc_call_test_get_rdwr_mem(struct prog_test_ref_kfunc *p, const int rdwr_buf_size) __ksym;
95 int *bpf_kfunc_call_test_get_rdonly_mem(struct prog_test_ref_kfunc *p, const int rdonly_buf_size) __ksym;
96 int *bpf_kfunc_call_test_acq_rdonly_mem(struct prog_test_ref_kfunc *p, const int rdonly_buf_size) __ksym;
97 void bpf_kfunc_call_int_mem_release(int *p) __ksym;
98
99 /* The bpf_kfunc_call_test_static_unused_arg is defined as static,
100  * but bpf program compilation needs to see it as global symbol.
101  */
102 #ifndef __KERNEL__
103 u32 bpf_kfunc_call_test_static_unused_arg(u32 arg, u32 unused) __ksym;
104 #endif
105
106 void bpf_testmod_test_mod_kfunc(int i) __ksym;
107
108 __u64 bpf_kfunc_call_test1(struct sock *sk, __u32 a, __u64 b,
109                                 __u32 c, __u64 d) __ksym;
110 int bpf_kfunc_call_test2(struct sock *sk, __u32 a, __u32 b) __ksym;
111 struct sock *bpf_kfunc_call_test3(struct sock *sk) __ksym;
112 long bpf_kfunc_call_test4(signed char a, short b, int c, long d) __ksym;
113
114 void bpf_kfunc_call_test_pass_ctx(struct __sk_buff *skb) __ksym;
115 void bpf_kfunc_call_test_pass1(struct prog_test_pass1 *p) __ksym;
116 void bpf_kfunc_call_test_pass2(struct prog_test_pass2 *p) __ksym;
117 void bpf_kfunc_call_test_mem_len_fail2(__u64 *mem, int len) __ksym;
118
119 void bpf_kfunc_call_test_destructive(void) __ksym;
120 void bpf_kfunc_call_test_sleepable(void) __ksym;
121
122 void bpf_kfunc_call_test_offset(struct prog_test_ref_kfunc *p);
123 struct prog_test_member *bpf_kfunc_call_memb_acquire(void);
124 void bpf_kfunc_call_memb1_release(struct prog_test_member1 *p);
125 void bpf_kfunc_call_test_fail1(struct prog_test_fail1 *p);
126 void bpf_kfunc_call_test_fail2(struct prog_test_fail2 *p);
127 void bpf_kfunc_call_test_fail3(struct prog_test_fail3 *p);
128 void bpf_kfunc_call_test_mem_len_fail1(void *mem, int len);
129
130 void bpf_kfunc_common_test(void) __ksym;
131
132 int bpf_kfunc_init_sock(struct init_sock_args *args) __ksym;
133 void bpf_kfunc_close_sock(void) __ksym;
134 int bpf_kfunc_call_kernel_connect(struct addr_args *args) __ksym;
135 int bpf_kfunc_call_kernel_bind(struct addr_args *args) __ksym;
136 int bpf_kfunc_call_kernel_listen(void) __ksym;
137 int bpf_kfunc_call_kernel_sendmsg(struct sendmsg_args *args) __ksym;
138 int bpf_kfunc_call_sock_sendmsg(struct sendmsg_args *args) __ksym;
139 int bpf_kfunc_call_kernel_getsockname(struct addr_args *args) __ksym;
140 int bpf_kfunc_call_kernel_getpeername(struct addr_args *args) __ksym;
141
142 void bpf_kfunc_dynptr_test(struct bpf_dynptr *ptr, struct bpf_dynptr *ptr__nullable) __ksym;
143
144 struct bpf_testmod_ctx *bpf_testmod_ctx_create(int *err) __ksym;
145 void bpf_testmod_ctx_release(struct bpf_testmod_ctx *ctx) __ksym;
146
147 struct sk_buff *bpf_kfunc_nested_acquire_nonzero_offset_test(struct sk_buff_head *ptr) __ksym;
148 struct sk_buff *bpf_kfunc_nested_acquire_zero_offset_test(struct sock_common *ptr) __ksym;
149 void bpf_kfunc_nested_release_test(struct sk_buff *ptr) __ksym;
150
151 struct st_ops_args;
152 int bpf_kfunc_st_ops_test_prologue(struct st_ops_args *args) __ksym;
153 int bpf_kfunc_st_ops_test_epilogue(struct st_ops_args *args) __ksym;
154 int bpf_kfunc_st_ops_test_pro_epilogue(struct st_ops_args *args) __ksym;
155 int bpf_kfunc_st_ops_inc10(struct st_ops_args *args) __ksym;
156
157 void bpf_kfunc_trusted_vma_test(struct vm_area_struct *ptr) __ksym;
158 void bpf_kfunc_trusted_task_test(struct task_struct *ptr) __ksym;
159 void bpf_kfunc_trusted_num_test(int *ptr) __ksym;
160 void bpf_kfunc_rcu_task_test(struct task_struct *ptr) __ksym;
161
162 #endif /* _BPF_TESTMOD_KFUNC_H */
This page took 0.035794 seconds and 4 git commands to generate.