Kernel Functions for Drivers usb_client_attach(9F)
NAME
usb_client_attach, usb_client_detach - USBA framework regis-
tration of client USB driversSYNOPSIS
#define USBDRV_MAJOR_VER
#define USBDRV_MINOR_VER
#include
int usb_client_attach(dev_info_t *dip,
uint_t version, usb_flags_t flags);
void usb_client_detach(dev_info_t *dip,
usb_client_dev_data_t *dev_data);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI)PARAMETERS
For usb_client_attach():
dip Pointer to the device's dev_info structure.
version Must be set to USBDRV_VERSION. (See below.)
flags Not used.For usb_client_detach():
dip Pointer to the device's dev_info structure.
dev_data Pointer to a usb_client_dev_data_t to free. Can
be NULL.DESCRIPTION
The usb_client_attach() function registers a driver with the
USBA framework and must be called before any other USBAfunction. Usually, usb_client_attach() is followed by a call
to usb_get_dev_data(9F).
The usb_client_detach() function unregisters a driver with
the USBA framework. The usb_client_detach() function
releases memory for all strings, descriptors and trees setSunOS 5.11 Last change: 5 Jan 2004 1
Kernel Functions for Drivers usb_client_attach(9F)
up by usb_get_dev_data(9F) when its dev_data argument is
non-NULL. The usb_client_detach() function is the last USBA
function a client calls before completing detach(9E). It isnot necessary to call usb_client_detach() during a suspend
operation. VERSIONINGUSBDRV_VERSION is a macro which creates a version number
based on the USBDRV_MAJOR_VER and USBDRV_MINOR_VER defini-
tions. It must be passed as the version argument. For drivers version 2.0 or greater, the value ofUSBDRV_MAJOR_VERSION must match its corresponding
USBA_MAJOR_VER value in
, and the value of USBDRV_MINOR_VERSION must not be greater than its
corresponding USBA_MINOR_VER value also in
. Version 0.8 drivers from previous releases are binary compa-
tible and run on Solaris 10, but are not compilable. Version 0.8 binary compatibility will not be supported in subsequent Solaris OS releases.Definitions of USBDRV_MAJOR_VERSION and USBDRV_MINOR_VERSION
must appear in the client driver above the reference to
. Note that different releases have dif- ferent USBA_[MAJOR|MINOR]_VER numbers.
RETURN VALUES
For usb_client_attach():
USB_SUCCESS Registration is successful.
USB_INVALID_ARGS dip is NULL.
USB_INVALID_CONTEXT Called from interrupt context. Not
called from an attach routine con-
text.USB_INVALID_VERSION Version passed in version is invalid.
USB_FAILURE Other internal error.
SunOS 5.11 Last change: 5 Jan 2004 2
Kernel Functions for Drivers usb_client_attach(9F)
For usb_client_detach():
USB_INVALID_ARGS dip is NULL.
USB_INVALID_CONTEXT Not called from an attach routine
context.CONTEXT
The usb_client_attach() function may only be called from
attach(9E).The usb_client_detach() function may be called only from
attach(9E) or detach(9E).EXAMPLES
if (usb_client_attach(dip, USBDRV_VERSION, 0) != USB_SUCCESS) {
cmn_err (CE_WARN, "%s%d: Couldn't register USB device",
ddi_driver_name(dip), ddi_get_instance(dip));
return (USB_FAILURE);
}if (usb_get_dev_data(dip, &dev_data, USB_PARSE_LVL_IF, 0) !=
USB_SUCCESS) {
cmn_err (CE_WARN, "%s%d: Couldn't get device descriptor data.",
ddi_driver_name(dip), ddi_get_instance(dip));
return (USB_FAILURE);
}ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 5 Jan 2004 3
Kernel Functions for Drivers usb_client_attach(9F)
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Architecture | PCI-based systems |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| Availability | driver/usb ||_____________________________|_____________________________|
SEE ALSO
attributes(5), attach(9E), detach(9E), usb_get_dev_data(9F)
SunOS 5.11 Last change: 5 Jan 2004 4