return 0;
}
+/**
+ * Handle virtual function event (when VF driver is not present)
+ *
+ * @v netdev Network device
+ * @v evt Admin queue event descriptor
+ * @v buf Admin queue event data buffer
+ */
+__weak void
+intelxlvf_admin_event ( struct net_device *netdev __unused,
+ struct intelxl_admin_descriptor *evt __unused,
+ union intelxl_admin_buffer *buf __unused ) {
+
+ /* Nothing to do */
+}
+
/**
* Refill admin event queue
*
case cpu_to_le16 ( INTELXL_ADMIN_LINK ):
intelxl_admin_link ( netdev );
break;
+ case cpu_to_le16 ( INTELXL_ADMIN_SEND_TO_VF ):
+ intelxlvf_admin_event ( netdev, evt, buf );
+ break;
default:
DBGC ( intelxl, "INTELXL %p admin event %#x "
"unrecognised opcode %#04x\n", intelxl,
/** Link is up */
#define INTELXL_ADMIN_LINK_UP 0x01
+/** Admin queue Send Message to PF command */
+#define INTELXL_ADMIN_SEND_TO_PF 0x0801
+
+/** Admin queue Send Message to VF command */
+#define INTELXL_ADMIN_SEND_TO_VF 0x0802
+
/** Admin queue command parameters */
union intelxl_admin_params {
/** Additional data buffer command parameters */
struct io_buffer *rx_iobuf[INTELXL_RX_NUM_DESC];
};
+extern void intelxlvf_admin_event ( struct net_device *netdev,
+ struct intelxl_admin_descriptor *evt,
+ union intelxl_admin_buffer *buf );
+
#endif /* _INTELXL_H */