Line data Source code
1 : /* SPDX-License-Identifier: GPL-2.0 */ 2 : /* Copyright (c) 2019 Facebook */ 3 : #ifndef _BPF_SK_STORAGE_H 4 : #define _BPF_SK_STORAGE_H 5 : 6 : #include <linux/rculist.h> 7 : #include <linux/list.h> 8 : #include <linux/hash.h> 9 : #include <linux/types.h> 10 : #include <linux/spinlock.h> 11 : #include <linux/bpf.h> 12 : #include <net/sock.h> 13 : #include <uapi/linux/sock_diag.h> 14 : #include <uapi/linux/btf.h> 15 : #include <linux/bpf_local_storage.h> 16 : 17 : struct sock; 18 : 19 : void bpf_sk_storage_free(struct sock *sk); 20 : 21 : extern const struct bpf_func_proto bpf_sk_storage_get_proto; 22 : extern const struct bpf_func_proto bpf_sk_storage_delete_proto; 23 : extern const struct bpf_func_proto bpf_sk_storage_get_tracing_proto; 24 : extern const struct bpf_func_proto bpf_sk_storage_delete_tracing_proto; 25 : 26 : struct bpf_local_storage_elem; 27 : struct bpf_sk_storage_diag; 28 : struct sk_buff; 29 : struct nlattr; 30 : struct sock; 31 : 32 : #ifdef CONFIG_BPF_SYSCALL 33 : int bpf_sk_storage_clone(const struct sock *sk, struct sock *newsk); 34 : struct bpf_sk_storage_diag * 35 : bpf_sk_storage_diag_alloc(const struct nlattr *nla_stgs); 36 : void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag); 37 : int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag, 38 : struct sock *sk, struct sk_buff *skb, 39 : int stg_array_type, 40 : unsigned int *res_diag_size); 41 : #else 42 4 : static inline int bpf_sk_storage_clone(const struct sock *sk, 43 : struct sock *newsk) 44 : { 45 4 : return 0; 46 : } 47 : static inline struct bpf_sk_storage_diag * 48 : bpf_sk_storage_diag_alloc(const struct nlattr *nla) 49 : { 50 : return NULL; 51 : } 52 : static inline void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag) 53 : { 54 : } 55 : static inline int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag, 56 : struct sock *sk, struct sk_buff *skb, 57 : int stg_array_type, 58 : unsigned int *res_diag_size) 59 : { 60 : return 0; 61 : } 62 : #endif 63 : 64 : #endif /* _BPF_SK_STORAGE_H */