1/* 2 * Copyright 2025 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 */ 15import UsbServerTypes; 16sequenceable OHOS.IRemoteObject; 17sequenceable UsbDevice..OHOS.USB.UsbDevice; 18sequenceable UsbAccessory..OHOS.USB.USBAccessory; 19sequenceable UsbPort..OHOS.USB.UsbPort; 20sequenceable UsbEndpoint..OHOS.USB.USBEndpoint; 21sequenceable UsbSerialType..OHOS.USB.UsbSerialPort; 22sequenceable UsbSerialType..OHOS.USB.UsbSerialAttr; 23sequenceable UsbBulkTransData..OHOS.USB.UsbBulkTransData; 24 25interface OHOS.USB.IUsbServer { 26 /* the function about UsbService */ 27 [macrodef USB_MANAGER_FEATURE_HOST] void GetDevices([out]UsbDevice[] deviceList); 28 [macrodef USB_MANAGER_FEATURE_HOST] void OpenDevice([in]unsigned char busNum, [in]unsigned char devAddr); 29 [macrodef USB_MANAGER_FEATURE_HOST] void Close([in]unsigned char busNum, [in]unsigned char devAddr); 30 [macrodef USB_MANAGER_FEATURE_HOST] void ResetDevice([in]unsigned char busNum, [in]unsigned char devAddr); 31 [macrodef USB_MANAGER_FEATURE_HOST] void ClaimInterface([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid, [in]unsigned char force); 32 [macrodef USB_MANAGER_FEATURE_HOST] void SetInterface([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid, [in]unsigned char altIndex); 33 [macrodef USB_MANAGER_FEATURE_HOST] void ReleaseInterface([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid); 34 [macrodef USB_MANAGER_FEATURE_HOST] void SetActiveConfig([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char configId); 35 [macrodef USB_MANAGER_FEATURE_HOST] void ManageGlobalInterface([in]boolean disable); 36 [macrodef USB_MANAGER_FEATURE_HOST] void ManageDevice([in]int vendorId, [in]int productId, [in]boolean disable); 37 [macrodef USB_MANAGER_FEATURE_HOST] void ManageInterfaceType([in]UsbDeviceTypeInfo[] disableType, [in]boolean disable); 38 [macrodef USB_MANAGER_FEATURE_HOST] void UsbAttachKernelDriver([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid); 39 [macrodef USB_MANAGER_FEATURE_HOST] void UsbDetachKernelDriver([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid); 40 [macrodef USB_MANAGER_FEATURE_HOST] void ClearHalt([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid, [in]unsigned char endpointId); 41 [macrodef USB_MANAGER_FEATURE_HOST] void GetActiveConfig([in]unsigned char busNum, [in]unsigned char devAddr, [out]unsigned char configId); 42 [macrodef USB_MANAGER_FEATURE_HOST] void GetRawDescriptor([in]unsigned char busNum, [in]unsigned char devAddr, [out]unsigned char[] bufferData); 43 [macrodef USB_MANAGER_FEATURE_HOST] void GetFileDescriptor([in]unsigned char busNum, [in]unsigned char devAddr, [out]FileDescriptor fd); 44 [macrodef USB_MANAGER_FEATURE_HOST] void GetDeviceSpeed([in]unsigned char busNum, [in]unsigned char devAddr, [out]unsigned char speed); 45 [macrodef USB_MANAGER_FEATURE_HOST] void GetInterfaceActiveStatus([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid, [out]boolean unactivated); 46 [macrodef USB_MANAGER_FEATURE_HOST] void BulkTransferRead([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep, [out]UsbBulkTransData buffData, [in]int timeOut); 47 [macrodef USB_MANAGER_FEATURE_HOST] void BulkTransferWrite([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep, [in]UsbBulkTransData buffData, [in]int timeOut); 48 [macrodef USB_MANAGER_FEATURE_HOST] void BulkTransferReadwithLength([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep, [in]int length, [out]UsbBulkTransData buffData, [in]int timeOut); 49 [macrodef USB_MANAGER_FEATURE_HOST] void ControlTransfer([in]unsigned char busNum, [in]unsigned char devAddr, [in]UsbCtlSetUp ctrlParams, [inout]unsigned char[] bufferData); 50 [macrodef USB_MANAGER_FEATURE_HOST] void UsbControlTransfer([in]unsigned char busNum, [in]unsigned char devAddr, [in]UsbCtlSetUp ctrlParams, [inout]unsigned char[] bufferData); 51 [macrodef USB_MANAGER_FEATURE_HOST] void RequestQueue([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep, [in]unsigned char[] clientData, [in]unsigned char[] bufferData); 52 [macrodef USB_MANAGER_FEATURE_HOST] void RequestWait([in]unsigned char busNum, [in]unsigned char devAddr, [in]int timeOut, [inout]unsigned char[] clientData, [inout]unsigned char[] bufferData); 53 [macrodef USB_MANAGER_FEATURE_HOST] void RequestCancel([in]unsigned char busNum, [in]unsigned char devAddr, [in]unsigned char interfaceid, [in]unsigned char endpointId); 54 [macrodef USB_MANAGER_FEATURE_HOST] void UsbCancelTransfer([in]unsigned char busNum, [in]unsigned char devAddr, [in]int endpoint); 55 [macrodef USB_MANAGER_FEATURE_HOST] void UsbSubmitTransfer([in]unsigned char busNum, [in]unsigned char devAddr, [in]UsbTransInfo info, [in]IRemoteObject cb, [in]FileDescriptor fd, [in] int memSize); 56 [macrodef USB_MANAGER_FEATURE_HOST] void RegBulkCallback([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep, [in]IRemoteObject cb); 57 [macrodef USB_MANAGER_FEATURE_HOST] void UnRegBulkCallback([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep); 58 [macrodef USB_MANAGER_FEATURE_HOST] void BulkRead([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep, [in]FileDescriptor ashmem, [in] int memSize); 59 [macrodef USB_MANAGER_FEATURE_HOST] void BulkWrite([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep, [in]FileDescriptor ashmem, [in] int memSize); 60 [macrodef USB_MANAGER_FEATURE_HOST] void BulkCancel([in]unsigned char busNum, [in]unsigned char devAddr, [in]USBEndpoint ep); 61 [macrodef USB_MANAGER_FEATURE_HOST] void HasRight([in]String deviceName, [out]boolean hasRight); 62 [macrodef USB_MANAGER_FEATURE_HOST] void RequestRight([in]String deviceName); 63 [macrodef USB_MANAGER_FEATURE_HOST] void RemoveRight([in]String deviceName); 64 [macrodef USB_MANAGER_FEATURE_HOST] void AddRight([in]String bundleName, [in]String deviceName); 65 [macrodef USB_MANAGER_FEATURE_HOST] void AddAccessRight([in]String tokenId, [in]String deviceName); 66 67 [macrodef USB_MANAGER_FEATURE_DEVICE] void GetCurrentFunctions([out] int funcs); 68 [macrodef USB_MANAGER_FEATURE_DEVICE] void SetCurrentFunctions([in] int funcs); 69 [macrodef USB_MANAGER_FEATURE_DEVICE] int UsbFunctionsFromString([in] String funcs); 70 [macrodef USB_MANAGER_FEATURE_DEVICE] String UsbFunctionsToString([in] int funcs); 71 [macrodef USB_MANAGER_FEATURE_DEVICE] void AddAccessoryRight([in] unsigned int tokenId, [in] USBAccessory access); 72 [macrodef USB_MANAGER_FEATURE_DEVICE] void HasAccessoryRight([in] USBAccessory access, [out] boolean checkResult); 73 [macrodef USB_MANAGER_FEATURE_DEVICE] void RequestAccessoryRight([in] USBAccessory access, [out] boolean checkResult); 74 [macrodef USB_MANAGER_FEATURE_DEVICE] void CancelAccessoryRight([in] USBAccessory access); 75 [macrodef USB_MANAGER_FEATURE_DEVICE] void GetAccessoryList([out] USBAccessory[] accessList); 76 [macrodef USB_MANAGER_FEATURE_DEVICE] void OpenAccessory([in] USBAccessory access, [out] FileDescriptor fd); 77 [macrodef USB_MANAGER_FEATURE_DEVICE] void CloseAccessory([in] int fd); 78 79 [macrodef USB_MANAGER_FEATURE_PORT] void GetPorts([out]UsbPort[] ports); 80 [macrodef USB_MANAGER_FEATURE_PORT] void GetSupportedModes([in] int portId, [out] int supportedModes); 81 [macrodef USB_MANAGER_FEATURE_PORT] void SetPortRole([in] int portId, [in] int powerRole, [in] int dataRole); 82 83 void SerialOpen([in] int portId, [in] IRemoteObject serialRemote); 84 void SerialClose([in] int portId); 85 void SerialRead([in] int portId, [out]unsigned char[] buffData, [in]unsigned int size, [out]unsigned int actualSize, [in]unsigned int timeout); 86 void SerialWrite([in] int portId, [in]unsigned char[] buffData, [in]unsigned int size, [out]unsigned int actualSize, [in]unsigned int timeout); 87 void SerialGetAttribute([in] int portId, [out]UsbSerialAttr attribute); 88 void SerialSetAttribute([in] int portId, [in]UsbSerialAttr attribute); 89 void SerialGetPortList([out] UsbSerialPort[] serialPortList); 90 void AddSerialRight([in] unsigned int tokenId, [in] int portId); 91 void HasSerialRight([in] int portId, [out]boolean hasRight); 92 void RequestSerialRight([in] int portId, [out]boolean hasRight); 93 void CancelSerialRight([in] int portId); 94}