Name | Synopsis | Interface Level | Parameters | Description | Return Values | Context | Examples | Attributes | See Also
#include <sys/usb/usba.h> int usb_clr_feature(dev_info_t *dip, uint_t request_type, uint_t feature, uint_t which, usb_flags_t flags, void (*callback) (usb_pipe_handle_t pipe_handle, usb_opaque_t callback_arg, int rval, usb_cb_flags_t flags), usb_opaque_t callback_arg);
Solaris DDI specific (Solaris DDI)
Pointer to the device's dev_info structure.
Pipe handle to device, device interface or endpoint.
bmRequestType to be used. One of the following:
USB_DEV_REQ_RCPT_DEV - Clear feature on device.
USB_DEV_REQ_RCPT_IF - Clear feature on interface.
USB_DEV_REQ_RCPT_EP - Clear feature on endpoint.
Feature to be cleared. Can be any device-defined device-, interface-, or endpoint-specific feature, including the following which are defined in the USB 2.0 specification:
USB_EP_HALT - Clear a HALT on an endpoint.
USB_DEV_REMOTE_WAKEUP - Clear REMOTE_WAKEUP on a device.
USB_DEV_TEST_MODE - Clear TEST_MODE on a device.
Device, interface or endpoint on which to clear the feature. One of:
Interface number, for interfaces. |
Endpoint number, for endpoints. |
0 for devices. |
USB_FLAGS_SLEEP is the only flag recognized. Wait for completion and do not call callback.
Callback handler to notify of asynchronous completion.
Second argument passed to callback handler.
The usb_clr_feature() function clears a specific feature of a device, interface or endpoint. This function always blocks and waits for resources if not available, regardless of the flags argument.
This call blocks for completion if USB_FLAGS_SLEEP is set in flags. It returns immediately and calls the callback upon completion if USB_FLAGS_SLEEP is not set.
Feature was successfully cleared.
dip argument is NULL.
pipe_handle argument is NULL
Called from interrupt context with USB_FLAGS_SLEEP flag set.
Clearing of feature was unsuccessful.
May always be called from user or kernel context. May be called from interrupt context only if USB_FLAGS_SLEEP is not set in flags.
If the USB_CB_ASYNC_REQ_FAILED bit is clear in usb_cb_flags_t, the callback, if supplied, can block because it is executing in kernel context. Otherwise the callback cannot block. Please see usb_callback_flags(9S) for more information on callbacks.
if (usb_clr_feature(dip, pipe_handle, USB_DEV_REQ_RCPT_EP, USB_EP_HALT, data_endpoint_num, 0) == USB_FAILURE) { cmn_err (CE_WARN, "%s%d: Error clearing halt condition on data endpoint %d.", ddi_driver_name(dip), ddi_get_instance(dip), data_endpoint_num); }
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE |
ATTRIBUTE VALUE |
---|---|
Architecture |
PCI-based systems |
Interface stability |
Evolving |
Availability |
SUNWusb |
attributes(5), usb_get_status(9F), usb_pipe_reset(9F), usb_pipe_get_state(9F), usb_callback_flags(9S)
Name | Synopsis | Interface Level | Parameters | Description | Return Values | Context | Examples | Attributes | See Also