/* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef ANDROID_USB_API_ADB_API_EXTRA_H__ #define ANDROID_USB_API_ADB_API_EXTRA_H__ /** \file This file consists of public API declarations that are also used by the driver and as such cannot be declared in adb_api.h */ /** AdbEndpointType enumerates endpoint types. It enum is taken from WDF_USB_PIPE_TYPE enum found in WDK. */ typedef enum _AdbEndpointType { AdbEndpointTypeInvalid = 0, AdbEndpointTypeControl, AdbEndpointTypeIsochronous, AdbEndpointTypeBulk, AdbEndpointTypeInterrupt, } AdbEndpointType; /** Structure AdbEndpointInformation describes an endpoint. It is based on WDF_USB_PIPE_INFORMATION structure found in WDK. */ typedef struct _AdbEndpointInformation { /// Maximum packet size this endpoint is capable of unsigned long max_packet_size; // Maximum size of one transfer which should be sent to the host controller unsigned long max_transfer_size; // The type of the endpoint AdbEndpointType endpoint_type; /// Raw endpoint address of the device as described by its descriptor unsigned char endpoint_address; /// Polling interval unsigned char polling_interval; /// Which alternate setting this structure is relevant for unsigned char setting_index; } AdbEndpointInformation; /// Shortcut to default write bulk endpoint in zero-based endpoint index API #define ADB_QUERY_BULK_WRITE_ENDPOINT_INDEX 0xFC /// Shortcut to default read bulk endpoint in zero-based endpoint index API #define ADB_QUERY_BULK_READ_ENDPOINT_INDEX 0xFE // {F72FE0D4-CBCB-407d-8814-9ED673D0DD6B} /// Our USB class id that driver uses to register our device #define ANDROID_USB_CLASS_ID \ {0xf72fe0d4, 0xcbcb, 0x407d, {0x88, 0x14, 0x9e, 0xd6, 0x73, 0xd0, 0xdd, 0x6b}}; /// Defines vendor ID for the device #define DEVICE_VENDOR_ID 0x0BB4 /// Defines product ID for the device with single interface. #define DEVICE_SINGLE_PRODUCT_ID 0x0C01 /// Defines product ID for the composite device. #define DEVICE_COMPOSITE_PRODUCT_ID 0x0C02 /// Defines interface ID for the device. #define DEVICE_INTERFACE_ID 0x01 /// Defines vendor ID for the device #define DEVICE_EMULATOR_VENDOR_ID 0x18D1 /// Defines product ID for a SoftUSB device simulator that is used to test /// the driver in isolation from hardware. #define DEVICE_EMULATOR_PROD_ID 0xDDDD #endif // ANDROID_USB_API_ADB_API_EXTRA_H__