1 /*
2  * QLogic qlcnic NIC Driver
3  * Copyright (c)  2009-2013 QLogic Corporation
4  *
5  * See LICENSE.qlcnic for copyright and licensing details.
6  */
7 
8 #ifndef __QLCNIC_DCBX_H
9 #define __QLCNIC_DCBX_H
10 
11 void qlcnic_clear_dcb_ops(struct qlcnic_adapter *);
12 
13 #ifdef CONFIG_QLCNIC_DCB
14 int __qlcnic_register_dcb(struct qlcnic_adapter *);
15 #else
16 static inline int __qlcnic_register_dcb(struct qlcnic_adapter *adapter)
17 { return 0; }
18 #endif
19 
20 struct qlcnic_dcb_ops {
21 	void (*init_dcbnl_ops) (struct qlcnic_adapter *);
22 	void (*free) (struct qlcnic_adapter *);
23 	int (*attach) (struct qlcnic_adapter *);
24 	int (*query_hw_capability) (struct qlcnic_adapter *, char *);
25 	int (*get_hw_capability) (struct qlcnic_adapter *);
26 	void (*get_info) (struct qlcnic_adapter *);
27 	int (*query_cee_param) (struct qlcnic_adapter *, char *, u8);
28 	int (*get_cee_cfg) (struct qlcnic_adapter *);
29 	int (*register_aen) (struct qlcnic_adapter *, bool);
30 	void (*handle_aen) (struct qlcnic_adapter *, void *);
31 };
32 
33 struct qlcnic_dcb {
34 	struct qlcnic_dcb_mbx_params	*param;
35 	struct qlcnic_adapter		*adapter;
36 	struct delayed_work		aen_work;
37 	struct workqueue_struct		*wq;
38 	struct qlcnic_dcb_ops		*ops;
39 	struct qlcnic_dcb_cfg		*cfg;
40 };
41 #endif
42