iPXE
Data Fields
usb_bus Struct Reference

A USB bus. More...

#include <usb.h>

Data Fields

const char * name
 Name. More...
 
struct devicedev
 Underlying hardware device. More...
 
struct usb_host_operationsop
 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_hubhub
 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_operationshost
 Host controller operations. More...
 
void * priv
 Host controller private data. More...
 

Detailed Description

A USB bus.

Definition at line 965 of file usb.h.

Field Documentation

◆ name

const char* usb_bus::name

Name.

Definition at line 967 of file usb.h.

◆ dev

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().

◆ op

struct usb_host_operations* usb_bus::op

Host controller operations set.

Definition at line 971 of file usb.h.

Referenced by usb_endpoint_open().

◆ address

unsigned int usb_bus::address

Bus address.

This is an internal index used only to allow a USB device to be identified via a nominal bus:device address.

Definition at line 978 of file usb.h.

◆ mtu

size_t usb_bus::mtu

Largest transfer allowed on the bus.

Definition at line 980 of file usb.h.

◆ addresses

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 991 of file usb.h.

◆ hub

struct usb_hub* usb_bus::hub

◆ list

struct list_head usb_bus::list

List of USB buses.

Definition at line 997 of file usb.h.

◆ devices

struct list_head usb_bus::devices

List of devices.

Definition at line 999 of file usb.h.

◆ hubs

struct list_head usb_bus::hubs

List of hubs.

Definition at line 1001 of file usb.h.

◆ host

struct usb_bus_host_operations* usb_bus::host

Host controller operations.

Definition at line 1004 of file usb.h.

◆ priv

void* usb_bus::priv

Host controller private data.

Definition at line 1006 of file usb.h.


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