[intelxl] Expose functions required by virtual function driver

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/92/head
Michael Brown 2019-04-24 14:38:43 +01:00
parent 1e0342ebd8
commit 3078a952a8
2 changed files with 32 additions and 17 deletions

View File

@ -45,8 +45,6 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
* *
*/ */
static void intelxl_reopen_admin ( struct intelxl_nic *intelxl );
/****************************************************************************** /******************************************************************************
* *
* Device reset * Device reset
@ -238,7 +236,7 @@ static void intelxl_free_admin ( struct intelxl_nic *intelxl __unused,
* @v intelxl Intel device * @v intelxl Intel device
* @ret cmd Command descriptor * @ret cmd Command descriptor
*/ */
static struct intelxl_admin_descriptor * struct intelxl_admin_descriptor *
intelxl_admin_command_descriptor ( struct intelxl_nic *intelxl ) { intelxl_admin_command_descriptor ( struct intelxl_nic *intelxl ) {
struct intelxl_admin *admin = &intelxl->command; struct intelxl_admin *admin = &intelxl->command;
struct intelxl_admin_descriptor *cmd; struct intelxl_admin_descriptor *cmd;
@ -255,7 +253,7 @@ intelxl_admin_command_descriptor ( struct intelxl_nic *intelxl ) {
* @v intelxl Intel device * @v intelxl Intel device
* @ret buf Data buffer * @ret buf Data buffer
*/ */
static union intelxl_admin_buffer * union intelxl_admin_buffer *
intelxl_admin_command_buffer ( struct intelxl_nic *intelxl ) { intelxl_admin_command_buffer ( struct intelxl_nic *intelxl ) {
struct intelxl_admin *admin = &intelxl->command; struct intelxl_admin *admin = &intelxl->command;
union intelxl_admin_buffer *buf; union intelxl_admin_buffer *buf;
@ -295,7 +293,7 @@ static void intelxl_admin_event_init ( struct intelxl_nic *intelxl,
* @v intelxl Intel device * @v intelxl Intel device
* @ret rc Return status code * @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; struct intelxl_admin *admin = &intelxl->command;
const struct intelxl_admin_offsets *regs = admin->regs; const struct intelxl_admin_offsets *regs = admin->regs;
void *admin_regs = ( intelxl->regs + admin->base ); void *admin_regs = ( intelxl->regs + admin->base );
@ -696,7 +694,7 @@ static void intelxl_refill_admin ( struct intelxl_nic *intelxl ) {
* *
* @v netdev Network device * @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_nic *intelxl = netdev->priv;
struct intelxl_admin *admin = &intelxl->event; struct intelxl_admin *admin = &intelxl->event;
struct intelxl_admin_descriptor *evt; struct intelxl_admin_descriptor *evt;
@ -749,7 +747,7 @@ static void intelxl_poll_admin ( struct net_device *netdev ) {
* @v intelxl Intel device * @v intelxl Intel device
* @ret rc Return status code * @ret rc Return status code
*/ */
static int intelxl_open_admin ( struct intelxl_nic *intelxl ) { int intelxl_open_admin ( struct intelxl_nic *intelxl ) {
int rc; int rc;
/* Allocate admin event queue */ /* Allocate admin event queue */
@ -789,7 +787,7 @@ static int intelxl_open_admin ( struct intelxl_nic *intelxl ) {
* *
* @v intelxl Intel device * @v intelxl Intel device
*/ */
static void intelxl_reopen_admin ( struct intelxl_nic *intelxl ) { void intelxl_reopen_admin ( struct intelxl_nic *intelxl ) {
unsigned int i; unsigned int i;
/* Enable admin event queue */ /* Enable admin event queue */
@ -811,7 +809,7 @@ static void intelxl_reopen_admin ( struct intelxl_nic *intelxl ) {
* *
* @v intelxl Intel device * @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 */ /* Shut down admin queues */
intelxl_admin_shutdown ( intelxl ); intelxl_admin_shutdown ( intelxl );
@ -839,8 +837,8 @@ static void intelxl_close_admin ( struct intelxl_nic *intelxl ) {
* @v ring Descriptor ring * @v ring Descriptor ring
* @ret rc Return status code * @ret rc Return status code
*/ */
static int intelxl_alloc_ring ( struct intelxl_nic *intelxl, int intelxl_alloc_ring ( struct intelxl_nic *intelxl,
struct intelxl_ring *ring ) { struct intelxl_ring *ring ) {
physaddr_t address; physaddr_t address;
int rc; int rc;
@ -880,8 +878,8 @@ static int intelxl_alloc_ring ( struct intelxl_nic *intelxl,
* @v intelxl Intel device * @v intelxl Intel device
* @v ring Descriptor ring * @v ring Descriptor ring
*/ */
static void intelxl_free_ring ( struct intelxl_nic *intelxl __unused, void intelxl_free_ring ( struct intelxl_nic *intelxl __unused,
struct intelxl_ring *ring ) { struct intelxl_ring *ring ) {
/* Free descriptor ring */ /* Free descriptor ring */
free_dma ( ring->desc.raw, ring->len ); free_dma ( ring->desc.raw, ring->len );
@ -1253,7 +1251,7 @@ static void intelxl_refill_rx ( struct intelxl_nic *intelxl ) {
* *
* @v intelxl Intel device * @v intelxl Intel device
*/ */
static void intelxl_empty_rx ( struct intelxl_nic *intelxl ) { void intelxl_empty_rx ( struct intelxl_nic *intelxl ) {
unsigned int i; unsigned int i;
/* Discard any unused receive buffers */ /* Discard any unused receive buffers */
@ -1381,8 +1379,7 @@ static void intelxl_close ( struct net_device *netdev ) {
* @v iobuf I/O buffer * @v iobuf I/O buffer
* @ret rc Return status code * @ret rc Return status code
*/ */
static int intelxl_transmit ( struct net_device *netdev, int intelxl_transmit ( struct net_device *netdev, struct io_buffer *iobuf ) {
struct io_buffer *iobuf ) {
struct intelxl_nic *intelxl = netdev->priv; struct intelxl_nic *intelxl = netdev->priv;
struct intelxl_tx_data_descriptor *tx; struct intelxl_tx_data_descriptor *tx;
unsigned int tx_idx; unsigned int tx_idx;
@ -1504,7 +1501,7 @@ static void intelxl_poll_rx ( struct net_device *netdev ) {
* *
* @v netdev Network device * @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; struct intelxl_nic *intelxl = netdev->priv;
/* Acknowledge interrupts, if applicable */ /* Acknowledge interrupts, if applicable */

View File

@ -851,6 +851,24 @@ struct intelxl_nic {
struct io_buffer *rx_iobuf[INTELXL_RX_NUM_DESC]; 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, extern void intelxlvf_admin_event ( struct net_device *netdev,
struct intelxl_admin_descriptor *evt, struct intelxl_admin_descriptor *evt,
union intelxl_admin_buffer *buf ); union intelxl_admin_buffer *buf );