[usb] Add find_usb_bus_by_location() helper function
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
b3de9664c7
commit
a66fd8920d
@ -1976,6 +1976,26 @@ void free_usb_bus ( struct usb_bus *bus ) {
|
|||||||
free ( bus );
|
free ( bus );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find USB bus by device location
|
||||||
|
*
|
||||||
|
* @v bus_type Bus type
|
||||||
|
* @v location Bus location
|
||||||
|
* @ret bus USB bus, or NULL
|
||||||
|
*/
|
||||||
|
struct usb_bus * find_usb_bus_by_location ( unsigned int bus_type,
|
||||||
|
unsigned int location ) {
|
||||||
|
struct usb_bus *bus;
|
||||||
|
|
||||||
|
for_each_usb_bus ( bus ) {
|
||||||
|
if ( ( bus->dev->desc.bus_type == bus_type ) &&
|
||||||
|
( bus->dev->desc.location == location ) )
|
||||||
|
return bus;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
*
|
*
|
||||||
* USB address assignment
|
* USB address assignment
|
||||||
|
@ -1211,6 +1211,8 @@ extern struct usb_bus * alloc_usb_bus ( struct device *dev,
|
|||||||
extern int register_usb_bus ( struct usb_bus *bus );
|
extern int register_usb_bus ( struct usb_bus *bus );
|
||||||
extern void unregister_usb_bus ( struct usb_bus *bus );
|
extern void unregister_usb_bus ( struct usb_bus *bus );
|
||||||
extern void free_usb_bus ( struct usb_bus *bus );
|
extern void free_usb_bus ( struct usb_bus *bus );
|
||||||
|
extern struct usb_bus * find_usb_bus_by_location ( unsigned int bus_type,
|
||||||
|
unsigned int location );
|
||||||
|
|
||||||
extern int usb_alloc_address ( struct usb_bus *bus );
|
extern int usb_alloc_address ( struct usb_bus *bus );
|
||||||
extern void usb_free_address ( struct usb_bus *bus, unsigned int address );
|
extern void usb_free_address ( struct usb_bus *bus, unsigned int address );
|
||||||
|
Reference in New Issue
Block a user