36#ifndef _IXGBE_SRIOV_H_
37#define _IXGBE_SRIOV_H_
42#include <sys/iov_schema.h>
43#include <dev/pci/pci_iov.h>
47#define IXGBE_VF_CTS (1 << 0)
48#define IXGBE_VF_CAP_MAC (1 << 1)
49#define IXGBE_VF_CAP_VLAN (1 << 2)
50#define IXGBE_VF_ACTIVE (1 << 3)
51#define IXGBE_VF_INDEX(vmdq) ((vmdq) / 32)
52#define IXGBE_VF_BIT(vmdq) (1 << ((vmdq) % 32))
54#define IXGBE_VT_MSG_MASK 0xFFFF
56#define IXGBE_VT_MSGINFO(msg) \
57 (((msg) & IXGBE_VT_MSGINFO_MASK) >> IXGBE_VT_MSGINFO_SHIFT)
59#define IXGBE_VF_GET_QUEUES_RESP_LEN 5
61#define IXGBE_API_VER_1_0 0
62#define IXGBE_API_VER_2_0 1
63#define IXGBE_API_VER_1_1 2
64#define IXGBE_API_VER_UNKNOWN UINT16_MAX
70int ixgbe_if_iov_vf_add(if_ctx_t,
u16,
const nvlist_t *);
71int ixgbe_if_iov_init(if_ctx_t,
u16,
const nvlist_t *);
72void ixgbe_if_iov_uninit(if_ctx_t);
87#define ixgbe_add_vf(_a,_b,_c)
88#define ixgbe_init_iov(_a,_b,_c)
89#define ixgbe_uninit_iov(_a)
90#define ixgbe_initialize_iov(_a)
91#define ixgbe_recalculate_max_frame(_a)
92#define ixgbe_ping_all_vfs(_a)
93#define ixgbe_pci_iov_detach(_a) 0
94#define ixgbe_define_iov_schemas(_a,_b)
95#define ixgbe_align_all_queue_indices(_a)
96#define ixgbe_vf_que_index(_a, _b, _c) (_c)
97#define ixgbe_get_mtqc(_a) IXGBE_MTQC_64Q_1PB
98#define ixgbe_get_mrqc(_a) 0
#define ixgbe_vf_que_index(_a, _b, _c)
#define ixgbe_get_mrqc(_a)
#define ixgbe_align_all_queue_indices(_a)
#define ixgbe_pci_iov_detach(_a)
void ixgbe_if_init(if_ctx_t ctx)
void ixgbe_handle_mbx(void *)
#define ixgbe_ping_all_vfs(_a)
#define ixgbe_define_iov_schemas(_a, _b)
#define ixgbe_initialize_iov(_a)
#define ixgbe_get_mtqc(_a)
#define ixgbe_recalculate_max_frame(_a)