USBA_HCDI_DEVICE_INIT(9E) | Driver Entry Points | USBA_HCDI_DEVICE_INIT(9E) |
usba_hcdi_device_init
,
usba_hcdi_device_fini
— USB
device initialization and finalization
#include
<sys/usb/usba/hcdi.h>
int
prefix_hcdi_device_init
(usba_device_t
*usb_device, usb_port_t port,
void **hcd_privatep);
void
prefix_hcdi_device_fini
(usba_device_t
*usb_device, usb_port_t port,
void *hcd_private);
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.
The
usba_hcdi_device_init
()
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
usba_hcdi_device_fini
()
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
usba_hcdi_device_fini
()
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
USB_SUCCESS.
Otherwise, it should return the appropriate error.
usba_hcdi(9E), usba_hcdi_pipe_close(9E), usba_hcdi_pipe_open(9E)
May 7, 2016 | OmniOS |