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

Field Documentation

◆ name

const char* usb_bus::name


Definition at line 953 of file usb.h.

◆ dev

struct device* usb_bus::dev

Underlying hardware device.

Definition at line 955 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 957 of file usb.h.

Referenced by usb_endpoint_open().

◆ mtu

size_t usb_bus::mtu

Largest transfer allowed on the bus.

Definition at line 960 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 971 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 977 of file usb.h.

◆ devices

struct list_head usb_bus::devices

List of devices.

Definition at line 979 of file usb.h.

◆ hubs

struct list_head usb_bus::hubs

List of hubs.

Definition at line 981 of file usb.h.

◆ host

struct usb_bus_host_operations* usb_bus::host

Host controller operations.

Definition at line 984 of file usb.h.

◆ priv

void* usb_bus::priv

Host controller private data.

Definition at line 986 of file usb.h.

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