From 3078a952a83d8af37f40a82e93461c087efa7e5a Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 24 Apr 2019 14:38:43 +0100 Subject: [intelxl] Expose functions required by virtual function driver Signed-off-by: Michael Brown --- src/drivers/net/intelxl.c | 31 ++++++++++++++----------------- src/drivers/net/intelxl.h | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/src/drivers/net/intelxl.c b/src/drivers/net/intelxl.c index 3a59a746..973f1d91 100644 --- a/src/drivers/net/intelxl.c +++ b/src/drivers/net/intelxl.c @@ -45,8 +45,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); * */ -static void intelxl_reopen_admin ( struct intelxl_nic *intelxl ); - /****************************************************************************** * * Device reset @@ -238,7 +236,7 @@ static void intelxl_free_admin ( struct intelxl_nic *intelxl __unused, * @v intelxl Intel device * @ret cmd Command descriptor */ -static struct intelxl_admin_descriptor * +struct intelxl_admin_descriptor * intelxl_admin_command_descriptor ( struct intelxl_nic *intelxl ) { struct intelxl_admin *admin = &intelxl->command; struct intelxl_admin_descriptor *cmd; @@ -255,7 +253,7 @@ intelxl_admin_command_descriptor ( struct intelxl_nic *intelxl ) { * @v intelxl Intel device * @ret buf Data buffer */ -static union intelxl_admin_buffer * +union intelxl_admin_buffer * intelxl_admin_command_buffer ( struct intelxl_nic *intelxl ) { struct intelxl_admin *admin = &intelxl->command; union intelxl_admin_buffer *buf; @@ -295,7 +293,7 @@ static void intelxl_admin_event_init ( struct intelxl_nic *intelxl, * @v intelxl Intel device * @ret rc Return status code */ -static int intelxl_admin_command ( struct intelxl_nic *intelxl ) { +int intelxl_admin_command ( struct intelxl_nic *intelxl ) { struct intelxl_admin *admin = &intelxl->command; const struct intelxl_admin_offsets *regs = admin->regs; void *admin_regs = ( intelxl->regs + admin->base ); @@ -696,7 +694,7 @@ static void intelxl_refill_admin ( struct intelxl_nic *intelxl ) { * * @v netdev Network device */ -static void intelxl_poll_admin ( struct net_device *netdev ) { +void intelxl_poll_admin ( struct net_device *netdev ) { struct intelxl_nic *intelxl = netdev->priv; struct intelxl_admin *admin = &intelxl->event; struct intelxl_admin_descriptor *evt; @@ -749,7 +747,7 @@ static void intelxl_poll_admin ( struct net_device *netdev ) { * @v intelxl Intel device * @ret rc Return status code */ -static int intelxl_open_admin ( struct intelxl_nic *intelxl ) { +int intelxl_open_admin ( struct intelxl_nic *intelxl ) { int rc; /* Allocate admin event queue */ @@ -789,7 +787,7 @@ static int intelxl_open_admin ( struct intelxl_nic *intelxl ) { * * @v intelxl Intel device */ -static void intelxl_reopen_admin ( struct intelxl_nic *intelxl ) { +void intelxl_reopen_admin ( struct intelxl_nic *intelxl ) { unsigned int i; /* Enable admin event queue */ @@ -811,7 +809,7 @@ static void intelxl_reopen_admin ( struct intelxl_nic *intelxl ) { * * @v intelxl Intel device */ -static void intelxl_close_admin ( struct intelxl_nic *intelxl ) { +void intelxl_close_admin ( struct intelxl_nic *intelxl ) { /* Shut down admin queues */ intelxl_admin_shutdown ( intelxl ); @@ -839,8 +837,8 @@ static void intelxl_close_admin ( struct intelxl_nic *intelxl ) { * @v ring Descriptor ring * @ret rc Return status code */ -static int intelxl_alloc_ring ( struct intelxl_nic *intelxl, - struct intelxl_ring *ring ) { +int intelxl_alloc_ring ( struct intelxl_nic *intelxl, + struct intelxl_ring *ring ) { physaddr_t address; int rc; @@ -880,8 +878,8 @@ static int intelxl_alloc_ring ( struct intelxl_nic *intelxl, * @v intelxl Intel device * @v ring Descriptor ring */ -static void intelxl_free_ring ( struct intelxl_nic *intelxl __unused, - struct intelxl_ring *ring ) { +void intelxl_free_ring ( struct intelxl_nic *intelxl __unused, + struct intelxl_ring *ring ) { /* Free descriptor ring */ free_dma ( ring->desc.raw, ring->len ); @@ -1253,7 +1251,7 @@ static void intelxl_refill_rx ( struct intelxl_nic *intelxl ) { * * @v intelxl Intel device */ -static void intelxl_empty_rx ( struct intelxl_nic *intelxl ) { +void intelxl_empty_rx ( struct intelxl_nic *intelxl ) { unsigned int i; /* Discard any unused receive buffers */ @@ -1381,8 +1379,7 @@ static void intelxl_close ( struct net_device *netdev ) { * @v iobuf I/O buffer * @ret rc Return status code */ -static int intelxl_transmit ( struct net_device *netdev, - struct io_buffer *iobuf ) { +int intelxl_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) { struct intelxl_nic *intelxl = netdev->priv; struct intelxl_tx_data_descriptor *tx; unsigned int tx_idx; @@ -1504,7 +1501,7 @@ static void intelxl_poll_rx ( struct net_device *netdev ) { * * @v netdev Network device */ -static void intelxl_poll ( struct net_device *netdev ) { +void intelxl_poll ( struct net_device *netdev ) { struct intelxl_nic *intelxl = netdev->priv; /* Acknowledge interrupts, if applicable */ diff --git a/src/drivers/net/intelxl.h b/src/drivers/net/intelxl.h index 8158e072..2e744415 100644 --- a/src/drivers/net/intelxl.h +++ b/src/drivers/net/intelxl.h @@ -851,6 +851,24 @@ struct intelxl_nic { struct io_buffer *rx_iobuf[INTELXL_RX_NUM_DESC]; }; +extern struct intelxl_admin_descriptor * +intelxl_admin_command_descriptor ( struct intelxl_nic *intelxl ); +extern union intelxl_admin_buffer * +intelxl_admin_command_buffer ( struct intelxl_nic *intelxl ); +extern int intelxl_admin_command ( struct intelxl_nic *intelxl ); +extern void intelxl_poll_admin ( struct net_device *netdev ); +extern int intelxl_open_admin ( struct intelxl_nic *intelxl ); +extern void intelxl_reopen_admin ( struct intelxl_nic *intelxl ); +extern void intelxl_close_admin ( struct intelxl_nic *intelxl ); +extern int intelxl_alloc_ring ( struct intelxl_nic *intelxl, + struct intelxl_ring *ring ); +extern void intelxl_free_ring ( struct intelxl_nic *intelxl, + struct intelxl_ring *ring ); +extern void intelxl_empty_rx ( struct intelxl_nic *intelxl ); +extern int intelxl_transmit ( struct net_device *netdev, + struct io_buffer *iobuf ); +extern void intelxl_poll ( struct net_device *netdev ); + extern void intelxlvf_admin_event ( struct net_device *netdev, struct intelxl_admin_descriptor *evt, union intelxl_admin_buffer *buf ); -- cgit v1.2.3-55-g7522