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

ncsi.h (1964B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef __NET_NCSI_H
      3#define __NET_NCSI_H
      4
      5/*
      6 * The NCSI device states seen from external. More NCSI device states are
      7 * only visible internally (in net/ncsi/internal.h). When the NCSI device
      8 * is registered, it's in ncsi_dev_state_registered state. The state
      9 * ncsi_dev_state_start is used to drive to choose active package and
     10 * channel. After that, its state is changed to ncsi_dev_state_functional.
     11 *
     12 * The state ncsi_dev_state_stop helps to shut down the currently active
     13 * package and channel while ncsi_dev_state_config helps to reconfigure
     14 * them.
     15 */
     16enum {
     17	ncsi_dev_state_registered	= 0x0000,
     18	ncsi_dev_state_functional	= 0x0100,
     19	ncsi_dev_state_probe		= 0x0200,
     20	ncsi_dev_state_config		= 0x0300,
     21	ncsi_dev_state_suspend		= 0x0400,
     22};
     23
     24struct ncsi_dev {
     25	int               state;
     26	int		  link_up;
     27	struct net_device *dev;
     28	void		  (*handler)(struct ncsi_dev *ndev);
     29};
     30
     31#ifdef CONFIG_NET_NCSI
     32int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid);
     33int ncsi_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid);
     34struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
     35				   void (*notifier)(struct ncsi_dev *nd));
     36int ncsi_start_dev(struct ncsi_dev *nd);
     37void ncsi_stop_dev(struct ncsi_dev *nd);
     38void ncsi_unregister_dev(struct ncsi_dev *nd);
     39#else /* !CONFIG_NET_NCSI */
     40static inline int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
     41{
     42	return -EINVAL;
     43}
     44
     45static inline int ncsi_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid)
     46{
     47	return -EINVAL;
     48}
     49
     50static inline struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
     51					void (*notifier)(struct ncsi_dev *nd))
     52{
     53	return NULL;
     54}
     55
     56static inline int ncsi_start_dev(struct ncsi_dev *nd)
     57{
     58	return -ENOTTY;
     59}
     60
     61static void ncsi_stop_dev(struct ncsi_dev *nd)
     62{
     63}
     64
     65static inline void ncsi_unregister_dev(struct ncsi_dev *nd)
     66{
     67}
     68#endif /* CONFIG_NET_NCSI */
     69
     70#endif /* __NET_NCSI_H */