Blame view

include/net/ncsi.h 1.52 KB
2d283bdd0   Gavin Shan   net/ncsi: Resourc...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
  #ifndef __NET_NCSI_H
  #define __NET_NCSI_H
  
  /*
   * The NCSI device states seen from external. More NCSI device states are
   * only visible internally (in net/ncsi/internal.h). When the NCSI device
   * is registered, it's in ncsi_dev_state_registered state. The state
   * ncsi_dev_state_start is used to drive to choose active package and
   * channel. After that, its state is changed to ncsi_dev_state_functional.
   *
   * The state ncsi_dev_state_stop helps to shut down the currently active
   * package and channel while ncsi_dev_state_config helps to reconfigure
   * them.
   */
  enum {
  	ncsi_dev_state_registered	= 0x0000,
  	ncsi_dev_state_functional	= 0x0100,
  	ncsi_dev_state_probe		= 0x0200,
  	ncsi_dev_state_config		= 0x0300,
  	ncsi_dev_state_suspend		= 0x0400,
  };
  
  struct ncsi_dev {
  	int               state;
  	int		  link_up;
  	struct net_device *dev;
  	void		  (*handler)(struct ncsi_dev *ndev);
  };
  
  #ifdef CONFIG_NET_NCSI
  struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
  				   void (*notifier)(struct ncsi_dev *nd));
e6f44ed6d   Gavin Shan   net/ncsi: Package...
33
  int ncsi_start_dev(struct ncsi_dev *nd);
c0cd1ba4f   Gavin Shan   net/ncsi: Introdu...
34
  void ncsi_stop_dev(struct ncsi_dev *nd);
2d283bdd0   Gavin Shan   net/ncsi: Resourc...
35
36
37
38
39
40
41
  void ncsi_unregister_dev(struct ncsi_dev *nd);
  #else /* !CONFIG_NET_NCSI */
  static inline struct ncsi_dev *ncsi_register_dev(struct net_device *dev,
  					void (*notifier)(struct ncsi_dev *nd))
  {
  	return NULL;
  }
e6f44ed6d   Gavin Shan   net/ncsi: Package...
42
43
44
45
  static inline int ncsi_start_dev(struct ncsi_dev *nd)
  {
  	return -ENOTTY;
  }
c0cd1ba4f   Gavin Shan   net/ncsi: Introdu...
46
47
48
  static void ncsi_stop_dev(struct ncsi_dev *nd)
  {
  }
2d283bdd0   Gavin Shan   net/ncsi: Resourc...
49
50
51
52
53
54
  static inline void ncsi_unregister_dev(struct ncsi_dev *nd)
  {
  }
  #endif /* CONFIG_NET_NCSI */
  
  #endif /* __NET_NCSI_H */