Pipe_GetErrorFlags() now returns additional error flags for overflow and underflow...
[pub/USBasp.git] / LUFA / Drivers / USB / HighLevel / StdDescriptors.h
index caa0fb0..7a0ca52 100644 (file)
                        #define NO_DESCRIPTOR                     0\r
                        \r
                        /** Macro to calculate the power value for the device descriptor, from a given number of milliamps. */\r
                        #define NO_DESCRIPTOR                     0\r
                        \r
                        /** Macro to calculate the power value for the device descriptor, from a given number of milliamps. */\r
-                       #define USB_CONFIG_POWER_MA(x)            (x >> 1)\r
+                       #define USB_CONFIG_POWER_MA(mA)            (mA >> 1)\r
 \r
                        /** Macro to calculate the Unicode length of a string with a given number of Unicode characters.\r
                         *  Should be used in string descriptor's headers for giving the string descriptor's byte length.\r
                         */\r
 \r
                        /** Macro to calculate the Unicode length of a string with a given number of Unicode characters.\r
                         *  Should be used in string descriptor's headers for giving the string descriptor's byte length.\r
                         */\r
-                       #define USB_STRING_LEN(x)                 (sizeof(USB_Descriptor_Header_t) + (x << 1))\r
+                       #define USB_STRING_LEN(str)               (sizeof(USB_Descriptor_Header_t) + (str << 1))\r
                        \r
                        /** Macro to encode a given four digit floating point version number (e.g. 01.23) into Binary Coded\r
                         *  Decimal format for descriptor fields requiring BCD encoding, such as the USB version number in the\r
                        \r
                        /** Macro to encode a given four digit floating point version number (e.g. 01.23) into Binary Coded\r
                         *  Decimal format for descriptor fields requiring BCD encoding, such as the USB version number in the\r
                         */\r
                        #define ENDPOINT_USAGE_IMPLICIT_FEEDBACK  (2 << 4)\r
 \r
                         */\r
                        #define ENDPOINT_USAGE_IMPLICIT_FEEDBACK  (2 << 4)\r
 \r
