/* test that endpoint is bulk endpoint and if so, update device info */ static void usb_bulk_probeEndpoint(int devId, mass_dev* dev, UsbEndpointDescriptor* endpoint) { if (endpoint->bmAttributes == USB_ENDPOINT_XFER_BULK) { /* out transfer */ if ((endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT && dev->bulkEpO < 0) { dev->bulkEpO = UsbOpenEndpointAligned(devId, endpoint); XPRINTF("USBHDFSD: register Output endpoint id =%i addr=%02X packetSize=%i\n", dev->bulkEpO, endpoint->bEndpointAddress, (unsigned short int)endpoint->wMaxPacketSizeHB<<8 | endpoint->wMaxPacketSizeLB); } else /* in transfer */ if ((endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_IN && dev->bulkEpI < 0) { dev->bulkEpI = UsbOpenEndpointAligned(devId, endpoint); XPRINTF("USBHDFSD: register Input endpoint id =%i addr=%02X packetSize=%i\n", dev->bulkEpI, endpoint->bEndpointAddress, (unsigned short int)endpoint->wMaxPacketSizeHB<<8 | endpoint->wMaxPacketSizeLB); } } }
/* test that endpoint is bulk endpoint and if so, update device info */ void usb_bulk_probeEndpoint(int devId, mass_dev* dev, UsbEndpointDescriptor* endpoint) { if (endpoint->bmAttributes == USB_ENDPOINT_XFER_BULK) { /* out transfer */ if ((endpoint->bEndpointAddress & 0x80) == 0 && dev->bulkEpO < 0) { dev->bulkEpOAddr = endpoint->bEndpointAddress; dev->bulkEpO = UsbOpenEndpointAligned(devId, endpoint); dev->packetSzO = endpoint->wMaxPacketSizeHB * 256 + endpoint->wMaxPacketSizeLB; XPRINTF("USBHDFSD: register Output endpoint id =%i addr=%02X packetSize=%i\n", dev->bulkEpO,dev->bulkEpOAddr, dev->packetSzO); } else /* in transfer */ if ((endpoint->bEndpointAddress & 0x80) != 0 && dev->bulkEpI < 0) { dev->bulkEpIAddr = endpoint->bEndpointAddress; dev->bulkEpI = UsbOpenEndpointAligned(devId, endpoint); dev->packetSzI = endpoint->wMaxPacketSizeHB * 256 + endpoint->wMaxPacketSizeLB; XPRINTF("USBHDFSD: register Input endpoint id =%i addr=%02X packetSize=%i\n", dev->bulkEpI, dev->bulkEpIAddr, dev->packetSzI); } } }