USB_STATUS usb_class_hub_get_descriptor ( /* [IN] The communication device common command structure */ HUB_COMMAND_PTR com_ptr, /* [IN] descriptor buffer */ uchar_ptr buffer, /* [IN] buffer length (or, better said, how many bytes to read) */ uchar len ) { /* Body */ USB_STATUS error = USB_OK; USB_lock(); error = usb_class_hub_cntrl_common( com_ptr, REQ_TYPE_DEVICE | REQ_TYPE_IN | REQ_TYPE_CLASS, REQ_GET_DESCRIPTOR, 0, 0, len, buffer ); USB_unlock(); return error; } /* EndBody */
usb_status usb_class_hub_get_port_status ( /* [IN] Class Interface structure pointer */ hub_command_t* com_ptr, /* [IN] port number */ uint8_t port_nr, /* [IN] Buffer to receive descriptor */ uint8_t* buf, /* [IN] buffer length (how many bytes to read) */ uint8_t len ) { #ifdef _HOST_DEBUG_ DEBUG_LOG_TRACE("usb_class_hub_get_port_status, SUCCESSFUL"); #endif return usb_class_hub_cntrl_common( com_ptr, REQ_TYPE_IN | REQ_TYPE_CLASS | REQ_TYPE_INTERFACE | REQ_TYPE_ENDPOINT, REQ_GET_STATUS, 0, port_nr, len, buf); } /* Endbody */
USB_STATUS usb_class_hub_clear_port_feature ( /* [IN] Class Interface structure pointer */ HUB_COMMAND_PTR com_ptr, /* [IN] port number */ uint_8 port_nr, /* [IN] feature ID */ uint_8 feature ) { /* Body */ return usb_class_hub_cntrl_common(com_ptr, REQ_TYPE_OUT | REQ_TYPE_CLASS | REQ_TYPE_INTERFACE | REQ_TYPE_ENDPOINT, REQ_CLEAR_FEATURE, feature, port_nr, 0, NULL); } /* Endbody */
USB_STATUS usb_class_hub_get_port_status ( /* [IN] Class Interface structure pointer */ HUB_COMMAND_PTR com_ptr, /* [IN] port number */ uint_8 port_nr, /* [IN] status buffer */ uchar_ptr buffer, /* [IN] buffer length (or, better said, how many bytes to read) */ uchar len ) { /* Body */ return usb_class_hub_cntrl_common(com_ptr, REQ_TYPE_IN | REQ_TYPE_CLASS | REQ_TYPE_INTERFACE | REQ_TYPE_ENDPOINT, REQ_GET_STATUS, 0, port_nr, len, buffer); } /* Endbody */
usb_status usb_class_hub_clear_feature ( /* [IN] Class Interface structure pointer */ hub_command_t* com_ptr, /* [IN] feature ID */ uint8_t feature ) { #ifdef _HOST_DEBUG_ DEBUG_LOG_TRACE("usb_class_hub_clear_port_feature, SUCCESSFUL"); #endif return usb_class_hub_cntrl_common( com_ptr, REQ_TYPE_OUT | REQ_TYPE_CLASS, REQ_CLEAR_FEATURE, feature, 0, 0, NULL); } /* Endbody */
usb_status usb_class_hub_get_descriptor ( /* [IN] Class Interface structure pointer */ hub_command_t* com_ptr, /* [IN] Buffer to receive descriptor */ uint8_t* buf, /* [IN] buffer length (how many bytes to read) */ uint8_t len ) { #ifdef _HOST_DEBUG_ DEBUG_LOG_TRACE("_usb_class_hub_get_descriptor"); #endif return usb_class_hub_cntrl_common( com_ptr, REQ_TYPE_DEVICE | REQ_TYPE_IN | REQ_TYPE_CLASS, REQ_GET_DESCRIPTOR, 0, 0, len, buf); } /* EndBody */
usb_status usb_class_hub_set_port_feature ( /* [IN] Class Interface structure pointer */ hub_command_t* com_ptr, /* [IN] port number */ uint8_t port_nr, /* [IN] feature ID */ uint8_t feature ) { #ifdef _HOST_DEBUG_ DEBUG_LOG_TRACE("usb_class_hub_set_port_feature, SUCCESSFUL"); #endif return usb_class_hub_cntrl_common( com_ptr, REQ_TYPE_OUT | REQ_TYPE_CLASS | REQ_TYPE_INTERFACE | REQ_TYPE_ENDPOINT, REQ_SET_FEATURE, feature, port_nr, 0, NULL); } /* Endbody */