/** * usbd_device_class_descriptor_index * @device: which device * @port: which port * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * @index: which index * * Return the specified class descriptor for the specified device. */ struct usb_class_descriptor *usbd_device_class_descriptor_index (struct usb_device_instance *device, int port, int configuration, int interface, int alternate, int index) { struct usb_alternate_instance *alternate_instance; if (!(alternate_instance = usbd_device_alternate_instance (device, port, configuration, interface, alternate))) { return NULL; } if (index >= alternate_instance->classes) { return NULL; } return *(alternate_instance->classes_descriptor_array + index); }
/** * usbd_device_endpoint_transfersize * @device: which device * @port: which port * @configuration: index to configuration, 0 - N-1 * @interface: index to interface * @index: which index * * Return the specified endpoint transfer size; */ int usbd_device_endpoint_transfersize (struct usb_device_instance *device, int port, int configuration, int interface, int alternate, int index) { struct usb_alternate_instance *alternate_instance; if (!(alternate_instance = usbd_device_alternate_instance (device, port, configuration, interface, alternate))) { return 0; } if (index >= alternate_instance->endpoints) { return 0; } return *(alternate_instance->endpoint_transfersize_array + index); }
struct usb_endpoint_descriptor * usbd_device_endpoint_descriptor_index (struct usb_device_instance *device, int configuration, int interface, int alternate, int index) { struct usb_alternate_instance *alternate_instance; alternate_instance = usbd_device_alternate_instance (device, configuration, interface, alternate); if (!(alternate_instance)) { return NULL; } if (index >= alternate_instance->endpoints) { return NULL; } return *(alternate_instance->endpoints_descriptor_array + index); }