USB_CLR_FEATURE(9F) | Kernel Functions for Drivers | USB_CLR_FEATURE(9F) |
usb_clr_feature - Clear feature of USB device, interface or endpoint
#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);
illumos DDI specific (illumos DDI)
dip
pipe_handle
request_type
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
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.
which
flags
callback
callback_arg
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.
USB_SUCCESS
USB_INVALID_ARGS
USB_INVALID_PIPE
USB_INVALID_CONTEXT
USB_FAILURE
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(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | PCI-based systems |
Interface stability | Committed |
attributes(7), usb_get_status(9F), usb_pipe_get_state(9F), usb_pipe_reset(9F), usb_callback_flags(9S)
February 9, 2004 | OmniOS |