# Uhcd

## Function Table

| Address | Name | Description |
|---------|------|-------------|
|  | **UsbRtAllocPages** |  |
|  | **LocateAndInitXhciController** |  |
|  | **XhciCapabilityProbe** |  |
|  | **UsbBusInstallDevice** |  |
|  | **UsbBusUninstallDevice** |  |
|  | **UsbBusRemoveDeviceGroup** |  |
|  | **UsbHcNodeTimerCheck** |  |
|  | **UsbHcControlTransfer** |  |
|  | **UsbHcBulkTransfer** |  |
|  | **UsbHcAsyncInterruptTransfer** |  |
|  | **UsbHcSyncInterruptTransfer** |  |
|  | **UsbHcIsochronousTransfer** |  |
|  | **UsbHcAsyncIsochronousTransfer** |  |
|  | **UsbHcGetRootHubPortStatus** |  |
|  | **UsbHcSetRootHubPortFeature** |  |
|  | **UsbHcClearRootHubPortFeature** |  |
|  | **UsbHcSetState** |  |
|  | **UsbBusLoadEndpointPolicy** |  |
|  | **UsbBusConfigureEndpoints** |  |
|  | **UsbBusGetDeviceDescriptor** |  |
|  | **UhcdDriverBindingSupported** |  |
|  | **UhcdDriverBindingStart** |  |
|  | **UhcdDriverBindingStop** |  |
|  | **UhcdDriverBindingStopChild** |  |
|  | **UhcdDriverEntryPoint** |  |
|  | **ModuleEntryPoint** |  |
| Save | **global table pointers** |  |
| if | **(gSystemTable == NULL) {** |  |
| Check | **firmware variable: UsbSupport must be enabled (=1)** |  |
| VarSize | **= sizeof (UsbEnabled);** |  |
| Allocate | **main driver context (gUsbData)** |  |
| gUsbData | **= AllocateRuntimePool (sizeof (USB_DATA));** |  |
| Allocate | **device address map** |  |
| Initialize | **timer list head (self-referencing)** |  |
| InitializeListHead | **(&gUsbData->TimerListHead);** |  |
| Allocate | **memory map via PciIo->AllocateBuffer** |  |
| Allocate | **gUsbCallbacks vtable and populate function pointers** |  |
| gUsbCallbacks | **= AllocatePool (sizeof (USB_HC_CALLBACKS));** |  |
| Install | **USB_HC protocol interface** |  |
| Install | **USB_BUS protocol, UHCD timer event, etc.** |  |
| DEBUG | **((DEBUG_INFO, "AmiUsb Version: %d\n", *(UINT8*)gUsbData));** |  |

---
*Generated by HR650X BIOS Decompilation Project*