cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

bpf_sk_storage.h (1780B)


      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
     17struct sock;
     18
     19void bpf_sk_storage_free(struct sock *sk);
     20
     21extern const struct bpf_func_proto bpf_sk_storage_get_proto;
     22extern const struct bpf_func_proto bpf_sk_storage_delete_proto;
     23extern const struct bpf_func_proto bpf_sk_storage_get_tracing_proto;
     24extern const struct bpf_func_proto bpf_sk_storage_delete_tracing_proto;
     25
     26struct bpf_local_storage_elem;
     27struct bpf_sk_storage_diag;
     28struct sk_buff;
     29struct nlattr;
     30
     31#ifdef CONFIG_BPF_SYSCALL
     32int bpf_sk_storage_clone(const struct sock *sk, struct sock *newsk);
     33struct bpf_sk_storage_diag *
     34bpf_sk_storage_diag_alloc(const struct nlattr *nla_stgs);
     35void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag);
     36int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag,
     37			    struct sock *sk, struct sk_buff *skb,
     38			    int stg_array_type,
     39			    unsigned int *res_diag_size);
     40#else
     41static inline int bpf_sk_storage_clone(const struct sock *sk,
     42				       struct sock *newsk)
     43{
     44	return 0;
     45}
     46static inline struct bpf_sk_storage_diag *
     47bpf_sk_storage_diag_alloc(const struct nlattr *nla)
     48{
     49	return NULL;
     50}
     51static inline void bpf_sk_storage_diag_free(struct bpf_sk_storage_diag *diag)
     52{
     53}
     54static inline int bpf_sk_storage_diag_put(struct bpf_sk_storage_diag *diag,
     55					  struct sock *sk, struct sk_buff *skb,
     56					  int stg_array_type,
     57					  unsigned int *res_diag_size)
     58{
     59	return 0;
     60}
     61#endif
     62
     63#endif /* _BPF_SK_STORAGE_H */