2 * QLogic qlcnic NIC Driver
3 * Copyright (c) 2009-2013 QLogic Corporation
5 * See LICENSE.qlcnic for copyright and licensing details.
8 #ifndef _QLCNIC_83XX_SRIOV_H_
9 #define _QLCNIC_83XX_SRIOV_H_
12 #include <linux/types.h>
13 #include <linux/pci.h>
15 extern const u32 qlcnic_83xx_reg_tbl[];
16 extern const u32 qlcnic_83xx_ext_reg_tbl[];
18 struct qlcnic_resources {
19 u16 num_tx_mac_filters;
20 u16 num_rx_ucast_mac_filters;
21 u16 num_rx_mcast_mac_filters;
29 u16 num_rx_status_rings;
32 u32 num_lro_flows_supported;
33 u16 max_local_ipv6_addrs;
34 u16 max_remote_ipv6_addrs;
40 struct qlcnic_resources ff_max;
43 int qlcnic_sriov_init(struct qlcnic_adapter *, int);
44 void qlcnic_sriov_cleanup(struct qlcnic_adapter *);
45 void __qlcnic_sriov_cleanup(struct qlcnic_adapter *);
46 void qlcnic_sriov_vf_register_map(struct qlcnic_hardware_context *);
47 int qlcnic_sriov_vf_init(struct qlcnic_adapter *, int);
48 void qlcnic_sriov_vf_set_ops(struct qlcnic_adapter *);
50 static inline bool qlcnic_sriov_enable_check(struct qlcnic_adapter *adapter)
52 return test_bit(__QLCNIC_SRIOV_ENABLE, &adapter->state) ? true : false;
55 #ifdef CONFIG_QLCNIC_SRIOV
56 void qlcnic_sriov_pf_disable(struct qlcnic_adapter *);
57 void qlcnic_sriov_pf_cleanup(struct qlcnic_adapter *);
58 int qlcnic_pci_sriov_configure(struct pci_dev *, int);
60 static inline void qlcnic_sriov_pf_disable(struct qlcnic_adapter *adapter) {}
61 static inline void qlcnic_sriov_pf_cleanup(struct qlcnic_adapter *adapter) {}