iPXE
Data Fields
usb_bus Struct Reference

A USB bus. More...

#include <usb.h>

Data Fields

const char * name
 Name.
struct devicedev
 Underlying hardware device.
struct usb_host_operationsop
 Host controller operations set.
size_t mtu
 Largest transfer allowed on the bus.
unsigned long long addresses
 Address in-use mask.
struct usb_hubhub
 Root hub.
struct list_head list
 List of USB buses.
struct list_head devices
 List of devices.
struct list_head hubs
 List of hubs.
struct usb_bus_host_operationshost
 Host controller operations.
void * priv
 Host controller private data.

Detailed Description

A USB bus.

Definition at line 949 of file usb.h.


Field Documentation

const char* usb_bus::name

Name.

Definition at line 951 of file usb.h.

Referenced by alloc_usb_bus(), alloc_usb_hub(), and ehci_poll_companions().

Underlying hardware device.

Definition at line 953 of file usb.h.

Referenced by alloc_usb_bus(), ehci_poll_companions(), find_usb_bus_by_location(), and usb_probe_all().

Host controller operations set.

Definition at line 955 of file usb.h.

Referenced by alloc_usb(), alloc_usb_bus(), alloc_usb_hub(), and usb_endpoint_open().

Largest transfer allowed on the bus.

Definition at line 958 of file usb.h.

Referenced by alloc_usb_bus(), and ncm_in_prefill().

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.

Definition at line 969 of file usb.h.

Referenced by usb_alloc_address(), and usb_free_address().

List of USB buses.

Definition at line 975 of file usb.h.

Referenced by register_usb_bus(), and unregister_usb_bus().

List of devices.

Definition at line 977 of file usb.h.

Referenced by alloc_usb_bus(), free_usb_bus(), register_usb(), and unregister_usb_bus().

List of hubs.

Definition at line 979 of file usb.h.

Referenced by alloc_usb_bus(), free_usb_bus(), register_usb_hub(), and unregister_usb_bus().

Host controller operations.

Definition at line 982 of file usb.h.

Referenced by alloc_usb_bus(), register_usb_bus(), and unregister_usb_bus().

Host controller private data.

Definition at line 984 of file usb.h.


The documentation for this struct was generated from the following file: