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