USBA_HCDI_REGISTER(9F) Kernel Functions for Drivers USBA_HCDI_REGISTER(9F)

usba_hcdi_register, usba_hcdi_unregister
register and unregister HCD driver

#include <sys/usb/usba/hcdi.h>

int
usba_hcdi_register(usba_hcdi_register_args_t *args, uint_t flags);

void
usba_hcdi_unregister(dev_info_t *dip);

Volatile - illumos USB HCD private function

This is a private function that is not part of the stable DDI. It may be removed or changed at any time.

args
A pointer to a filled out registration structure. See usba_hcdi_register_args_t(9S) for the members to fill in.
flags
Should be set to 0.
dip
Pointer to the device's dev_info structure.

The usba_hcdi_register() and usba_hcdi_unregister() functions are used to register and unregister a USB HCDI driver from the USBA framework.

The usba_hcdi_register() function is called during a device driver's attach(9E) entry point after it has finished initializing the device. After this function successfully returns, device drivers should assume that the usba_hcdi_ops(9S) functions may be called at any time.

The usba_hcdi_unregister() function should be called during a driver's detach(9E) entry point after it has unbound its root hub, but before the remainder of the device's state is torn down. After calling the usba_hcdi_unregister() function, the driver will receive no more function calls to its usba_hcdi_ops(9S) entry points.

For more information on the initialization and finalization path of a USB HCD driver, see usba_hcdi(9E).

The usba_hcdi_register() function should only be called from a driver's attach(9E) entry point.

The usba_hcdi_unregister() function should only be called frm a driver's detach(9E) entry point.

Upon successful completion, the usba_hcdi_register() function returns USB_SUCCESS. Otherwise USB_FAILURE is returned to indicate that the device was not registered.

The usba_hcdi_unregister() function does not define any return values and always succeeds.

attach(9E), detach(9E), usba_hcdi(9E), usba_hcdi_ops(9S), usba_hcdi_register_args_t(9S)
November 26, 2017 OmniOS