usba_hcdi_device_init, usba_hcdi_device_finiUSB device initialization and finalization

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

prefix_hcdi_device_init(usba_device_t *usb_device, usb_port_t port, void **hcd_privatep);

prefix_hcdi_device_fini(usba_device_t *usb_device, usb_port_t port, void *hcd_private);

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.

Pointer to a USB device structure.
The port number the device was detected on.
Pointer to storage space for a HCD driver to store private data for the device.
Pointer to the HCD driver's private data for the device.

The () entry point is an optional entry point. It will be called when child devices of the root hub are being initialized. A call to this entry point will occur before any calls to open a pipe to the child device through the usba_hcdi_pipe_open(9E) entry point.

During this time, the HCD driver should do any required initialization required by the host controller. The HCD may also opt to store private data for this device as a result of whatever initialization it performed. The data should be stored in the hcd_privatep pointer. Data stored this will be accessible to the HCD driver through the usba_hcdi_get_device_private(9F) function.

The () entry point is an optional entry point. It will be called when child devices of the root hub are being removed. The HCD should perform any necessary work with the root controller to finish tearing down the device. In addition, if the HCD stored private data it will a pointer to it in the hcd_private pointer. The HCD driver must release any resources associated with its private data. If it does not, the resources will be leaked.

At the time () is called, all associated pipes should have been closed through the usba_hcdi_pipe_close(9E) function.

The HCD driver is guaranteed that no other entry points will be invoked for the USB device usb_device while a call to either function is ongoing. However, the entry point may be called in parallel on behalf of separate devices.

This function is called from kernel context only.

Upon successful completion, the usba_hcdi_device_init() function should return . Otherwise, it should return the appropriate error.

usba_hcdi(9E), usba_hcdi_pipe_close(9E), usba_hcdi_pipe_open(9E)

May 7, 2016 OmniOS