qlcnic_dcb.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. #ifndef __QLCNIC_DCBX_H
  8. #define __QLCNIC_DCBX_H
  9. void qlcnic_clear_dcb_ops(struct qlcnic_adapter *);
  10. #ifdef CONFIG_QLCNIC_DCB
  11. int __qlcnic_register_dcb(struct qlcnic_adapter *);
  12. #else
  13. static inline int __qlcnic_register_dcb(struct qlcnic_adapter *adapter)
  14. { return 0; }
  15. #endif
  16. struct qlcnic_dcb_ops {
  17. void (*init_dcbnl_ops) (struct qlcnic_adapter *);
  18. void (*free) (struct qlcnic_adapter *);
  19. int (*attach) (struct qlcnic_adapter *);
  20. int (*query_hw_capability) (struct qlcnic_adapter *, char *);
  21. int (*get_hw_capability) (struct qlcnic_adapter *);
  22. void (*get_info) (struct qlcnic_adapter *);
  23. int (*query_cee_param) (struct qlcnic_adapter *, char *, u8);
  24. int (*get_cee_cfg) (struct qlcnic_adapter *);
  25. int (*register_aen) (struct qlcnic_adapter *, bool);
  26. void (*handle_aen) (struct qlcnic_adapter *, void *);
  27. };
  28. struct qlcnic_dcb {
  29. struct qlcnic_dcb_mbx_params *param;
  30. struct qlcnic_adapter *adapter;
  31. struct delayed_work aen_work;
  32. struct workqueue_struct *wq;
  33. struct qlcnic_dcb_ops *ops;
  34. struct qlcnic_dcb_cfg *cfg;
  35. };
  36. #endif