USBA_HCDI_HUB_UPDATE(9E) Driver Entry Points USBA_HCDI_HUB_UPDATE(9E)

NAME


usba_hcdi_device_address - Assign USB address to device

SYNOPSIS


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

int
prefix_hcdi_device_address(usba_device_t *ud);

INTERFACE LEVEL


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.

PARAMETERS


ud Pointer to a USB device structure being updated. See
usba_device(9S) for more information.

DESCRIPTION


The usba_hcdi_device_address() entry point is an optional entry point
for USB host controller drivers. Some USB host controllers do not
allow the USB SET_ADDRESS command to be issued to a device. Instead,
they will be responsible for setting the address in a controller-
specific way. If the host controller driver requires this behavior,
then it must implement this function. Otherwise, if the host
controller does not require this functionality, it should set the entry
point in the usba_hcdi_ops(9S) structure to NULL.

The USBA will always set an address for the USBA device ud regardless
of whether or not this function is implemented. If the HCD implements
this entry point and it needs the addressing information for whatever
reason, then it is the responsibility of the driver to keep track of it
separately.

This entry point will be called after the usba_hcdi_device_init(9E)
entry point has been called. Any private data stored on the device
will be available through the usba_hcdi_get_device_private(9F)
function.

Upon completion of the function, the device is expected to be addressed
and thus able to have endpoints opened and transfers performed on them.
If this function fails, the device's enumeration will halt.

CONTEXT


This function is called from kernel context ontly.

RETURN VALUES


Upon successful completion, the usba_hcdi_device_address() function
should return USB_SUCCESS. Otherwise, it should return the appropriate
USB error. If uncertain, use USB_FAILURE.

SEE ALSO


usba_hcdi_device_init(9E), usba_hcdi_get_device_private(9F),
usba_device(9S), usba_hcdi_ops(9S)

illumos December 20, 2016 illumos

tribblix@gmail.com :: GitHub :: Privacy