Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

usb_client_attach(9f) [sunos man page]

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

NAME
usb_client_attach, usb_client_detach - USBA framework registration of client USB drivers SYNOPSIS
#define USBDRV_MAJOR_VER <major> #define USBDRV_MINOR_VER <minor> #include <sys/usb/usba.h> 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 USBA function. 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 set 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 is not necessary to call usb_client_detach() during a suspend opera- tion. VERSIONING USBDRV_VERSION is a macro which creates a version number based on the USBDRV_MAJOR_VER and USBDRV_MINOR_VER definitions. It must be passed as the version argument. For drivers version 2.0 or greater, the value of USBDRV_MAJOR_VERSION must match its corresponding USBA_MAJOR_VER value in <sys/usb/usbai.h>, and the value of USBDRV_MINOR_VERSION must not be greater than its corresponding USBA_MINOR_VER value also in <sys/usb/usbai.h>. Version 0.8 drivers from previous releases are binary compatible and run on Solaris 10, but are not compilable. Version 0.8 binary compati- bility 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 <sys/usb/usba.h>. Note that different releases have different 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 context. USB_INVALID_VERSION Version passed in version is invalid. USB_FAILURE Other internal error. 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 attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Architecture |PCI-based systems | +-----------------------------+-----------------------------+ |Interface stability |Evolving | +-----------------------------+-----------------------------+ |Availability |SUNWusb | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5), attach(9E), detach(9E), usb_get_dev_data(9F) SunOS 5.10 5 Jan 2004 usb_client_attach(9F)
Man Page