@ -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 .
*
* @ {
*/
@ -55,17 +54,15 @@
# 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 */
@ -125,7 +122,7 @@
* 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_ Std Descriptors for more information on the RMWAKEUP feature and device descriptors .
*/
void USB_Device_SendRemoteWakeup ( void ) ;
@ -192,40 +189,6 @@
}
# 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: */