iPXE
|
A USB bus. More...
#include <usb.h>
Data Fields | |
const char * | name |
Name. More... | |
struct device * | dev |
Underlying hardware device. More... | |
struct usb_host_operations * | op |
Host controller operations set. More... | |
unsigned int | address |
Bus address. More... | |
size_t | mtu |
Largest transfer allowed on the bus. More... | |
unsigned long long | addresses |
Address in-use mask. More... | |
struct usb_hub * | hub |
Root hub. More... | |
struct list_head | list |
List of USB buses. More... | |
struct list_head | devices |
List of devices. More... | |
struct list_head | hubs |
List of hubs. More... | |
struct usb_bus_host_operations * | host |
Host controller operations. More... | |
void * | priv |
Host controller private data. More... | |
struct device* usb_bus::dev |
Underlying hardware device.
Definition at line 969 of file usb.h.
Referenced by alloc_usb_bus(), and ehci_poll_companions().
struct usb_host_operations* usb_bus::op |
Host controller operations set.
Definition at line 971 of file usb.h.
Referenced by usb_endpoint_open().
unsigned int usb_bus::address |
unsigned long long usb_bus::addresses |
Address in-use mask.
This is used only by buses which perform manual address assignment. USB allows for addresses in the range [1,127]. We use a simple bitmask which restricts us to the range [1,64]; this is unlikely to be a problem in practice. For comparison: controllers which perform autonomous address assignment (such as xHCI) typically allow for only 32 devices per bus anyway.
struct usb_hub* usb_bus::hub |
Root hub.
Definition at line 994 of file usb.h.
Referenced by alloc_usb(), ehci_probe(), register_usb(), register_usb_hub(), uhci_probe(), usbio_start(), xhci_port_status(), and xhci_probe().
struct usb_bus_host_operations* usb_bus::host |