1*c2c66affSColin Finck /* 2*c2c66affSColin Finck * usbdi.h 3*c2c66affSColin Finck * 4*c2c66affSColin Finck * USBD and USB device driver definitions 5*c2c66affSColin Finck * 6*c2c66affSColin Finck * FIXME : Obsolete header.. Use usb.h instead. 7*c2c66affSColin Finck * 8*c2c66affSColin Finck * This file is part of the ReactOS PSDK package. 9*c2c66affSColin Finck * 10*c2c66affSColin Finck * Contributors: 11*c2c66affSColin Finck * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 12*c2c66affSColin Finck * 13*c2c66affSColin Finck * THIS SOFTWARE IS NOT COPYRIGHTED 14*c2c66affSColin Finck * 15*c2c66affSColin Finck * This source code is offered for use in the public domain. You may 16*c2c66affSColin Finck * use, modify or distribute it freely. 17*c2c66affSColin Finck * 18*c2c66affSColin Finck * This code is distributed in the hope that it will be useful but 19*c2c66affSColin Finck * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 20*c2c66affSColin Finck * DISCLAIMED. This includes but is not limited to warranties of 21*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 22*c2c66affSColin Finck * 23*c2c66affSColin Finck */ 24*c2c66affSColin Finck 25*c2c66affSColin Finck #pragma once 26*c2c66affSColin Finck 27*c2c66affSColin Finck /* Helper macro to enable gcc's extension. */ 28*c2c66affSColin Finck #ifndef __GNU_EXTENSION 29*c2c66affSColin Finck #ifdef __GNUC__ 30*c2c66affSColin Finck #define __GNU_EXTENSION __extension__ 31*c2c66affSColin Finck #else 32*c2c66affSColin Finck #define __GNU_EXTENSION 33*c2c66affSColin Finck #endif 34*c2c66affSColin Finck #endif 35*c2c66affSColin Finck 36*c2c66affSColin Finck #include <usb.h> 37*c2c66affSColin Finck #include <usbioctl.h> 38*c2c66affSColin Finck 39*c2c66affSColin Finck #ifdef __cplusplus 40*c2c66affSColin Finck extern "C" { 41*c2c66affSColin Finck #endif 42*c2c66affSColin Finck 43*c2c66affSColin Finck #define USBD_STATUS_CANCELLING ((USBD_STATUS)0x00020000L) 44*c2c66affSColin Finck #define USBD_STATUS_CANCELING ((USBD_STATUS)0x00020000L) 45*c2c66affSColin Finck #define USBD_STATUS_NO_MEMORY ((USBD_STATUS)0x80000100L) 46*c2c66affSColin Finck #define USBD_STATUS_ERROR ((USBD_STATUS)0x80000000L) 47*c2c66affSColin Finck #define USBD_STATUS_REQUEST_FAILED ((USBD_STATUS)0x80000500L) 48*c2c66affSColin Finck #define USBD_STATUS_HALTED ((USBD_STATUS)0xC0000000L) 49*c2c66affSColin Finck 50*c2c66affSColin Finck 51*c2c66affSColin Finck #define USBD_HALTED(Status) ((ULONG)(Status) >> 30 == 3) 52*c2c66affSColin Finck #define USBD_STATUS(Status) ((ULONG)(Status) & 0x0FFFFFFFL) 53*c2c66affSColin Finck 54*c2c66affSColin Finck #define URB_FUNCTION_RESERVED0 0x0016 55*c2c66affSColin Finck #define URB_FUNCTION_RESERVED 0x001D 56*c2c66affSColin Finck #define URB_FUNCTION_LAST 0x0029 57*c2c66affSColin Finck 58*c2c66affSColin Finck #define USBD_PF_DOUBLE_BUFFER 0x00000002 59*c2c66affSColin Finck 60*c2c66affSColin Finck #ifdef USBD_PF_VALID_MASK 61*c2c66affSColin Finck #undef USBD_PF_VALID_MASK 62*c2c66affSColin Finck #endif 63*c2c66affSColin Finck 64*c2c66affSColin Finck #define USBD_PF_VALID_MASK (USBD_PF_CHANGE_MAX_PACKET | USBD_PF_DOUBLE_BUFFER | \ 65*c2c66affSColin Finck USBD_PF_ENABLE_RT_THREAD_ACCESS | USBD_PF_MAP_ADD_TRANSFERS) 66*c2c66affSColin Finck 67*c2c66affSColin Finck #define USBD_TRANSFER_DIRECTION_BIT 0 68*c2c66affSColin Finck #define USBD_SHORT_TRANSFER_OK_BIT 1 69*c2c66affSColin Finck #define USBD_START_ISO_TRANSFER_ASAP_BIT 2 70*c2c66affSColin Finck 71*c2c66affSColin Finck #ifdef USBD_TRANSFER_DIRECTION 72*c2c66affSColin Finck #undef USBD_TRANSFER_DIRECTION 73*c2c66affSColin Finck #endif 74*c2c66affSColin Finck 75*c2c66affSColin Finck #define USBD_TRANSFER_DIRECTION(x) ((x) & USBD_TRANSFER_DIRECTION_IN) 76*c2c66affSColin Finck 77*c2c66affSColin Finck #ifdef __cplusplus 78*c2c66affSColin Finck } 79*c2c66affSColin Finck #endif 80