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

mctpdevice.h (1294B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Management Component Transport Protocol (MCTP) - device
      4 * definitions.
      5 *
      6 * Copyright (c) 2021 Code Construct
      7 * Copyright (c) 2021 Google
      8 */
      9
     10#ifndef __NET_MCTPDEVICE_H
     11#define __NET_MCTPDEVICE_H
     12
     13#include <linux/list.h>
     14#include <linux/types.h>
     15#include <linux/refcount.h>
     16
     17struct mctp_sk_key;
     18
     19struct mctp_dev {
     20	struct net_device	*dev;
     21
     22	refcount_t		refs;
     23
     24	unsigned int		net;
     25
     26	const struct mctp_netdev_ops *ops;
     27
     28	/* Only modified under RTNL. Reads have addrs_lock held */
     29	u8			*addrs;
     30	size_t			num_addrs;
     31	spinlock_t		addrs_lock;
     32
     33	struct rcu_head		rcu;
     34};
     35
     36struct mctp_netdev_ops {
     37	void			(*release_flow)(struct mctp_dev *dev,
     38						struct mctp_sk_key *key);
     39};
     40
     41#define MCTP_INITIAL_DEFAULT_NET	1
     42
     43struct mctp_dev *mctp_dev_get_rtnl(const struct net_device *dev);
     44struct mctp_dev *__mctp_dev_get(const struct net_device *dev);
     45
     46int mctp_register_netdev(struct net_device *dev,
     47			 const struct mctp_netdev_ops *ops);
     48void mctp_unregister_netdev(struct net_device *dev);
     49
     50void mctp_dev_hold(struct mctp_dev *mdev);
     51void mctp_dev_put(struct mctp_dev *mdev);
     52
     53void mctp_dev_set_key(struct mctp_dev *dev, struct mctp_sk_key *key);
     54void mctp_dev_release_key(struct mctp_dev *dev, struct mctp_sk_key *key);
     55
     56#endif /* __NET_MCTPDEVICE_H */