-                       /** Gives a void pointer to the specified descriptor (of any type). */\r
-                       #define DESCRIPTOR_ADDRESS(Descriptor)    ((void*)&Descriptor)\r
-\r
-               /* Events: */\r
-                       #if defined(USB_CAN_BE_DEVICE) || defined(__DOXYGEN__)\r
-                               /** This module raises the Device Error event while in device mode, if the \ref USB_GetDescriptor()\r
-                                *  routine is not hooked in the user application to properly return descriptors to the library.\r
-                                *\r
-                                *  \see Events.h for more information on this event.\r
-                                */\r
-                               RAISES_EVENT(USB_DeviceError);\r
-                       #endif\r
-                       \r
                /* Enums: */\r
                        /** Enum for the possible standard descriptor types, as given in each descriptor's header. */\r
                        enum USB_DescriptorTypes_t\r
                /* Enums: */\r
                        /** Enum for the possible standard descriptor types, as given in each descriptor's header. */\r
                        enum USB_DescriptorTypes_t\r
                /* Type Defines: */\r
                        /** Type define for all descriptor's header, indicating the descriptor's length and type.\r
                         *\r
                /* Type Defines: */\r
                        /** Type define for all descriptor's header, indicating the descriptor's length and type.\r
                         *\r
-                        *  \note The non-standard structure element names are documented here - see the StdDescriptors.h file\r
-                        *        documentation for more information on the two descriptor naming schemes. If the\r
-                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names\r
-                        *        identical to those listed in the USB standard.\r
+                        *  \note The non-standard structure element names are documented here. If the\r
+                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements \r
+                        *        with names identical to those listed in the USB standard.\r
                         */\r
                        typedef struct\r
                        {\r
                         */\r
                        typedef struct\r
                        {\r
                        \r
                        /** Type define for a standard device descriptor.\r
                         *\r
                        \r
                        /** Type define for a standard device descriptor.\r
                         *\r
-                        *  \note The non-standard structure element names are documented here - see the StdDescriptors.h file\r
-                        *        documentation for more information on the two descriptor naming schemes. If the\r
-                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names\r
-                        *        identical to those listed in the USB standard.\r
+                        *  \note The non-standard structure element names are documented here. If the\r
+                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements \r
+                        *        with names identical to those listed in the USB standard.\r
                         */\r
                        typedef struct\r
                        {\r
                         */\r
                        typedef struct\r
                        {\r
 \r
                        /** Type define for a standard configuration descriptor.\r
                         *\r
 \r
                        /** Type define for a standard configuration descriptor.\r
                         *\r
-                        *  \note The non-standard structure element names are documented here - see the StdDescriptors.h file\r
-                        *        documentation for more information on the two descriptor naming schemes. If the\r
-                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names\r
-                        *        identical to those listed in the USB standard.\r
+                        *  \note The non-standard structure element names are documented here. If the\r
+                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements \r
+                        *        with names identical to those listed in the USB standard.\r
                         */\r
                        typedef struct\r
                        {\r
                         */\r
                        typedef struct\r
                        {\r
 \r
                        /** Type define for a standard interface descriptor.\r
                         *\r
 \r
                        /** Type define for a standard interface descriptor.\r
                         *\r
-                        *  \note The non-standard structure element names are documented here - see the StdDescriptors.h file\r
-                        *        documentation for more information on the two descriptor naming schemes. If the\r
-                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names\r
-                        *        identical to those listed in the USB standard.\r
+                        *  \note The non-standard structure element names are documented here. If the\r
+                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements \r
+                        *        with names identical to those listed in the USB standard.\r
                         */\r
                        typedef struct\r
                        {\r
                         */\r
                        typedef struct\r
                        {\r
                         *  together at the point of enumeration, loading one generic driver for all the interfaces in the single\r
                         *  function. Read the ECN for more information.\r
                         *\r
                         *  together at the point of enumeration, loading one generic driver for all the interfaces in the single\r
                         *  function. Read the ECN for more information.\r
                         *\r
-                        *  \note The non-standard structure element names are documented here - see the StdDescriptors.h file\r
-                        *        documentation for more information on the two descriptor naming schemes. If the\r
-                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names\r
-                        *        identical to those listed in the USB standard.\r
+                        *  \note The non-standard structure element names are documented here. If the\r
+                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements \r
+                        *        with names identical to those listed in the USB standard.\r
                         */\r
                        typedef struct\r
                        {\r
                         */\r
                        typedef struct\r
                        {\r
 \r
                        /** Type define for a standard endpoint descriptor.\r
                         *\r
 \r
                        /** Type define for a standard endpoint descriptor.\r
                         *\r
-                        *  \note The non-standard structure element names are documented here - see the StdDescriptors.h file\r
-                        *        documentation for more information on the two descriptor naming schemes. If the\r
-                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names\r
-                        *        identical to those listed in the USB standard.\r
+                        *  \note The non-standard structure element names are documented here. If the\r
+                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements \r
+                        *        with names identical to those listed in the USB standard.\r
                        */\r
                        typedef struct\r
                        {\r
                        */\r
                        typedef struct\r
                        {\r
                         *  This structure should also be used for string index 0, which contains the supported language IDs for\r
                         *  the device as an array.\r
                         *\r
                         *  This structure should also be used for string index 0, which contains the supported language IDs for\r
                         *  the device as an array.\r
                         *\r
-                        *  \note The non-standard structure element names are documented here - see the StdDescriptors.h file\r
-                        *        documentation for more information on the two descriptor naming schemes. If the\r
-                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements with names\r
-                        *        identical to those listed in the USB standard.\r
+                        *  \note The non-standard structure element names are documented here. If the\r
+                        *        USE_NONSTANDARD_DESCRIPTOR_NAMES token is not set, this structure contains elements \r
+                        *        with names identical to those listed in the USB standard.\r
                         */\r
                        typedef struct\r
                        {\r
                         */\r
                        typedef struct\r
                        {\r
                                #endif\r
                        } USB_Descriptor_String_t;\r
 \r
                                #endif\r
                        } USB_Descriptor_String_t;\r
 \r
-               /* Function Prototypes: */\r
-                       /** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,\r
-                        *  index and language ID. This function MUST be overridden in the user application (added with full, identical  \r
-                        *  prototype and name except for the \ref ATTR_WEAK attribute) so that the library can call it to retrieve descriptor \r
-                        *  data.\r
-                        *\r
-                        *  \param wValue             The type of the descriptor to retrieve in the upper byte, and the index in the \r
-                        *                            lower byte (when more than one descriptor of the given type exists, such as the\r
-                        *                            case of string descriptors). The type may be one of the standard types defined\r
-                        *                            in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.\r
-                        *  \param wIndex             The language ID of the string to return if the wValue type indicates DTYPE_String,\r
-                        *                            otherwise zero for standard descriptors, or as defined in a class-specific\r
-                        *                            standards.\r
-                        *  \param DescriptorAddress  Pointer to the descriptor in memory. This should be set by the routine to\r
-                        *                            the location of the descriptor, found by the \ref DESCRIPTOR_ADDRESS() macro.\r
-                        *\r
-                        *  \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.\r
-                        *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to\r
-                        *        allow the descriptors to be changed dynamically at runtime) either the USE_RAM_DESCRIPTORS or the \r
-                        *        USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D\r
-                        *        switch.\r
-                        *\r
-                        *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise\r
-                        */\r
-                       uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
-                                                                          ATTR_WARN_UNUSED_RESULT ATTR_WEAK ATTR_NON_NULL_PTR_ARG(3);\r
-\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r
        /* Private Interface - For use in library only: */\r
        #if !defined(__DOXYGEN__)\r
                /* Macros: */\r