1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef USB_HOST_NO_SDK_SPEED_H 17 #define USB_HOST_NO_SDK_SPEED_H 18 #include <stdint.h> 19 #define USB_ADAPTER_URB_TYPE_ISO 0 20 #define USB_ADAPTER_URB_TYPE_INTERRUPT 1 21 #define USB_ADAPTER_URB_TYPE_CONTROL 2 22 #define USB_ADAPTER_URB_TYPE_BULK 3 23 #define USB_ADAPTER_URB_SHORT_NOT_OK 0x01 24 #define USB_ADAPTER_URB_ISO_ASAP 0x02 25 #define USB_ADAPTER_URB_BULK_CONTINUATION 0x04 26 #define USB_ADAPTER_URB_QUEUE_BULK 0x10 27 #define USB_ADAPTER_URB_ZERO_PACKET 0x40 28 #define USB_ADAPTER_CAP_ZERO_PACKET 0x01 29 #define USB_ADAPTER_CAP_BULK_CONTINUATION 0x02 30 #define USB_ADAPTER_CAP_NO_PACKET_SIZE_LIM 0x04 31 #define USB_ADAPTER_CAP_BULK_SCATTER_GATHER 0x08 32 #define USB_ADAPTER_CAP_REAP_AFTER_DISCONNECT 0x10 33 34 #define USBDEVFS_CLAIMINTERFACE _IOR('U', 15, unsigned int) 35 #define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int) 36 #define USBDEVFS_SETCONFIGURATION _IOR('U', 5, unsigned int) 37 #define USBDEVFS_SETINTERFACE _IOR('U', 4, struct UsbSetInterface) 38 #define USBDEVFS_ALLOC_STREAMS _IOR('U', 28, struct UsbAdapterStreams) 39 #define USBDEVFS_FREE_STREAMS _IOR('U', 29, struct UsbAdapterStreams) 40 #define USBDEVFS_GET_CAPABILITIES _IOR('U', 26, __u32) 41 #define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int) 42 #define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int) 43 #define USBDEVFS_RESET _IO('U', 20) 44 #define USBDEVFS_CONTROL _IOWR('U', 0, struct UsbCtrltransfer) 45 #define USBDEVFS_DISCARDURB _IO('U', 11) 46 #define USBDEVFS_REAPURB _IOW('U', 12, void *) 47 #define USBDEVFS_SUBMITURB _IOR('U', 10, struct UsbAdapterUrb) 48 #define USBDEVFS_REAPURBNDELAY _IOW('U', 13, void *) 49 50 typedef enum { 51 TEST_ZERO_TYPE = 0, 52 TEST_ONE_TYPE, 53 TEST_TWO_TYPE, 54 TEST_THREE_TYPE, 55 TEST_FOUR_TYPE, 56 TEST_FIVE_TYPE, 57 TEST_SIX_TYPE, 58 } TestCountType; 59 60 struct UsbIsoPacketDesc { 61 unsigned int length; 62 unsigned int actualLength; 63 unsigned int status; 64 }; 65 66 struct UsbAdapterUrb { 67 unsigned char type; 68 unsigned char endPoint; 69 int32_t status; 70 unsigned int flags; 71 void *buffer; 72 int32_t bufferLength; 73 int32_t actualLength; 74 int32_t startFrame; 75 union { 76 int32_t numberOfPackets; 77 unsigned int streamId; 78 }; 79 int32_t errorCount; 80 unsigned int signr; 81 void *userContext; 82 struct UsbIsoPacketDesc isoFrameDesc[0]; 83 }; 84 85 struct UsbAdapterUrbs { 86 struct UsbAdapterUrb *urb; 87 int32_t inUse; 88 int32_t urbNum; 89 }; 90 91 #endif /* USB_HOST_NO_SDK_SPEED_H */ 92