linux/include/net/bpf_sk_storage.h
<<
>>
Prefs
   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
   6struct sock;
   7
   8void bpf_sk_storage_free(struct sock *sk);
   9
  10extern const struct bpf_func_proto bpf_sk_storage_get_proto;
  11extern const struct bpf_func_proto bpf_sk_storage_delete_proto;
  12
  13struct bpf_sk_storage_diag;
  14struct sk_buff;
  15struct nlattr;
  16struct sock;
  17
  18#ifdef CONFIG_BPF_SYSCALL
  19int bpf_sk_storage_clone(const struct sock *sk, struct sock *newsk);
  20struct bpf_sk_storage_diag *
  21bpf_sk_storage_diag_alloc(const struct nlattr *nla_stgs);
  22void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag);
  23int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag,
  24                            struct sock *sk, struct sk_buff *skb,
  25                            int stg_array_type,
  26                            unsigned int *res_diag_size);
  27#else
  28static inline int bpf_sk_storage_clone(const struct sock *sk,
  29                                       struct sock *newsk)
  30{
  31        return 0;
  32}
  33static inline struct bpf_sk_storage_diag *
  34bpf_sk_storage_diag_alloc(const struct nlattr *nla)
  35{
  36        return NULL;
  37}
  38static inline void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag)
  39{
  40}
  41static inline int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag,
  42                                          struct sock *sk, struct sk_buff *skb,
  43                                          int stg_array_type,
  44                                          unsigned int *res_diag_size)
  45{
  46        return 0;
  47}
  48#endif
  49
  50#endif /* _BPF_SK_STORAGE_H */
  51