root/include/net/ncsi.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. ncsi_vlan_rx_add_vid
  2. ncsi_vlan_rx_kill_vid
  3. ncsi_register_dev
  4. ncsi_start_dev
  5. ncsi_stop_dev
  6. ncsi_unregister_dev

   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  */
  16 enum {
  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 
  24 struct 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
  32 int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid);
  33 int ncsi_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid);
  34 struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
  35                                    void (*notifier)(struct ncsi_dev *nd));
  36 int ncsi_start_dev(struct ncsi_dev *nd);
  37 void ncsi_stop_dev(struct ncsi_dev *nd);
  38 void ncsi_unregister_dev(struct ncsi_dev *nd);
  39 #else /* !CONFIG_NET_NCSI */
  40 static inline int ncsi_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
  41 {
  42         return -EINVAL;
  43 }
  44 
  45 static inline int ncsi_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid)
  46 {
  47         return -EINVAL;
  48 }
  49 
  50 static inline struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
  51                                         void (*notifier)(struct ncsi_dev *nd))
  52 {
  53         return NULL;
  54 }
  55 
  56 static inline int ncsi_start_dev(struct ncsi_dev *nd)
  57 {
  58         return -ENOTTY;
  59 }
  60 
  61 static void ncsi_stop_dev(struct ncsi_dev *nd)
  62 {
  63 }
  64 
  65 static inline void ncsi_unregister_dev(struct ncsi_dev *nd)
  66 {
  67 }
  68 #endif /* CONFIG_NET_NCSI */
  69 
  70 #endif /* __NET_NCSI_H */

/* [<][>][^][v][top][bottom][index][help] */