mirror of
https://github.com/ipxe/ipxe
synced 2025-12-17 18:11:49 +03:00
[intelxl] Provide a mechanism for handling "send to VF" events
Provide a weak stub function for handling the "send to VF" event used for communications between the physical and virtual function drivers. Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -658,6 +658,21 @@ static int intelxl_admin_link ( struct net_device *netdev ) {
|
|||||||
return 0;
|
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
|
* Refill admin event queue
|
||||||
*
|
*
|
||||||
@@ -711,6 +726,9 @@ static void intelxl_poll_admin ( struct net_device *netdev ) {
|
|||||||
case cpu_to_le16 ( INTELXL_ADMIN_LINK ):
|
case cpu_to_le16 ( INTELXL_ADMIN_LINK ):
|
||||||
intelxl_admin_link ( netdev );
|
intelxl_admin_link ( netdev );
|
||||||
break;
|
break;
|
||||||
|
case cpu_to_le16 ( INTELXL_ADMIN_SEND_TO_VF ):
|
||||||
|
intelxlvf_admin_event ( netdev, evt, buf );
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
DBGC ( intelxl, "INTELXL %p admin event %#x "
|
DBGC ( intelxl, "INTELXL %p admin event %#x "
|
||||||
"unrecognised opcode %#04x\n", intelxl,
|
"unrecognised opcode %#04x\n", intelxl,
|
||||||
|
|||||||
@@ -289,6 +289,12 @@ struct intelxl_admin_link_params {
|
|||||||
/** Link is up */
|
/** Link is up */
|
||||||
#define INTELXL_ADMIN_LINK_UP 0x01
|
#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 */
|
/** Admin queue command parameters */
|
||||||
union intelxl_admin_params {
|
union intelxl_admin_params {
|
||||||
/** Additional data buffer command parameters */
|
/** Additional data buffer command parameters */
|
||||||
@@ -824,4 +830,8 @@ struct intelxl_nic {
|
|||||||
struct io_buffer *rx_iobuf[INTELXL_RX_NUM_DESC];
|
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 */
|
#endif /* _INTELXL_H */
|
||||||
|
|||||||
Reference in New Issue
Block a user