diff options
| -rw-r--r-- | src/include/ipxe/netdevice.h | 1 | ||||
| -rw-r--r-- | src/net/netdevice.c | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/include/ipxe/netdevice.h b/src/include/ipxe/netdevice.h index 7f819d9ab..2d08f34ff 100644 --- a/src/include/ipxe/netdevice.h +++ b/src/include/ipxe/netdevice.h @@ -605,6 +605,7 @@ extern void netdev_close ( struct net_device *netdev ); extern void unregister_netdev ( struct net_device *netdev ); extern void netdev_irq ( struct net_device *netdev, int enable ); extern struct net_device * find_netdev ( const char *name ); +extern struct net_device * find_netdev_by_index ( unsigned int index ); extern struct net_device * find_netdev_by_location ( unsigned int bus_type, unsigned int location ); extern struct net_device * last_opened_netdev ( void ); diff --git a/src/net/netdevice.c b/src/net/netdevice.c index 283632f62..c7c86c1a2 100644 --- a/src/net/netdevice.c +++ b/src/net/netdevice.c @@ -685,6 +685,24 @@ struct net_device * find_netdev ( const char *name ) { } /** + * Get network device by index + * + * @v index Network device index + * @ret netdev Network device, or NULL + */ +struct net_device * find_netdev_by_index ( unsigned int index ) { + struct net_device *netdev; + + /* Identify network device by index */ + list_for_each_entry ( netdev, &net_devices, list ) { + if ( netdev->index == index ) + return netdev; + } + + return NULL; +} + +/** * Get network device by PCI bus:dev.fn address * * @v bus_type Bus type |
