diff options
Diffstat (limited to 'firmware/usbdrv/usbdrv.h')
| -rw-r--r-- | firmware/usbdrv/usbdrv.h | 37 | 
1 files changed, 24 insertions, 13 deletions
| diff --git a/firmware/usbdrv/usbdrv.h b/firmware/usbdrv/usbdrv.h index d8a4a16..3fe84d5 100644 --- a/firmware/usbdrv/usbdrv.h +++ b/firmware/usbdrv/usbdrv.h @@ -5,7 +5,6 @@   * Tabsize: 4   * Copyright: (c) 2005 by OBJECTIVE DEVELOPMENT Software GmbH   * License: GNU GPL v2 (see License.txt), GNU GPL v3 or proprietary (CommercialLicense.txt) - * This Revision: $Id: usbdrv.h 793 2010-07-15 15:58:11Z cs $   */  #ifndef __usbdrv_h_included__ @@ -122,7 +121,7 @@ USB messages, even if they address another (low-speed) device on the same bus.  /* --------------------------- Module Interface ---------------------------- */  /* ------------------------------------------------------------------------- */ -#define USBDRV_VERSION  20100715 +#define USBDRV_VERSION  20121206  /* This define uniquely identifies a driver version. It is a decimal number   * constructed from the driver's release date in the form YYYYMMDD. If the   * driver's behavior or interface changes, you can use this constant to @@ -163,6 +162,17 @@ USB messages, even if they address another (low-speed) device on the same bus.   */  #define USB_NO_MSG  ((usbMsgLen_t)-1)   /* constant meaning "no message" */ +#ifndef usbMsgPtr_t +#define usbMsgPtr_t uchar * +#endif +/* Making usbMsgPtr_t a define allows the user of this library to define it to + * an 8 bit type on tiny devices. This reduces code size, especially if the + * compiler supports a tiny memory model. + * The type can be a pointer or scalar type, casts are made where necessary. + * Although it's paradoxical, Gcc 4 generates slightly better code for scalar + * types than for pointers. + */ +  struct usbRequest;  /* forward declaration */  USB_PUBLIC void usbInit(void); @@ -178,7 +188,7 @@ USB_PUBLIC void usbPoll(void);   * Please note that debug outputs through the UART take ~ 0.5ms per byte   * at 19200 bps.   */ -extern uchar *usbMsgPtr; +extern usbMsgPtr_t usbMsgPtr;  /* This variable may be used to pass transmit data to the driver from the   * implementation of usbFunctionWrite(). It is also used internally by the   * driver for standard control requests. @@ -210,7 +220,7 @@ USB_PUBLIC usbMsgLen_t usbFunctionSetup(uchar data[8]);   * Note that calls to the functions usbFunctionRead() and usbFunctionWrite()   * are only done if enabled by the configuration in usbconfig.h.   */ -//USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq); +USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq);  /* You need to implement this function ONLY if you provide USB descriptors at   * runtime (which is an expert feature). It is very similar to   * usbFunctionSetup() above, but it is called only to request USB descriptor @@ -390,13 +400,13 @@ extern volatile schar   usbRxLen;   * about the various methods to define USB descriptors. If you do nothing,   * the default descriptors will be used.   */ -#define USB_PROP_IS_DYNAMIC     (1 << 14) +#define USB_PROP_IS_DYNAMIC     (1u << 14)  /* If this property is set for a descriptor, usbFunctionDescriptor() will be   * used to obtain the particular descriptor. Data directly returned via   * usbMsgPtr are FLASH data by default, combine (OR) with USB_PROP_IS_RAM to   * return RAM data.   */ -#define USB_PROP_IS_RAM         (1 << 15) +#define USB_PROP_IS_RAM         (1u << 15)  /* If this property is set for a descriptor, the data is read from RAM   * memory instead of Flash. The property is used for all methods to provide   * external descriptors. @@ -450,43 +460,43 @@ extern volatile schar   usbRxLen;  #ifndef __ASSEMBLER__  extern  #if !(USB_CFG_DESCR_PROPS_DEVICE & USB_PROP_IS_RAM) -PROGMEM +PROGMEM const  #endif  char usbDescriptorDevice[];  extern  #if !(USB_CFG_DESCR_PROPS_CONFIGURATION & USB_PROP_IS_RAM) -PROGMEM +PROGMEM const  #endif  char usbDescriptorConfiguration[];  extern  #if !(USB_CFG_DESCR_PROPS_HID_REPORT & USB_PROP_IS_RAM) -PROGMEM +PROGMEM const  #endif  char usbDescriptorHidReport[];  extern  #if !(USB_CFG_DESCR_PROPS_STRING_0 & USB_PROP_IS_RAM) -PROGMEM +PROGMEM const  #endif  char usbDescriptorString0[];  extern  #if !(USB_CFG_DESCR_PROPS_STRING_VENDOR & USB_PROP_IS_RAM) -PROGMEM +PROGMEM const  #endif  int usbDescriptorStringVendor[];  extern  #if !(USB_CFG_DESCR_PROPS_STRING_PRODUCT & USB_PROP_IS_RAM) -PROGMEM +PROGMEM const  #endif  int usbDescriptorStringDevice[];  extern  #if !(USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER & USB_PROP_IS_RAM) -PROGMEM +PROGMEM const  #endif  int usbDescriptorStringSerialNumber[]; @@ -719,6 +729,7 @@ typedef struct usbRequest{  #define USBDESCR_HID_PHYS       0x23  //#define USBATTR_BUSPOWER        0x80  // USB 1.1 does not define this value any more +#define USBATTR_BUSPOWER        0  #define USBATTR_SELFPOWER       0x40  #define USBATTR_REMOTEWAKE      0x20 | 
