[netdevice] Provide function to retrieve the most recently opened net device

There are currently four places within the codebase that use a
heuristic to guess the "boot network device", with varying degrees of
success.  Add a feature to the net device core to maintain a list of
open network devices, in order of opening, and provide a function
last_opened_netdev() to retrieve the most recently opened net device.
This should do a better job than the current assortment of
guess_boot_netdev() functions.
This commit is contained in:
Michael Brown
2008-11-21 20:31:12 +00:00
parent 8e8a348fd4
commit 02a0215873
2 changed files with 29 additions and 0 deletions

View File

@@ -229,6 +229,8 @@ struct net_device {
struct refcnt refcnt;
/** List of network devices */
struct list_head list;
/** List of open network devices */
struct list_head open_list;
/** Name of this network device */
char name[8];
/** Underlying hardware device */
@@ -424,6 +426,7 @@ 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_location ( unsigned int bus_type,
unsigned int location );
extern struct net_device * last_opened_netdev ( void );
extern int net_tx ( struct io_buffer *iobuf, struct net_device *netdev,
struct net_protocol *net_protocol, const void *ll_dest );
extern int net_rx ( struct io_buffer *iobuf, struct net_device *netdev,