Loading...
Note: File does not exist in v5.4.
1#ifndef __BPF_KFUNCS__
2#define __BPF_KFUNCS__
3
4struct bpf_sock_addr_kern;
5
6/* Description
7 * Initializes an skb-type dynptr
8 * Returns
9 * Error code
10 */
11extern int bpf_dynptr_from_skb(struct __sk_buff *skb, __u64 flags,
12 struct bpf_dynptr *ptr__uninit) __ksym;
13
14/* Description
15 * Initializes an xdp-type dynptr
16 * Returns
17 * Error code
18 */
19extern int bpf_dynptr_from_xdp(struct xdp_md *xdp, __u64 flags,
20 struct bpf_dynptr *ptr__uninit) __ksym;
21
22/* Description
23 * Obtain a read-only pointer to the dynptr's data
24 * Returns
25 * Either a direct pointer to the dynptr data or a pointer to the user-provided
26 * buffer if unable to obtain a direct pointer
27 */
28extern void *bpf_dynptr_slice(const struct bpf_dynptr *ptr, __u32 offset,
29 void *buffer, __u32 buffer__szk) __ksym;
30
31/* Description
32 * Obtain a read-write pointer to the dynptr's data
33 * Returns
34 * Either a direct pointer to the dynptr data or a pointer to the user-provided
35 * buffer if unable to obtain a direct pointer
36 */
37extern void *bpf_dynptr_slice_rdwr(const struct bpf_dynptr *ptr, __u32 offset,
38 void *buffer, __u32 buffer__szk) __ksym;
39
40extern int bpf_dynptr_adjust(const struct bpf_dynptr *ptr, __u32 start, __u32 end) __ksym;
41extern bool bpf_dynptr_is_null(const struct bpf_dynptr *ptr) __ksym;
42extern bool bpf_dynptr_is_rdonly(const struct bpf_dynptr *ptr) __ksym;
43extern __u32 bpf_dynptr_size(const struct bpf_dynptr *ptr) __ksym;
44extern int bpf_dynptr_clone(const struct bpf_dynptr *ptr, struct bpf_dynptr *clone__init) __ksym;
45
46/* Description
47 * Modify the address of a AF_UNIX sockaddr.
48 * Returns__bpf_kfunc
49 * -EINVAL if the address size is too big or, 0 if the sockaddr was successfully modified.
50 */
51extern int bpf_sock_addr_set_sun_path(struct bpf_sock_addr_kern *sa_kern,
52 const __u8 *sun_path, __u32 sun_path__sz) __ksym;
53
54void *bpf_cast_to_kern_ctx(void *) __ksym;
55
56void *bpf_rdonly_cast(void *obj, __u32 btf_id) __ksym;
57
58extern int bpf_get_file_xattr(struct file *file, const char *name,
59 struct bpf_dynptr *value_ptr) __ksym;
60extern int bpf_get_fsverity_digest(struct file *file, struct bpf_dynptr *digest_ptr) __ksym;
61
62extern struct bpf_key *bpf_lookup_user_key(__u32 serial, __u64 flags) __ksym;
63extern struct bpf_key *bpf_lookup_system_key(__u64 id) __ksym;
64extern void bpf_key_put(struct bpf_key *key) __ksym;
65extern int bpf_verify_pkcs7_signature(struct bpf_dynptr *data_ptr,
66 struct bpf_dynptr *sig_ptr,
67 struct bpf_key *trusted_keyring) __ksym;
68#endif