Start update of documentation to support possible multiple architectures in the futur...
[pub/lufa.git] / LUFA / Drivers / USB / Core / AVR8 / Device.h
index 30088f1..d1ced57 100644 (file)
@@ -29,9 +29,8 @@
 */
 
 /** \file
- *  \brief USB device mode definitions (AVR8)
- *
- *  This file contains structures, function prototypes and macros related to USB device mode.
+ *  \brief USB Device definitions for the AVR8 microcontrollers.
+ *  \copydetails Group_Device_AVR8
  *
  *  \note This file should not be included directly. It is automatically included as needed by the USB driver
  *        dispatch header located in LUFA/Drivers/USB/USB.h.
@@ -39,9 +38,9 @@
 
 /** \ingroup Group_Device
  *  \defgroup Group_Device_AVR8 Device Management (AVR8)
+ *  \brief USB Device definitions for the AVR8 microcontrollers.
  *
- *  USB Device mode related macros and enums. This module contains macros and enums which are used when
- *  the USB controller is initialized in device mode.
+ *  Architecture specific USB Device definitions for the Atmel 8-bit AVR microcontrollers.
  *
  *  @{
  */
                #include "../USBInterrupt.h"
                #include "../Endpoint.h"
                
-               #include <avr/boot.h>
-
        /* Preprocessor Checks: */
-               #if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
-                       #error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
-               #endif
-
                #if !defined(__INCLUDE_FROM_USB_DRIVER)
                        #error Do not include this file directly. Include LUFA/Drivers/USB/USB.h instead.
                #endif
 
+               #if (defined(USE_RAM_DESCRIPTORS) && defined(USE_EEPROM_DESCRIPTORS))
+                       #error USE_RAM_DESCRIPTORS and USE_EEPROM_DESCRIPTORS are mutually exclusive.
+               #endif
+
        /* Public Interface - May be used in end-application: */
                /* Macros: */
                        /** \name USB Device Mode Option Masks */
                         *        the \ref USB_OPT_MANUAL_PLL option enabled, the user must ensure that the PLL is running
                         *        before attempting to call this function.
                         *
-                        *  \see \ref Group_Descriptors for more information on the RMWAKEUP feature and device descriptors.
+                        *  \see \ref Group_StdDescriptors for more information on the RMWAKEUP feature and device descriptors.
                         */
                        void USB_Device_SendRemoteWakeup(void);
 
                                }
                        #endif
 
-               /* Function Prototypes: */
-                       /** Function to retrieve a given descriptor's size and memory location from the given descriptor type value,
-                        *  index and language ID. This function MUST be overridden in the user application (added with full, identical
-                        *  prototype and name so that the library can call it to retrieve descriptor data.
-                        *
-                        *  \param[in] wValue               The type of the descriptor to retrieve in the upper byte, and the index in the
-                        *                                  lower byte (when more than one descriptor of the given type exists, such as the
-                        *                                  case of string descriptors). The type may be one of the standard types defined
-                        *                                  in the DescriptorTypes_t enum, or may be a class-specific descriptor type value.
-                        *  \param[in] wIndex               The language ID of the string to return if the \c wValue type indicates
-                        *                                  \ref DTYPE_String, otherwise zero for standard descriptors, or as defined in a
-                        *                                  class-specific standards.
-                        *  \param[out] DescriptorAddress   Pointer to the descriptor in memory. This should be set by the routine to
-                        *                                  the address of the descriptor.
-                        *  \param[out] MemoryAddressSpace  A value from the \ref USB_DescriptorMemorySpaces_t enum to indicate the memory
-                        *                                  space in which the descriptor is stored. This parameter does not exist when one
-                        *                                  of the \c USE_*_DESCRIPTORS compile time options is used.
-                        *
-                        *  \note By default, the library expects all descriptors to be located in flash memory via the \c PROGMEM attribute.
-                        *        If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
-                        *        allow the descriptors to be changed dynamically at runtime) either the \c USE_RAM_DESCRIPTORS or the
-                        *        \c USE_EEPROM_DESCRIPTORS tokens may be defined in the project makefile and passed to the compiler by the -D
-                        *        switch.
-                        *
-                        *  \return Size in bytes of the descriptor if it exists, zero or \ref NO_DESCRIPTOR otherwise.
-                        */
-                       uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
-                                                           const uint8_t wIndex,
-                                                           const void** const DescriptorAddress
-                       #if !defined(USE_FLASH_DESCRIPTORS) && !defined(USE_EEPROM_DESCRIPTORS) && !defined(USE_RAM_DESCRIPTORS)
-                                                           , uint8_t* MemoryAddressSpace
-                       #endif
-                                                           ) ATTR_WARN_UNUSED_RESULT ATTR_NON_NULL_PTR_ARG(3);
-
        /* Private Interface - For use in library only: */
        #if !defined(__DOXYGEN__)
                /* Inline Functions: */