diff options
author | Michael Brown | 2007-01-10 17:16:05 +0100 |
---|---|---|
committer | Michael Brown | 2007-01-10 17:16:05 +0100 |
commit | 1fa5cd0e2b3bd6c85ff4c58594e609ed11bc407d (patch) | |
tree | 1cf2bbc1fc418b1fdd0f49715f1b0ad00a41ee6d /src | |
parent | Add device description fields to struct device. (diff) | |
download | ipxe-1fa5cd0e2b3bd6c85ff4c58594e609ed11bc407d.tar.gz ipxe-1fa5cd0e2b3bd6c85ff4c58594e609ed11bc407d.tar.xz ipxe-1fa5cd0e2b3bd6c85ff4c58594e609ed11bc407d.zip |
Add find_pci_netdev()
Diffstat (limited to 'src')
-rw-r--r-- | src/include/gpxe/netdevice.h | 2 | ||||
-rw-r--r-- | src/net/netdevice.c | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/include/gpxe/netdevice.h b/src/include/gpxe/netdevice.h index b029d16a..f9d507bf 100644 --- a/src/include/gpxe/netdevice.h +++ b/src/include/gpxe/netdevice.h @@ -264,6 +264,8 @@ extern void netdev_close ( struct net_device *netdev ); extern void unregister_netdev ( struct net_device *netdev ); extern void free_netdev ( struct net_device *netdev ); struct net_device * find_netdev ( const char *name ); +struct net_device * find_pci_netdev ( unsigned int busdevfn ); + extern int net_tx ( struct pk_buff *pkb, struct net_device *netdev, struct net_protocol *net_protocol, const void *ll_dest ); extern int net_rx ( struct pk_buff *pkb, struct net_device *netdev, diff --git a/src/net/netdevice.c b/src/net/netdevice.c index d8de81be..be3d1ffe 100644 --- a/src/net/netdevice.c +++ b/src/net/netdevice.c @@ -314,6 +314,24 @@ struct net_device * find_netdev ( const char *name ) { } /** + * Get network device by PCI bus:dev.fn address + * + * @v busdevfn PCI bus:dev.fn address + * @ret netdev Network device, or NULL + */ +struct net_device * find_pci_netdev ( unsigned int busdevfn ) { + struct net_device *netdev; + + list_for_each_entry ( netdev, &net_devices, list ) { + if ( ( netdev->dev->desc.bus_type == BUS_TYPE_PCI ) && + ( netdev->dev->desc.pci.busdevfn == busdevfn ) ) + return netdev; + } + + return NULL; +} + +/** * Transmit network-layer packet * * @v pkb Packet buffer |