~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod_kfunc.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 #endif /* _BPF_TESTMOD_KFUNC_H */
148 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php