aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-06-28 13:39:08 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-06-28 13:39:08 +0000
commitf1076ac4d6e56bff7fb6d2126746af1108211370 (patch)
tree9a5f31cc5ff9c648d7ce63f1d9e8afab763d2801 /LUFA
parent3cbdcd36868693cfc1863231a1ec64507ce3d29f (diff)
downloadlufa-f1076ac4d6e56bff7fb6d2126746af1108211370.tar.gz
lufa-f1076ac4d6e56bff7fb6d2126746af1108211370.tar.bz2
lufa-f1076ac4d6e56bff7fb6d2126746af1108211370.zip
Added const modifiers to device mode class drivers.
Added parameter directions to function parameter documentation. Added new experimental FAST_STREAM_FUNCTIONS compile time option to speed up stream transfers at the expense of a higher FLASH consumption (needs testing to verify improved throughput).
Diffstat (limited to 'LUFA')
-rw-r--r--LUFA/Common/Common.h10
-rw-r--r--LUFA/DriverStubs/Dataflash.h8
-rw-r--r--LUFA/Drivers/Board/Dataflash.h18
-rw-r--r--LUFA/Drivers/Board/LEDs.h10
-rw-r--r--LUFA/Drivers/Board/STK525/Dataflash.h8
-rw-r--r--LUFA/Drivers/Board/STK526/Dataflash.h8
-rw-r--r--LUFA/Drivers/Board/USBKEY/Dataflash.h8
-rw-r--r--LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h8
-rw-r--r--LUFA/Drivers/Peripheral/SPI.h8
-rw-r--r--LUFA/Drivers/Peripheral/Serial.h10
-rw-r--r--LUFA/Drivers/Peripheral/SerialStream.h4
-rw-r--r--LUFA/Drivers/USB/Class/Common/Audio.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/CDC.h2
-rw-r--r--LUFA/Drivers/USB/Class/Common/MIDI.h2
-rw-r--r--LUFA/Drivers/USB/Class/Device/Audio.c14
-rw-r--r--LUFA/Drivers/USB/Class/Device/Audio.h32
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDC.c8
-rw-r--r--LUFA/Drivers/USB/Class/Device/CDC.h50
-rw-r--r--LUFA/Drivers/USB/Class/Device/HID.c6
-rw-r--r--LUFA/Drivers/USB/Class/Device/HID.h28
-rw-r--r--LUFA/Drivers/USB/Class/Device/MIDI.c10
-rw-r--r--LUFA/Drivers/USB/Class/Device/MIDI.h30
-rw-r--r--LUFA/Drivers/USB/Class/Device/MassStorage.c10
-rw-r--r--LUFA/Drivers/USB/Class/Device/MassStorage.h20
-rw-r--r--LUFA/Drivers/USB/Class/Device/RNDIS.c18
-rw-r--r--LUFA/Drivers/USB/Class/Device/RNDIS.h24
-rw-r--r--LUFA/Drivers/USB/Class/Host/HIDParser.h14
-rw-r--r--LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h50
-rw-r--r--LUFA/Drivers/USB/HighLevel/Events.h14
-rw-r--r--LUFA/Drivers/USB/LowLevel/Device.h18
-rw-r--r--LUFA/Drivers/USB/LowLevel/Endpoint.c208
-rw-r--r--LUFA/Drivers/USB/LowLevel/Endpoint.h64
-rw-r--r--LUFA/Drivers/USB/LowLevel/Host.h8
-rw-r--r--LUFA/Drivers/USB/LowLevel/HostChapter9.h4
-rw-r--r--LUFA/Drivers/USB/LowLevel/LowLevel.h14
-rw-r--r--LUFA/Drivers/USB/LowLevel/OTG.h2
-rw-r--r--LUFA/Drivers/USB/LowLevel/Pipe.c200
-rw-r--r--LUFA/Drivers/USB/LowLevel/Pipe.h50
-rw-r--r--LUFA/ManPages/FutureChanges.txt1
-rw-r--r--LUFA/ManPages/LibraryApps.txt3
-rw-r--r--LUFA/ManPages/Licence.txt2
-rw-r--r--LUFA/Scheduler/Scheduler.h14
42 files changed, 710 insertions, 312 deletions
diff --git a/LUFA/Common/Common.h b/LUFA/Common/Common.h
index 24ba1f68b..92f4f22fa 100644
--- a/LUFA/Common/Common.h
+++ b/LUFA/Common/Common.h
@@ -121,7 +121,7 @@
*
* \ingroup Group_BitManip
*
- * \param Byte Byte of data whose bits are to be reversed
+ * \param[in] Byte Byte of data whose bits are to be reversed
*/
static inline uint8_t BitReverse(uint8_t Byte) ATTR_WARN_UNUSED_RESULT ATTR_CONST;
static inline uint8_t BitReverse(uint8_t Byte)
@@ -137,7 +137,7 @@
*
* \ingroup Group_BitManip
*
- * \param Word Word of data whose bytes are to be swapped
+ * \param[in] Word Word of data whose bytes are to be swapped
*/
static inline uint16_t SwapEndian_16(uint16_t Word) ATTR_WARN_UNUSED_RESULT ATTR_CONST;
static inline uint16_t SwapEndian_16(uint16_t Word)
@@ -149,7 +149,7 @@
*
* \ingroup Group_BitManip
*
- * \param DWord Double word of data whose bytes are to be swapped
+ * \param[in] DWord Double word of data whose bytes are to be swapped
*/
static inline uint32_t SwapEndian_32(uint32_t DWord) ATTR_WARN_UNUSED_RESULT ATTR_CONST;
static inline uint32_t SwapEndian_32(uint32_t DWord)
@@ -164,8 +164,8 @@
*
* \ingroup Group_BitManip
*
- * \param Data Pointer to a number containing an even number of bytes to be reversed
- * \param Bytes Length of the data in bytes
+ * \param[in,out] Data Pointer to a number containing an even number of bytes to be reversed
+ * \param[in] Bytes Length of the data in bytes
*/
static inline void SwapEndian_n(uint8_t* Data, uint8_t Bytes);
static inline void SwapEndian_n(uint8_t* Data, uint8_t Bytes)
diff --git a/LUFA/DriverStubs/Dataflash.h b/LUFA/DriverStubs/Dataflash.h
index 41581a730..92de426c0 100644
--- a/LUFA/DriverStubs/Dataflash.h
+++ b/LUFA/DriverStubs/Dataflash.h
@@ -85,8 +85,8 @@
* the total number of pages contained in the boards dataflash ICs, all dataflash ICs
* are deselected.
*
- * \param PageAddress Address of the page to manipulate, ranging from
- * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
+ * \param[in] PageAddress Address of the page to manipulate, ranging from
+ * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
*/
static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress)
{
@@ -102,8 +102,8 @@
/** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
* dataflash commands which require a complete 24-byte address.
*
- * \param PageAddress Page address within the selected dataflash IC
- * \param BufferByte Address within the dataflash's buffer
+ * \param[in] PageAddress Page address within the selected dataflash IC
+ * \param[in] BufferByte Address within the dataflash's buffer
*/
static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte)
{
diff --git a/LUFA/Drivers/Board/Dataflash.h b/LUFA/Drivers/Board/Dataflash.h
index 20300930e..57ce92d4c 100644
--- a/LUFA/Drivers/Board/Dataflash.h
+++ b/LUFA/Drivers/Board/Dataflash.h
@@ -86,8 +86,8 @@
/** Selects the given dataflash chip.
*
- * \param ChipMask Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is
- * the chip number).
+ * \param[in] ChipMask Mask of the Dataflash IC to select, in the form of DATAFLASH_CHIPn mask (where n is
+ * the chip number).
*/
static inline void Dataflash_SelectChip(uint8_t ChipMask);
@@ -105,7 +105,7 @@
/* Inline Functions: */
/** Sends a byte to the currently selected dataflash IC, and returns a byte from the dataflash.
*
- * \param Byte of data to send to the dataflash
+ * \param[in] Byte of data to send to the dataflash
*
* \return Last response byte from the dataflash
*/
@@ -117,7 +117,7 @@
/** Sends a byte to the currently selected dataflash IC, and ignores the next byte from the dataflash.
*
- * \param Byte of data to send to the dataflash
+ * \param[in] Byte of data to send to the dataflash
*/
static inline void Dataflash_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Dataflash_SendByte(const uint8_t Byte)
@@ -154,7 +154,7 @@
/** Initializes the dataflash driver (including the SPI driver) so that commands and data may be
* sent to an attached dataflash IC.
*
- * \param PrescalerMask SPI prescaler mask, see SPI.h documentation
+ * \param[in] PrescalerMask SPI prescaler mask, see SPI.h documentation
*/
static inline void Dataflash_Init(const uint8_t PrescalerMask)
{
@@ -191,16 +191,16 @@
* the total number of pages contained in the boards dataflash ICs, all dataflash ICs
* are deselected.
*
- * \param PageAddress Address of the page to manipulate, ranging from
- * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
+ * \param[in] PageAddress Address of the page to manipulate, ranging from
+ * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
*/
static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress);
/** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
* dataflash commands which require a complete 24-byte address.
*
- * \param PageAddress Page address within the selected dataflash IC
- * \param BufferByte Address within the dataflash's buffer
+ * \param[in] PageAddress Page address within the selected dataflash IC
+ * \param[in] BufferByte Address within the dataflash's buffer
*/
static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte);
diff --git a/LUFA/Drivers/Board/LEDs.h b/LUFA/Drivers/Board/LEDs.h
index f65e67c81..969399994 100644
--- a/LUFA/Drivers/Board/LEDs.h
+++ b/LUFA/Drivers/Board/LEDs.h
@@ -117,28 +117,28 @@
/** Turns on the LEDs specified in the given LED mask.
*
- * \param LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
+ * \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
*/
static inline void LEDs_TurnOnLEDs(const uint8_t LEDMask);
/** Turns off the LEDs specified in the given LED mask.
*
- * \param LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
+ * \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
*/
static inline void LEDs_TurnOffLEDs(const uint8_t LEDMask);
/** Turns off all LEDs not specified in the given LED mask, and turns on all the LEDs in the given LED
* mask.
*
- * \param LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
+ * \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
*/
static inline void LEDs_SetAllLEDs(const uint8_t LEDMask);
/** Turns off all LEDs in the LED mask that are not set in the active mask, and turns on all the LEDs
* specified in both the LED and active masks.
*
- * \param LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
- * \param ActiveMask Mask of whether the LEDs in the LED mask should be turned on or off
+ * \param[in] LEDMask Mask of the board LEDs to manipulate (see board-specific LEDs.h driver file)
+ * \param[in] ActiveMask Mask of whether the LEDs in the LED mask should be turned on or off
*/
static inline void LEDs_ChangeLEDs(const uint8_t LEDMask, const uint8_t ActiveMask);
diff --git a/LUFA/Drivers/Board/STK525/Dataflash.h b/LUFA/Drivers/Board/STK525/Dataflash.h
index bc9ab9fbd..33787569a 100644
--- a/LUFA/Drivers/Board/STK525/Dataflash.h
+++ b/LUFA/Drivers/Board/STK525/Dataflash.h
@@ -85,8 +85,8 @@
* the total number of pages contained in the boards dataflash ICs, all dataflash ICs
* are deselected.
*
- * \param PageAddress Address of the page to manipulate, ranging from
- * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
+ * \param[in] PageAddress Address of the page to manipulate, ranging from
+ * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
*/
static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress)
{
@@ -101,8 +101,8 @@
/** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
* dataflash commands which require a complete 24-byte address.
*
- * \param PageAddress Page address within the selected dataflash IC
- * \param BufferByte Address within the dataflash's buffer
+ * \param[in] PageAddress Page address within the selected dataflash IC
+ * \param[in] BufferByte Address within the dataflash's buffer
*/
static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte)
{
diff --git a/LUFA/Drivers/Board/STK526/Dataflash.h b/LUFA/Drivers/Board/STK526/Dataflash.h
index cb8193e56..0b388e301 100644
--- a/LUFA/Drivers/Board/STK526/Dataflash.h
+++ b/LUFA/Drivers/Board/STK526/Dataflash.h
@@ -85,8 +85,8 @@
* the total number of pages contained in the boards dataflash ICs, all dataflash ICs
* are deselected.
*
- * \param PageAddress Address of the page to manipulate, ranging from
- * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
+ * \param[in] PageAddress Address of the page to manipulate, ranging from
+ * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
*/
static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress)
{
@@ -101,8 +101,8 @@
/** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
* dataflash commands which require a complete 24-byte address.
*
- * \param PageAddress Page address within the selected dataflash IC
- * \param BufferByte Address within the dataflash's buffer
+ * \param[in] PageAddress Page address within the selected dataflash IC
+ * \param[in] BufferByte Address within the dataflash's buffer
*/
static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte)
{
diff --git a/LUFA/Drivers/Board/USBKEY/Dataflash.h b/LUFA/Drivers/Board/USBKEY/Dataflash.h
index d4bfdc943..52681dedb 100644
--- a/LUFA/Drivers/Board/USBKEY/Dataflash.h
+++ b/LUFA/Drivers/Board/USBKEY/Dataflash.h
@@ -88,8 +88,8 @@
* the total number of pages contained in the boards dataflash ICs, all dataflash ICs
* are deselected.
*
- * \param PageAddress Address of the page to manipulate, ranging from
- * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
+ * \param[in] PageAddress Address of the page to manipulate, ranging from
+ * ((DATAFLASH_PAGES * DATAFLASH_TOTALCHIPS) - 1).
*/
static inline void Dataflash_SelectChipFromPage(const uint16_t PageAddress)
{
@@ -107,8 +107,8 @@
/** Sends a set of page and buffer address bytes to the currently selected dataflash IC, for use with
* dataflash commands which require a complete 24-byte address.
*
- * \param PageAddress Page address within the selected dataflash IC
- * \param BufferByte Address within the dataflash's buffer
+ * \param[in] PageAddress Page address within the selected dataflash IC
+ * \param[in] BufferByte Address within the dataflash's buffer
*/
static inline void Dataflash_SendAddressBytes(uint16_t PageAddress, const uint16_t BufferByte)
{
diff --git a/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h b/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h
index 4cc7c32c3..4110a508c 100644
--- a/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h
+++ b/LUFA/Drivers/Peripheral/AT90USBXXX67/ADC.h
@@ -115,7 +115,7 @@
* The "mode" parameter should be a mask comprised of a conversion mode (free running or single) and
* prescaler masks.
*
- * \param Mode Mask of ADC settings, including adjustment, prescale, mode and reference
+ * \param[in] Mode Mask of ADC settings, including adjustment, prescale, mode and reference
*/
static inline void ADC_Init(uint8_t Mode);
@@ -159,7 +159,7 @@
* associated port pin as an input and disables the digital portion of the I/O to reduce
* power consumption.
*
- * \param Channel ADC channel number to set up for conversions
+ * \param[in] Channel ADC channel number to set up for conversions
*/
static inline void ADC_SetupChannel(const uint8_t Channel)
{
@@ -196,7 +196,7 @@
* Once executed, the conversion status can be determined via the \ref ADC_IsReadingComplete() macro and
* the result read via the \ref ADC_GetResult() macro.
*
- * \param MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask
+ * \param[in] MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask
*/
static inline void ADC_StartReading(const uint8_t MUXMask)
{
@@ -208,7 +208,7 @@
/** Performs a complete single reading from channel, including a polling spinloop to wait for the
* conversion to complete, and the returning of the converted value.
*
- * \param MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask
+ * \param[in] MUXMask Mask comprising of an ADC channel number, reference mask and adjustment mask
*/
static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask) ATTR_WARN_UNUSED_RESULT;
static inline uint16_t ADC_GetChannelReading(const uint8_t MUXMask)
diff --git a/LUFA/Drivers/Peripheral/SPI.h b/LUFA/Drivers/Peripheral/SPI.h
index 66cdaf513..dc8661ad5 100644
--- a/LUFA/Drivers/Peripheral/SPI.h
+++ b/LUFA/Drivers/Peripheral/SPI.h
@@ -90,8 +90,8 @@
/** Initializes the SPI subsystem, ready for transfers. Must be called before calling any other
* SPI routines.
*
- * \param PrescalerMask Prescaler mask to set the SPI clock speed
- * \param Master If true, sets the SPI system to use master mode, slave if false
+ * \param[in] PrescalerMask Prescaler mask to set the SPI clock speed
+ * \param[in] Master If true, sets the SPI system to use master mode, slave if false
*/
static inline void SPI_Init(const uint8_t PrescalerMask, const bool Master)
{
@@ -109,7 +109,7 @@
/** Sends and receives a byte through the SPI interface, blocking until the transfer is complete.
*
- * \param Byte Byte to send through the SPI interface
+ * \param[in] Byte Byte to send through the SPI interface
*
* \return Response byte from the attached SPI device
*/
@@ -124,7 +124,7 @@
/** Sends a byte through the SPI interface, blocking until the transfer is complete. The response
* byte sent to from the attached SPI device is ignored.
*
- * \param Byte Byte to send through the SPI interface
+ * \param[in] Byte Byte to send through the SPI interface
*/
static inline void SPI_SendByte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void SPI_SendByte(const uint8_t Byte)
diff --git a/LUFA/Drivers/Peripheral/Serial.h b/LUFA/Drivers/Peripheral/Serial.h
index 7e718fe0c..82cbcfc2c 100644
--- a/LUFA/Drivers/Peripheral/Serial.h
+++ b/LUFA/Drivers/Peripheral/Serial.h
@@ -88,13 +88,13 @@
/* Function Prototypes: */
/** Transmits a given string located in program space (FLASH) through the USART.
*
- * \param FlashStringPtr Pointer to a string located in program space
+ * \param[in] FlashStringPtr Pointer to a string located in program space
*/
void Serial_TxString_P(const char *FlashStringPtr) ATTR_NON_NULL_PTR_ARG(1);
/** Transmits a given string located in SRAM memory through the USART.
*
- * \param StringPtr Pointer to a string located in SRAM space
+ * \param[in] StringPtr Pointer to a string located in SRAM space
*/
void Serial_TxString(const char *StringPtr) ATTR_NON_NULL_PTR_ARG(1);
@@ -102,8 +102,8 @@
/** Initializes the USART, ready for serial data transmission and reception. This initialises the interface to
* standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
*
- * \param BaudRate Serial baud rate, in bits per second
- * \param DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate
+ * \param[in] BaudRate Serial baud rate, in bits per second
+ * \param[in] DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate
*/
static inline void Serial_Init(const uint32_t BaudRate, const bool DoubleSpeed)
{
@@ -119,7 +119,7 @@
/** Transmits a given byte through the USART.
*
- * \param DataByte Byte to transmit through the USART
+ * \param[in] DataByte Byte to transmit through the USART
*/
static inline void Serial_TxByte(const char DataByte)
{
diff --git a/LUFA/Drivers/Peripheral/SerialStream.h b/LUFA/Drivers/Peripheral/SerialStream.h
index 275313589..d3f0014bc 100644
--- a/LUFA/Drivers/Peripheral/SerialStream.h
+++ b/LUFA/Drivers/Peripheral/SerialStream.h
@@ -79,8 +79,8 @@
/** Initializes the serial stream (and regular USART driver) so that both the stream and regular
* USART driver functions can be used. Must be called before any stream or regular USART functions.
*
- * \param BaudRate Baud rate to configure the USART to
- * \param DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate
+ * \param[in] BaudRate Baud rate to configure the USART to
+ * \param[in] DoubleSpeed Enables double speed mode when set, halving the sample time to double the baud rate
*/
static inline void SerialStream_Init(const uint32_t BaudRate, const bool DoubleSpeed)
{
diff --git a/LUFA/Drivers/USB/Class/Common/Audio.h b/LUFA/Drivers/USB/Class/Common/Audio.h
index a55fd0d7c..33bc8980e 100644
--- a/LUFA/Drivers/USB/Class/Common/Audio.h
+++ b/LUFA/Drivers/USB/Class/Common/Audio.h
@@ -201,7 +201,7 @@
/** Convenience macro, to fill a 24-bit AudioSampleFreq_t structure with the given sample rate as a 24-bit number.
*
- * \param freq Required audio sampling frequency in HZ
+ * \param[in] freq Required audio sampling frequency in HZ
*/
#define AUDIO_SAMPLE_FREQ(freq) {LowWord: ((uint32_t)freq & 0x00FFFF), HighByte: (((uint32_t)freq >> 16) & 0x0000FF)}
diff --git a/LUFA/Drivers/USB/Class/Common/CDC.h b/LUFA/Drivers/USB/Class/Common/CDC.h
index 5138032da..69803150a 100644
--- a/LUFA/Drivers/USB/Class/Common/CDC.h
+++ b/LUFA/Drivers/USB/Class/Common/CDC.h
@@ -111,7 +111,7 @@
* a single typedef struct. A macro is used instead so that functional descriptors can be created
* easily by specifying the size of the payload. This allows sizeof() to work correctly.
*
- * \param DataSize Size in bytes of the CDC functional descriptor's data payload
+ * \param[in] DataSize Size in bytes of the CDC functional descriptor's data payload
*/
#define CDC_FUNCTIONAL_DESCRIPTOR(DataSize) \
struct \
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index dfeadb05b..7dfb0e780 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -71,7 +71,7 @@
/** Convenience macro. MIDI channels are numbered from 1-10 (natural numbers) however the logical channel
* addresses are zero-indexed. This converts a natural MIDI channel number into the logical channel address.
*
- * \param channel MIDI channel number to address
+ * \param[in] channel MIDI channel number to address
*/
#define MIDI_CHANNEL(channel) (channel - 1)
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.c b/LUFA/Drivers/USB/Class/Device/Audio.c
index e398f1c0e..d117bedf6 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.c
+++ b/LUFA/Drivers/USB/Class/Device/Audio.c
@@ -33,7 +33,7 @@
#include "Audio.h"
-void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)
+void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
{
if (!(Endpoint_IsSETUPReceived()))
return;
@@ -83,7 +83,7 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfac
return true;
}
-void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)
+void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
{
}
@@ -124,7 +124,7 @@ int32_t Audio_Device_ReadSample24(void)
return Sample;
}
-void Audio_Device_WriteSample8(int8_t Sample)
+void Audio_Device_WriteSample8(const int8_t Sample)
{
Endpoint_Write_Byte(Sample);
@@ -132,7 +132,7 @@ void Audio_Device_WriteSample8(int8_t Sample)
Endpoint_ClearIN();
}
-void Audio_Device_WriteSample16(int16_t Sample)
+void Audio_Device_WriteSample16(const int16_t Sample)
{
Endpoint_Write_Word_LE(Sample);
@@ -140,7 +140,7 @@ void Audio_Device_WriteSample16(int16_t Sample)
Endpoint_ClearIN();
}
-void Audio_Device_WriteSample24(int32_t Sample)
+void Audio_Device_WriteSample24(const int32_t Sample)
{
Endpoint_Write_Byte(Sample >> 16);
Endpoint_Write_Word_LE(Sample);
@@ -149,13 +149,13 @@ void Audio_Device_WriteSample24(int32_t Sample)
Endpoint_ClearIN();
}
-bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)
+bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
{
Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataOUTEndpointNumber);
return Endpoint_IsOUTReceived();
}
-bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)
+bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)
{
Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber);
return Endpoint_IsINReady();
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h
index faa9c9243..7ce062437 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.h
+++ b/LUFA/Drivers/USB/Class/Device/Audio.h
@@ -97,25 +97,25 @@
* \ref EVENT_USB_ConfigurationChanged() event so that the endpoints are configured when the configuration containing the
* given Audio interface is selected.
*
- * \param AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
+ * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
*/
- bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
/** Processes incomming control requests from the host, that are directed to the given Audio class interface. This should be
* linked to the library \ref EVENT_USB_UnhandledControlPacket() event.
*
- * \param AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
+ * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
*/
- void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+ void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
/** General management task for a given Audio class interface, required for the correct operation of the interface. This should
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
*
- * \param AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
+ * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
*/
- void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+ void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
/** Reads the next 8-bit audio sample from the current audio interface.
*
@@ -149,43 +149,43 @@
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* the correct endpoint is selected and ready for data.
*
- * \param Sample Signed 8-bit audio sample
+ * \param[in] Sample Signed 8-bit audio sample
*/
- void Audio_Device_WriteSample8(int8_t Sample);
+ void Audio_Device_WriteSample8(const int8_t Sample);
/** Writes the next 16-bit audio sample to the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* the correct endpoint is selected and ready for data.
*
- * \param Sample Signed 16-bit audio sample
+ * \param[in] Sample Signed 16-bit audio sample
*/
- void Audio_Device_WriteSample16(int16_t Sample);
+ void Audio_Device_WriteSample16(const int16_t Sample);
/** Writes the next 24-bit audio sample to the current audio interface.
*
* \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
* the correct endpoint is selected and ready for data.
*
- * \param Sample Signed 24-bit audio sample
+ * \param[in] Sample Signed 24-bit audio sample
*/
- void Audio_Device_WriteSample24(int32_t Sample);
+ void Audio_Device_WriteSample24(const int32_t Sample);
/** Determines if the given audio interface is ready for a sample to be read from it.
*
- * \param AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
+ * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
*
* \return Boolean true if the given Audio interface has a sample to be read, false otherwise
*/
- bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+ bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
/** Determines if the given audio interface is ready to accept the next sample to be written to it.
*
- * \param AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
+ * \param[in,out] AudioInterfaceInfo Pointer to a structure containing an Audio Class configuration and state.
*
* \return Boolean true if the given Audio interface is ready to accept the next sample, false otherwise
*/
- bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+ bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.c b/LUFA/Drivers/USB/Class/Device/CDC.c
index fc6ea93fb..07c05141b 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.c
+++ b/LUFA/Drivers/USB/Class/Device/CDC.c
@@ -131,7 +131,7 @@ void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
Endpoint_ClearIN();
}
-void CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, char* Data, uint16_t Length)
+void CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, char* const Data, const uint16_t Length)
{
if (!(USB_IsConnected))
return;
@@ -140,7 +140,7 @@ void CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, char* D
Endpoint_Write_Stream_LE(Data, Length, NO_STREAM_CALLBACK);
}
-void CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, uint8_t Data)
+void CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t Data)
{
if (!(USB_IsConnected))
return;
@@ -156,7 +156,7 @@ void CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, uint8_t D
Endpoint_Write_Byte(Data);
}
-uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
+uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
@@ -178,7 +178,7 @@ uint8_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
return DataByte;
}
-void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
+void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
{
if (!(USB_IsConnected))
return;
diff --git a/LUFA/Drivers/USB/Class/Device/CDC.h b/LUFA/Drivers/USB/Class/Device/CDC.h
index 157b35003..7b232fc89 100644
--- a/LUFA/Drivers/USB/Class/Device/CDC.h
+++ b/LUFA/Drivers/USB/Class/Device/CDC.h
@@ -108,34 +108,34 @@
* \ref EVENT_USB_ConfigurationChanged() event so that the endpoints are configured when the configuration containing the
* given CDC interface is selected.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
*/
- bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/** Processes incomming control requests from the host, that are directed to the given CDC class interface. This should be
* linked to the library \ref EVENT_USB_UnhandledControlPacket() event.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*/
- void CDC_Device_ProcessControlPacket(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ void CDC_Device_ProcessControlPacket(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/** General management task for a given CDC class interface, required for the correct operation of the interface. This should
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*/
- void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/** CDC class driver event for a line encoding change on a CDC interface. This event fires each time the host requests a
* line encoding change (containing the serial parity, baud and other configuration information) and may be hooked in the
* user program by declaring a handler function with the same name and parameters listed here. The new line encoding
* settings are available in the LineEncoding structure inside the CDC interface structure passed as a parameter.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*/
- void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/** CDC class driver event for a control line state change on a CDC interface. This event fires each time the host requests a
* control line state change (containing the virtual serial control line states, such as DTR) and may be hooked in the
@@ -143,62 +143,62 @@
* are available in the ControlLineStates.HostToDevice value inside the CDC interface structure passed as a parameter, set as
* a mask of CDC_CONTROL_LINE_OUT_* masks.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*/
- void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/** Sends a given string to the attached USB host, if connected. If a host is not connected when the function is called, the
* string is discarded.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
- * \param Data Pointer to the string to send to the host
- * \param Length Size in bytes of the string to send to the host
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in] Data Pointer to the string to send to the host
+ * \param[in] Length Size in bytes of the string to send to the host
*/
- void CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, char* Data, uint16_t Length);
+ void CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, char* const Data, const uint16_t Length);
/** Sends a given byte to the attached USB host, if connected. If a host is not connected when the function is called, the
* byte is discarded.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
- * \param Data Byte of data to send to the host
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in] Data Byte of data to send to the host
*/
- void CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo, uint8_t Data);
+ void CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo, const uint8_t Data);
/** Determines the number of bytes received by the CDC interface from the host, waiting to be read.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*
* \return Total number of buffered bytes received from the host
*/
- uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/** Reads a byte of data from the host. If no data is waiting to be read of if a USB host is not connected, the function
* returns 0. The USB_CDC_BytesReceived() function should be queried before data is recieved to ensure that no data
* underflow occurs.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*
* \return Next received byte from the host, or 0 if no data received
*/
- uint8_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ uint8_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/** Sends a Serial Control Line State Change notification to the host. This should be called when the virtual serial
* control lines (DCD, DSR, etc.) have changed states, or to give BREAK notfications to the host. Line states persist
* until they are cleared via a second notification. This should be called each time the CDC class driver's
* ControlLineStates.DeviceToHost value is updated to push the new states to the USB host.
*
- * \param CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
+ * \param[in,out] CDCInterfaceInfo Pointer to a structure containing a CDC Class configuration and state.
*/
- void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo);
+ void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo);
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
/* Function Prototypes: */
#if defined(INCLUDE_FROM_CDC_CLASS_DEVICE_C)
void CDC_Device_Event_Stub(void);
- void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
+ void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
ATTR_WEAK ATTR_ALIAS(CDC_Device_Event_Stub);
- void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* CDCInterfaceInfo)
+ void EVENT_CDC_Device_ControLineStateChanged(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
ATTR_WEAK ATTR_ALIAS(CDC_Device_Event_Stub);
#endif
diff --git a/LUFA/Drivers/USB/Class/Device/HID.c b/LUFA/Drivers/USB/Class/Device/HID.c
index c37dc5d5c..d0320868f 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.c
+++ b/LUFA/Drivers/USB/Class/Device/HID.c
@@ -33,7 +33,7 @@
#include "HID.h"
-void HID_Device_ProcessControlPacket(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo)
+void HID_Device_ProcessControlPacket(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
{
if (!(Endpoint_IsSETUPReceived()))
return;
@@ -130,7 +130,7 @@ void HID_Device_ProcessControlPacket(USB_ClassInfo_HID_Device_t* HIDInterfaceInf
}
}
-bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo)
+bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
{
HIDInterfaceInfo->State.UsingReportProtocol = true;
@@ -143,7 +143,7 @@ bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo)
return true;
}
-void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo)
+void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo)
{
if (!(USB_IsConnected))
return;
diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h
index 61e5eed28..984078c3e 100644
--- a/LUFA/Drivers/USB/Class/Device/HID.h
+++ b/LUFA/Drivers/USB/Class/Device/HID.h
@@ -89,7 +89,7 @@
* \ref EVENT_USB_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given HID interface is selected.
*
- * \param HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
+ * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
*/
@@ -98,14 +98,14 @@
/** Processes incomming control requests from the host, that are directed to the given HID class interface. This should be
* linked to the library \ref EVENT_USB_UnhandledControlPacket() event.
*
- * \param HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
+ * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
*/
void HID_Device_ProcessControlPacket(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo);
/** General management task for a given HID class interface, required for the correct operation of the interface. This should
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
*
- * \param HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
+ * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
*/
void HID_Device_USBTask(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo);
@@ -113,11 +113,11 @@
* HID class control requests from the host, or by the normal HID endpoint polling procedure. Inside this callback the
* user is responsible for the creation of the next HID input report to be sent to the host.
*
- * \param HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
- * \param ReportID If preset to a non-zero value, this is the report ID being requested by the host. If zero, this should
- * be set to the report ID of the generated HID input report. If multiple reports are not sent via the
- * given HID interface, this parameter should be ignored.
- * \param ReportData Pointer to a buffer where the generated HID report should be stored.
+ * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
+ * \param[in,out] ReportID If preset to a non-zero value, this is the report ID being requested by the host. If zero, this should
+ * be set to the report ID of the generated HID input report. If multiple reports are not sent via the
+ * given HID interface, this parameter should be ignored.
+ * \param[out] ReportData Pointer to a buffer where the generated HID report should be stored.
*
* \return Number of bytes in the generated input report, or zero if no report is to be sent
*/
@@ -127,14 +127,14 @@
* either HID class control requests from the host, or by the normal HID endpoint polling procedure. Inside this callback
* the user is responsible for the processing of the received HID output report from the host.
*
- * \param HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
- * \param ReportID Report ID of the received output report. If multiple reports are not received via the given HID
+ * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state.
+ * \param[in] ReportID Report ID of the received output report. If multiple reports are not received via the given HID
* interface, this parameter should be ignored.
- * \param ReportData Pointer to a buffer where the received HID report is stored.
- * \param ReportSize Size in bytes of the received report from the host.
+ * \param[in] ReportData Pointer to a buffer where the received HID report is stored.
+ * \param[in] ReportSize Size in bytes of the received report from the host.
*/
- void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo, uint8_t ReportID, void* ReportData,
- uint16_t ReportSize);
+ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, const uint8_t ReportID,
+ const void* ReportData, const uint16_t ReportSize);
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.c b/LUFA/Drivers/USB/Class/Device/MIDI.c
index 0dcc94db9..da33bdb61 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.c
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.c
@@ -33,12 +33,12 @@
#include "MIDI.h"
-void MIDI_Device_ProcessControlPacket(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo)
+void MIDI_Device_ProcessControlPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
{
}
-bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo)
+bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
{
if (MIDIInterfaceInfo->Config.DataINEndpointNumber)
{
@@ -63,12 +63,12 @@ bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceIn
return true;
}
-void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo)
+void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
{
}
-void MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo, MIDI_EventPacket_t* Event)
+void MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const Event)
{
if (!(USB_IsConnected))
return;
@@ -82,7 +82,7 @@ void MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo,
}
}
-bool MIDI_Device_ReceiveEventPacket(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo, MIDI_EventPacket_t* Event)
+bool MIDI_Device_ReceiveEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const Event)
{
if (!(USB_IsConnected))
return false;
diff --git a/LUFA/Drivers/USB/Class/Device/MIDI.h b/LUFA/Drivers/USB/Class/Device/MIDI.h
index e81089c93..19ff5d463 100644
--- a/LUFA/Drivers/USB/Class/Device/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Device/MIDI.h
@@ -54,12 +54,6 @@
/* Public Interface - May be used in end-application: */
/* Type Define: */
- /** Configuration information structure for \ref USB_ClassInfo_MIDI_Device_t MIDI device interface structures. */
- typedef USB_ClassInfo_MIDI_Device_Config_t;
-
- /** Current State information structure for \ref USB_ClassInfo_MIDI_Device_t MIDI device interface structures. */
- typedef USB_ClassInfo_MIDI_Device_State_t;
-
/** Class state structure. An instance of this structure should be made for each MIDI interface
* within the user application, and passed to each of the MIDI class driver functions as the
* MIDIInterfaceInfo parameter. This stores each MIDI interface's configuration and state information.
@@ -92,41 +86,41 @@
* \ref EVENT_USB_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given MIDI interface is selected.
*
- * \param MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
+ * \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
*/
- bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo);
+ bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo);
/** Processes incomming control requests from the host, that are directed to the given MIDI class interface. This should be
* linked to the library \ref EVENT_USB_UnhandledControlPacket() event.
*
- * \param MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
+ * \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
*/
- void MIDI_Device_ProcessControlPacket(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo);
+ void MIDI_Device_ProcessControlPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo);
/** General management task for a given MIDI class interface, required for the correct operation of the interface. This should
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
*
- * \param MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
+ * \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
*/
- void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo);
+ void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo);
/** Sends a MIDI event packet to the host. If no host is connected, the event packet is discarded.
*
- * \param MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
- * \param Event Pointer to a populated USB_MIDI_EventPacket_t structure containing the MIDI event to send
+ * \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
+ * \param[in] Event Pointer to a populated USB_MIDI_EventPacket_t structure containing the MIDI event to send
*/
- void MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo, MIDI_EventPacket_t* Event);
+ void MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const Event);
/** Receives a MIDI event packet from the host.
*
- * \param MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
- * \param Event Pointer to a USB_MIDI_EventPacket_t structure where the received MIDI event is to be placed
+ * \param[in,out] MIDIInterfaceInfo Pointer to a structure containing a MIDI Class configuration and state.
+ * \param[out] Event Pointer to a USB_MIDI_EventPacket_t structure where the received MIDI event is to be placed
*
* \return Boolean true if a MIDI event packet was received, false otherwise
*/
- bool MIDI_Device_ReceiveEventPacket(USB_ClassInfo_MIDI_Device_t* MIDIInterfaceInfo, MIDI_EventPacket_t* Event);
+ bool MIDI_Device_ReceiveEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const Event);
/* Disable C linkage for C++ Compilers: */
#if defined(__cplusplus)
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.c b/LUFA/Drivers/USB/Class/Device/MassStorage.c
index aedab106f..9d73989b7 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.c
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.c
@@ -36,7 +36,7 @@
static USB_ClassInfo_MS_Device_t* CallbackMSInterfaceInfo;
-void MS_Device_ProcessControlPacket(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
+void MS_Device_ProcessControlPacket(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
{
if (!(Endpoint_IsSETUPReceived()))
return;
@@ -75,7 +75,7 @@ void MS_Device_ProcessControlPacket(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
}
}
-bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
+bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
{
if (!(Endpoint_ConfigureEndpoint(MSInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_BULK,
ENDPOINT_DIR_IN, MSInterfaceInfo->Config.DataINEndpointSize,
@@ -94,7 +94,7 @@ bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
return true;
}
-void MS_Device_USBTask(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
+void MS_Device_USBTask(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
{
if (!(USB_IsConnected))
return;
@@ -138,7 +138,7 @@ void MS_Device_USBTask(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
MSInterfaceInfo->State.IsMassStoreReset = false;
}
-static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
+static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
{
Endpoint_SelectEndpoint(MSInterfaceInfo->Config.DataOUTEndpointNumber);
@@ -171,7 +171,7 @@ static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* MSInterfaceI
return true;
}
-static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* MSInterfaceInfo)
+static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo)
{
Endpoint_SelectEndpoint(MSInterfaceInfo->Config.DataOUTEndpointNumber);
diff --git a/LUFA/Drivers/USB/Class/Device/MassStorage.h b/LUFA/Drivers/USB/Class/Device/MassStorage.h
index 15be00e09..6b139ad5e 100644
--- a/LUFA/Drivers/USB/Class/Device/MassStorage.h
+++ b/LUFA/Drivers/USB/Class/Device/MassStorage.h
@@ -95,43 +95,43 @@
* \ref EVENT_USB_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given Mass Storage interface is selected.
*
- * \param MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state.
+ * \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state.
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
*/
- bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
+ bool MS_Device_ConfigureEndpoints(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
/** Processes incomming control requests from the host, that are directed to the given Mass Storage class interface. This should be
* linked to the library \ref EVENT_USB_UnhandledControlPacket() event.
*
- * \param MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state.
+ * \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state.
*/
- void MS_Device_ProcessControlPacket(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
+ void MS_Device_ProcessControlPacket(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
/** General management task for a given Mass Storage class interface, required for the correct operation of the interface. This should
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
*
- * \param MSInterfaceInfo Pointer to a structure containing a Mass Storage configuration and state.
+ * \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage configuration and state.
*/
- void MS_Device_USBTask(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
+ void MS_Device_USBTask(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
/** Mass Storage class driver callback for the user processing of a received SCSI command. This callback will fire each time the
* host sends a SCSI command which requires processing by the user application. Inside this callback the user is responsible
* for the processing of the received SCSI command from the host. The SCSI command is available in the CommandBlock structure
* inside the Mass Storage class state structure passed as a parameter to the callback function.
*
- * \param MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state.
+ * \param[in,out] MSInterfaceInfo Pointer to a structure containing a Mass Storage Class configuration and state.
*
* \return Boolean true if the SCSI command was successfully processed, false otherwise
*/
- bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
+ bool CALLBACK_MS_Device_SCSICommandReceived(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
/* Function Prototypes: */
#if defined(INCLUDE_FROM_MS_CLASS_DEVICE_C)
- static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
- static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* MSInterfaceInfo);
+ static void MS_Device_ReturnCommandStatus(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
+ static bool MS_Device_ReadInCommandBlock(USB_ClassInfo_MS_Device_t* const MSInterfaceInfo);
static uint8_t StreamCallback_MS_Device_AbortOnMassStoreReset(void);
#endif
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.c b/LUFA/Drivers/USB/Class/Device/RNDIS.c
index bf753bf99..1b2da6ff3 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.c
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.c
@@ -65,7 +65,7 @@ static const uint32_t PROGMEM AdapterSupportedOIDList[] =
OID_802_3_XMIT_MORE_COLLISIONS,
};
-void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)
+void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo)
{
if (!(Endpoint_IsSETUPReceived()))
return;
@@ -110,7 +110,7 @@ void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_Device_t* RNDISInterf
}
}
-bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)
+bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo)
{
if (!(Endpoint_ConfigureEndpoint(RNDISInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_BULK,
ENDPOINT_DIR_IN, RNDISInterfaceInfo->Config.DataINEndpointSize,
@@ -136,7 +136,7 @@ bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* RNDISInterfac
return true;
}
-void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)
+void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo)
{
if (!(USB_IsConnected))
return;
@@ -208,7 +208,7 @@ void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)
}
}
-void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo)
+void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo)
{
/* Note: Only a single buffer is used for both the received message and its response to save SRAM. Because of
this, response bytes should be filled in order so that they do not clobber unread data in the buffer. */
@@ -331,9 +331,9 @@ void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* RNDIS
}
}
-static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo,
- uint32_t OId, void* QueryData, uint16_t QuerySize,
- void* ResponseData, uint16_t* ResponseSize)
+static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,
+ const uint32_t OId, void* const QueryData, const uint16_t QuerySize,
+ void* ResponseData, uint16_t* const ResponseSize)
{
switch (OId)
{
@@ -443,8 +443,8 @@ static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* RNDISInt
}
}
-static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo, uint32_t OId, void* SetData,
- uint16_t SetSize)
+static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo, const uint32_t OId, void* SetData,
+ const uint16_t SetSize)
{
switch (OId)
{
diff --git a/LUFA/Drivers/USB/Class/Device/RNDIS.h b/LUFA/Drivers/USB/Class/Device/RNDIS.h
index 21fb09400..a4c2050e9 100644
--- a/LUFA/Drivers/USB/Class/Device/RNDIS.h
+++ b/LUFA/Drivers/USB/Class/Device/RNDIS.h
@@ -103,36 +103,36 @@
* \ref EVENT_USB_ConfigurationChanged() event so that the endpoints are configured when the configuration
* containing the given HID interface is selected.
*
- * \param RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state.
+ * \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state.
*
* \return Boolean true if the endpoints were sucessfully configured, false otherwise
*/
- bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo);
+ bool RNDIS_Device_ConfigureEndpoints(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo);
/** Processes incomming control requests from the host, that are directed to the given RNDIS class interface. This should be
* linked to the library \ref EVENT_USB_UnhandledControlPacket() event.
*
- * \param RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state.
+ * \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state.
*/
- void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo);
+ void RNDIS_Device_ProcessControlPacket(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo);
/** General management task for a given HID class interface, required for the correct operation of the interface. This should
* be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
*
- * \param RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state.
+ * \param[in,out] RNDISInterfaceInfo Pointer to a structure containing a RNDIS Class configuration and state.
*/
- void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo);
+ void RNDIS_Device_USBTask(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo);
/* Private Interface - For use in library only: */
#if !defined(__DOXYGEN__)
/* Function Prototypes: */
#if defined(INCLUDE_FROM_RNDIS_CLASS_DEVICE_C)
- static void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo);
- static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo,
- uint32_t OId, void* QueryData, uint16_t QuerySize,
- void* ResponseData, uint16_t* ResponseSize);
- static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* RNDISInterfaceInfo, uint32_t OId,
- void* SetData, uint16_t SetSize);
+ static void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo);
+ static bool RNDIS_Device_ProcessNDISQuery(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,
+ const uint32_t OId, void* const QueryData, const uint16_t QuerySize,
+ void* ResponseData, uint16_t* const ResponseSize);
+ static bool RNDIS_Device_ProcessNDISSet(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo, const uint32_t OId,
+ void* SetData, const uint16_t SetSize);
#endif
#endif
diff --git a/LUFA/Drivers/USB/Class/Host/HIDParser.h b/LUFA/Drivers/USB/Class/Host/HIDParser.h
index 4acce2462..f878aa167 100644
--- a/LUFA/Drivers/USB/Class/Host/HIDParser.h
+++ b/LUFA/Drivers/USB/Class/Host/HIDParser.h
@@ -209,9 +209,9 @@
/** Function to process a given HID report returned from an attached device, and store it into a given
* \ref HID_ReportInfo_t structure.
*
- * \param ReportData Buffer containing the device's HID report table
- * \param ReportSize Size in bytes of the HID report table
- * \param ParserData Pointer to a \ref HID_ReportInfo_t instance for the parser output
+ * \param[in] ReportData Buffer containing the device's HID report table
+ * \param[in] ReportSize Size in bytes of the HID report table
+ * \param[out] ParserData Pointer to a \ref HID_ReportInfo_t instance for the parser output
*
* \return A value in the \ref HID_Parse_ErrorCodes_t enum
*/
@@ -221,8 +221,8 @@
/** Extracts the given report item's value out of the given HID report and places it into the Value
* member of the report item's \ref HID_ReportItem_t structure.
*
- * \param ReportData Buffer containing an IN or FEATURE report from an attached device
- * \param ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array
+ * \param[in] ReportData Buffer containing an IN or FEATURE report from an attached device
+ * \param[in,out] ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array
*
* \returns Boolean true if the item to retrieve was located in the given report, false otherwise
*/
@@ -236,8 +236,8 @@
*
* If the device has multiple HID reports, the report ID is set to the report ID of the given item.
*
- * \param ReportData Buffer holding the current OUT report data
- * \param ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array
+ * \param[out] ReportData Buffer holding the current OUT report data
+ * \param[in] ReportItem Pointer to the report item of interest in a \ref HID_ReportInfo_t ReportItem array
*/
void USB_SetHIDReportItemInfo(uint8_t* ReportData, const HID_ReportItem_t* ReportItem)
ATTR_NON_NULL_PTR_ARG(1, 2);
diff --git a/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h b/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
index 17b6378e9..a9b0b1423 100644
--- a/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
+++ b/LUFA/Drivers/USB/HighLevel/ConfigDescriptor.h
@@ -133,9 +133,9 @@
*
* \note This function is available in USB Host mode only.
*
- * \param BytesRem Pointer to an int storing the remaining bytes in the configuration descriptor
- * \param CurrConfigLoc Pointer to the current position in the configuration descriptor
- * \param ComparatorRoutine Name of the comparator search function to use on the configuration descriptor
+ * \param[in,out] BytesRem Pointer to an int storing the remaining bytes in the configuration descriptor
+ * \param[in,out] CurrConfigLoc Pointer to the current position in the configuration descriptor
+ * \param[in] ComparatorRoutine Name of the comparator search function to use on the configuration descriptor
*
* \return Value of one of the members of the \ref DSearch_Comp_Return_ErrorCodes_t enum
*
@@ -183,17 +183,17 @@
/* Function Prototypes: */
/** Retrieves the configuration descriptor data or size from an attached device via a standard request.
*
- * \param ConfigNumber Device configuration descriptor number to fetch from the device (usually set to 1 for
- * single configuration devices)
+ * \param[in] ConfigNumber Device configuration descriptor number to fetch from the device (usually set to 1 for
+ * single configuration devices)
*
- * \param ConfigSizePtr Pointer to a uint16_t for either storing or retrieving the configuration
- * descriptor size
+ * \param[in,out] ConfigSizePtr Pointer to a uint16_t for either storing or retrieving the configuration
+ * descriptor size
*
- * \param BufferPtr Pointer to the buffer for storing the configuration descriptor data. If this is
- * NULL, the size of the configuration descriptor will be retrieved instead and
- * placed in the variable pointed to by ConfigSizePtr. If this is non-NULL, the number
- * of bytes indicated by ConfigSizePtr of the configuration descriptor will be loaded
- * into the buffer
+ * \param[out] BufferPtr Pointer to the buffer for storing the configuration descriptor data. If this is
+ * NULL, the size of the configuration descriptor will be retrieved instead and
+ * placed in the variable pointed to by ConfigSizePtr. If this is non-NULL, the number
+ * of bytes indicated by ConfigSizePtr of the configuration descriptor will be loaded
+ * into the buffer
*/
uint8_t USB_GetDeviceConfigDescriptor(uint8_t ConfigNumber, uint16_t* const ConfigSizePtr, void* BufferPtr)
ATTR_NON_NULL_PTR_ARG(2);
@@ -201,9 +201,9 @@
/** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value.
* The bytes remaining value is automatically decremented.
*
- * \param BytesRem Pointer to the number of bytes remaining of the configuration descriptor
- * \param CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
- * \param Type Descriptor type value to search for
+ * \param[in,out] BytesRem Pointer to the number of bytes remaining of the configuration descriptor
+ * \param[in,out] CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
+ * \param[in] Type Descriptor type value to search for
*/
void USB_GetNextDescriptorOfType(uint16_t* const BytesRem,
uint8_t** const CurrConfigLoc,
@@ -215,10 +215,10 @@
* descriptor is reached first, the number of bytes remaining to process is set to zero and the
* function exits. The bytes remaining value is automatically decremented.
*
- * \param BytesRem Pointer to the number of bytes remaining of the configuration descriptor
- * \param CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
- * \param Type Descriptor type value to search for
- * \param BeforeType Descriptor type value which must not be reached before the given Type descriptor
+ * \param[in,out] BytesRem Pointer to the number of bytes remaining of the configuration descriptor
+ * \param[in,out] CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
+ * \param[in] Type Descriptor type value to search for
+ * \param[in] BeforeType Descriptor type value which must not be reached before the given Type descriptor
*/
void USB_GetNextDescriptorOfTypeBefore(uint16_t* const BytesRem,
uint8_t** const CurrConfigLoc,
@@ -230,10 +230,10 @@
* which must come after a descriptor of the second given type value. The bytes remaining value is
* automatically decremented.
*
- * \param BytesRem Pointer to the number of bytes remaining of the configuration descriptor
- * \param CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
- * \param Type Descriptor type value to search for
- * \param AfterType Descriptor type value which must be reached before the given Type descriptor
+ * \param[in,out] BytesRem Pointer to the number of bytes remaining of the configuration descriptor
+ * \param[in,out] CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
+ * \param[in] Type Descriptor type value to search for
+ * \param[in] AfterType Descriptor type value which must be reached before the given Type descriptor
*/
void USB_GetNextDescriptorOfTypeAfter(uint16_t* const BytesRem,
uint8_t** const CurrConfigLoc,
@@ -245,8 +245,8 @@
/** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then
points to the next sub-descriptor. The bytes remaining value is automatically decremented.
*
- * \param BytesRem Pointer to the number of bytes remaining of the configuration descriptor
- * \param CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
+ * \param[in,out] BytesRem Pointer to the number of bytes remaining of the configuration descriptor
+ * \param[in,out] CurrConfigLoc Pointer to the current descriptor inside the configuration descriptor
*/
static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,
uint8_t** const CurrConfigLoc)
diff --git a/LUFA/Drivers/USB/HighLevel/Events.h b/LUFA/Drivers/USB/HighLevel/Events.h
index 7f369bc63..2df0dda08 100644
--- a/LUFA/Drivers/USB/HighLevel/Events.h
+++ b/LUFA/Drivers/USB/HighLevel/Events.h
@@ -127,7 +127,7 @@
*
* \note This event only exists on USB AVR models which support dual role modes.
*
- * \param ErrorCode Error code indicating the failure reason, a value in \ref USB_InitErrorCodes_t
+ * \param[in] ErrorCode Error code indicating the failure reason, a value in \ref USB_InitErrorCodes_t
*/
void EVENT_USB_InitFailure(const uint8_t ErrorCode);
@@ -146,7 +146,7 @@
/** Event for USB host error. This event fires when a hardware fault has occurred whilst the USB
* interface is in host mode.
*
- * \param ErrorCode Error code indicating the failure reason, a value in \ref USB_Host_ErrorCodes_t
+ * \param[in] ErrorCode Error code indicating the failure reason, a value in \ref USB_Host_ErrorCodes_t
*
* \note This event only exists on USB AVR models which supports host mode.
*
@@ -185,12 +185,12 @@
/** Event for USB device enumeration failure. This event fires when a the USB interface is
* in host mode, and an attached USB device has failed to enumerate completely.
*
- * \param ErrorCode Error code indicating the failure reason, a value in
- * \ref USB_Host_EnumerationErrorCodes_t
+ * \param[in] ErrorCode Error code indicating the failure reason, a value in
+ * \ref USB_Host_EnumerationErrorCodes_t
*
- * \param SubErrorCode Sub error code indicating the reason for failure - for example, if the
- * ErrorCode parameter indicates a control error, this will give the error
- * code returned by the \ref USB_Host_SendControlRequest() function.
+ * \param[in] SubErrorCode Sub error code indicating the reason for failure - for example, if the
+ * ErrorCode parameter indicates a control error, this will give the error
+ * code returned by the \ref USB_Host_SendControlRequest() function.
*
* \note This event only exists on USB AVR models which supports host mode.
*
diff --git a/LUFA/Drivers/USB/LowLevel/Device.h b/LUFA/Drivers/USB/LowLevel/Device.h
index 6661b9e0c..470c317a0 100644
--- a/LUFA/Drivers/USB/LowLevel/Device.h
+++ b/LUFA/Drivers/USB/LowLevel/Device.h
@@ -124,15 +124,15 @@
* 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 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 wIndex The language ID of the string to return if the wValue type indicates DTYPE_String,
- * otherwise zero for standard descriptors, or as defined in a class-specific
- * standards.
- * \param DescriptorAddress Pointer to the descriptor in memory. This should be set by the routine to
- * the address of the descriptor.
+ * \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 wValue type indicates 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.
*
* \note By default, the library expects all descriptors to be located in flash memory via the PROGMEM attribute.
* If descriptors should be located in RAM or EEPROM instead (to speed up access in the case of RAM, or to
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.c b/LUFA/Drivers/USB/LowLevel/Endpoint.c
index dca755497..1ff66ddfa 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.c
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.c
@@ -119,6 +119,46 @@ uint8_t Endpoint_Discard_Stream(uint16_t Length
if ((ErrorCode = Endpoint_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Endpoint_BytesInEndpoint() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Endpoint_IsReadWriteAllowed()))
+ {
+ Endpoint_ClearOUT();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return ENDPOINT_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Endpoint_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ Endpoint_Discard_Byte();
+ case 7: Endpoint_Discard_Byte();
+ case 6: Endpoint_Discard_Byte();
+ case 5: Endpoint_Discard_Byte();
+ case 4: Endpoint_Discard_Byte();
+ case 3: Endpoint_Discard_Byte();
+ case 2: Endpoint_Discard_Byte();
+ case 1: Endpoint_Discard_Byte();
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Endpoint_IsReadWriteAllowed()))
@@ -155,6 +195,46 @@ uint8_t Endpoint_Write_Stream_LE(const void* Buffer, uint16_t Length
if ((ErrorCode = Endpoint_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Endpoint_BytesInEndpoint() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Endpoint_IsReadWriteAllowed()))
+ {
+ Endpoint_ClearIN();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return ENDPOINT_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Endpoint_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ Endpoint_Write_Byte(*(DataStream++));
+ case 7: Endpoint_Write_Byte(*(DataStream++));
+ case 6: Endpoint_Write_Byte(*(DataStream++));
+ case 5: Endpoint_Write_Byte(*(DataStream++));
+ case 4: Endpoint_Write_Byte(*(DataStream++));
+ case 3: Endpoint_Write_Byte(*(DataStream++));
+ case 2: Endpoint_Write_Byte(*(DataStream++));
+ case 1: Endpoint_Write_Byte(*(DataStream++));
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Endpoint_IsReadWriteAllowed()))
@@ -175,7 +255,7 @@ uint8_t Endpoint_Write_Stream_LE(const void* Buffer, uint16_t Length
Length--;
}
}
-
+
return ENDPOINT_RWSTREAM_NoError;
}
@@ -191,6 +271,46 @@ uint8_t Endpoint_Write_Stream_BE(const void* Buffer, uint16_t Length
if ((ErrorCode = Endpoint_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Endpoint_BytesInEndpoint() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Endpoint_IsReadWriteAllowed()))
+ {
+ Endpoint_ClearIN();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return ENDPOINT_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Endpoint_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ Endpoint_Write_Byte(*(DataStream--));
+ case 7: Endpoint_Write_Byte(*(DataStream--));
+ case 6: Endpoint_Write_Byte(*(DataStream--));
+ case 5: Endpoint_Write_Byte(*(DataStream--));
+ case 4: Endpoint_Write_Byte(*(DataStream--));
+ case 3: Endpoint_Write_Byte(*(DataStream--));
+ case 2: Endpoint_Write_Byte(*(DataStream--));
+ case 1: Endpoint_Write_Byte(*(DataStream--));
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Endpoint_IsReadWriteAllowed()))
@@ -211,7 +331,7 @@ uint8_t Endpoint_Write_Stream_BE(const void* Buffer, uint16_t Length
Length--;
}
}
-
+
return ENDPOINT_RWSTREAM_NoError;
}
@@ -227,6 +347,46 @@ uint8_t Endpoint_Read_Stream_LE(void* Buffer, uint16_t Length
if ((ErrorCode = Endpoint_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Endpoint_BytesInEndpoint() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Endpoint_IsReadWriteAllowed()))
+ {
+ Endpoint_ClearOUT();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return ENDPOINT_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Endpoint_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ *(DataStream++) = Endpoint_Read_Byte();
+ case 7: *(DataStream++) = Endpoint_Read_Byte();
+ case 6: *(DataStream++) = Endpoint_Read_Byte();
+ case 5: *(DataStream++) = Endpoint_Read_Byte();
+ case 4: *(DataStream++) = Endpoint_Read_Byte();
+ case 3: *(DataStream++) = Endpoint_Read_Byte();
+ case 2: *(DataStream++) = Endpoint_Read_Byte();
+ case 1: *(DataStream++) = Endpoint_Read_Byte();
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Endpoint_IsReadWriteAllowed()))
@@ -247,7 +407,7 @@ uint8_t Endpoint_Read_Stream_LE(void* Buffer, uint16_t Length
Length--;
}
}
-
+
return ENDPOINT_RWSTREAM_NoError;
}
@@ -263,6 +423,46 @@ uint8_t Endpoint_Read_Stream_BE(void* Buffer, uint16_t Length
if ((ErrorCode = Endpoint_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Endpoint_BytesInEndpoint() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Endpoint_IsReadWriteAllowed()))
+ {
+ Endpoint_ClearOUT();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return ENDPOINT_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Endpoint_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ *(DataStream--) = Endpoint_Read_Byte();
+ case 7: *(DataStream--) = Endpoint_Read_Byte();
+ case 6: *(DataStream--) = Endpoint_Read_Byte();
+ case 5: *(DataStream--) = Endpoint_Read_Byte();
+ case 4: *(DataStream--) = Endpoint_Read_Byte();
+ case 3: *(DataStream--) = Endpoint_Read_Byte();
+ case 2: *(DataStream--) = Endpoint_Read_Byte();
+ case 1: *(DataStream--) = Endpoint_Read_Byte();
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Endpoint_IsReadWriteAllowed()))
@@ -283,7 +483,7 @@ uint8_t Endpoint_Read_Stream_BE(void* Buffer, uint16_t Length
Length--;
}
}
-
+
return ENDPOINT_RWSTREAM_NoError;
}
#endif
diff --git a/LUFA/Drivers/USB/LowLevel/Endpoint.h b/LUFA/Drivers/USB/LowLevel/Endpoint.h
index 2c7a064e5..772d1feed 100644
--- a/LUFA/Drivers/USB/LowLevel/Endpoint.h
+++ b/LUFA/Drivers/USB/LowLevel/Endpoint.h
@@ -117,13 +117,13 @@
/** Maximum size in bytes of a given endpoint.
*
- * \param n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)
+ * \param[in] n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)
*/
#define ENDPOINT_MAX_SIZE(n) _ENDPOINT_GET_MAXSIZE(n)
/** Indicates if the given endpoint supports double banking.
*
- * \param n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)
+ * \param[in] n Endpoint number, a value between 0 and (ENDPOINT_TOTAL_ENDPOINTS - 1)
*/
#define ENDPOINT_DOUBLEBANK_SUPPORTED(n) _ENDPOINT_GET_DOUBLEBANK(n)
@@ -169,14 +169,14 @@
* Any endpoint operations which do not require the endpoint number to be indicated will operate on
* the currently selected endpoint.
*
- * \param EndpointNumber Endpoint number to select
+ * \param[in] EndpointNumber Endpoint number to select
*/
static inline void Endpoint_SelectEndpoint(uint8_t EndpointNumber);
/** Resets the endpoint bank FIFO. This clears all the endpoint banks and resets the USB controller's
* In and Out pointers to the bank's contents.
*
- * \param EndpointNumber Endpoint number whose FIFO buffers are to be reset
+ * \param[in] EndpointNumber Endpoint number whose FIFO buffers are to be reset
*/
static inline void Endpoint_ResetFIFO(uint8_t EndpointNumber);
@@ -227,7 +227,7 @@
/** Determines if the specified endpoint number has interrupted (valid only for INTERRUPT type
* endpoints).
*
- * \param EndpointNumber Index of the endpoint whose interrupt flag should be tested
+ * \param[in] EndpointNumber Index of the endpoint whose interrupt flag should be tested
*
* \return Boolean true if the specified endpoint has interrupted, false otherwise
*/
@@ -454,7 +454,7 @@
*
* \ingroup Group_EndpointRW
*
- * \param Byte Next byte to write into the the currently selected endpoint's FIFO buffer
+ * \param[in] Byte Next byte to write into the the currently selected endpoint's FIFO buffer
*/
static inline void Endpoint_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_Byte(const uint8_t Byte)
@@ -515,7 +515,7 @@
*
* \ingroup Group_EndpointRW
*
- * \param Word Next word to write to the currently selected endpoint's FIFO buffer
+ * \param[in] Word Next word to write to the currently selected endpoint's FIFO buffer
*/
static inline void Endpoint_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_Word_LE(const uint16_t Word)
@@ -529,7 +529,7 @@
*
* \ingroup Group_EndpointRW
*
- * \param Word Next word to write to the currently selected endpoint's FIFO buffer
+ * \param[in] Word Next word to write to the currently selected endpoint's FIFO buffer
*/
static inline void Endpoint_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_Word_BE(const uint16_t Word)
@@ -604,7 +604,7 @@
*
* \ingroup Group_EndpointRW
*
- * \param DWord Next double word to write to the currently selected endpoint's FIFO buffer
+ * \param[in] DWord Next double word to write to the currently selected endpoint's FIFO buffer
*/
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord)
@@ -620,7 +620,7 @@
*
* \ingroup Group_EndpointRW
*
- * \param DWord Next double word to write to the currently selected endpoint's FIFO buffer
+ * \param[in] DWord Next double word to write to the currently selected endpoint's FIFO buffer
*/
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord)
@@ -722,8 +722,8 @@
*
* \ingroup Group_EndpointRW
*
- * \param Length Number of bytes to send via the currently selected endpoint.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
*/
@@ -748,9 +748,9 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the source data buffer to read from.
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[in] Buffer Pointer to the source data buffer to read from.
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
*/
@@ -775,9 +775,9 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the source data buffer to read from.
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[in] Buffer Pointer to the source data buffer to read from.
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
*/
@@ -802,9 +802,9 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the destination data buffer to write to.
- * \param Length Number of bytes to send via the currently selected endpoint.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[out] Buffer Pointer to the destination data buffer to write to.
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
*/
@@ -829,9 +829,9 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the destination data buffer to write to.
- * \param Length Number of bytes to send via the currently selected endpoint.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[out] Buffer Pointer to the destination data buffer to write to.
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Endpoint_Stream_RW_ErrorCodes_t enum.
*/
@@ -855,8 +855,8 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the source data buffer to read from.
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.
+ * \param[in] Buffer Pointer to the source data buffer to read from.
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.
*
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.
*/
@@ -874,8 +874,8 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the source data buffer to read from.
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.
+ * \param[in] Buffer Pointer to the source data buffer to read from.
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.
*
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.
*/
@@ -893,8 +893,8 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the destination data buffer to write to.
- * \param Length Number of bytes to send via the currently selected endpoint.
+ * \param[out] Buffer Pointer to the destination data buffer to write to.
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.
*
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.
*/
@@ -912,8 +912,8 @@
*
* \ingroup Group_EndpointRW
*
- * \param Buffer Pointer to the destination data buffer to write to.
- * \param Length Number of bytes to send via the currently selected endpoint.
+ * \param[out] Buffer Pointer to the destination data buffer to write to.
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.
*
* \return A value from the \ref Endpoint_ControlStream_RW_ErrorCodes_t enum.
*/
diff --git a/LUFA/Drivers/USB/LowLevel/Host.h b/LUFA/Drivers/USB/LowLevel/Host.h
index 26e2d7675..08b21f688 100644
--- a/LUFA/Drivers/USB/LowLevel/Host.h
+++ b/LUFA/Drivers/USB/LowLevel/Host.h
@@ -182,7 +182,7 @@
*
* \note After this routine returns, the control pipe will be selected.
*
- * \param ConfigNumber Configuration index to send to the device
+ * \param[in] ConfigNumber Configuration index to send to the device
*
* \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
*/
@@ -194,8 +194,8 @@
*
* \note After this routine returns, the control pipe will be selected.
*
- * \param DeviceDescriptorPtr Pointer to the destination device descriptor structure where
- * the read data is to be stored
+ * \param[out] DeviceDescriptorPtr Pointer to the destination device descriptor structure where
+ * the read data is to be stored
*
* \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
*/
@@ -205,7 +205,7 @@
*
* \note After this routine returns, the control pipe will be selected.
*
- * \param EndpointIndex Index of the endpoint to clear
+ * \param[in] EndpointIndex Index of the endpoint to clear
*
* \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
*/
diff --git a/LUFA/Drivers/USB/LowLevel/HostChapter9.h b/LUFA/Drivers/USB/LowLevel/HostChapter9.h
index 1e3f7b258..3fa5277a3 100644
--- a/LUFA/Drivers/USB/LowLevel/HostChapter9.h
+++ b/LUFA/Drivers/USB/LowLevel/HostChapter9.h
@@ -71,8 +71,8 @@
*
* \ingroup Group_PipeControlReq
*
- * \param BufferPtr Pointer to the start of the data buffer if the request has a data stage, or
- * NULL if the request transfers no data to or from the device.
+ * \param[in] BufferPtr Pointer to the start of the data buffer if the request has a data stage, or
+ * NULL if the request transfers no data to or from the device.
*
* \return A value from the \ref USB_Host_SendControlErrorCodes_t enum to indicate the result.
*/
diff --git a/LUFA/Drivers/USB/LowLevel/LowLevel.h b/LUFA/Drivers/USB/LowLevel/LowLevel.h
index 14d10c776..df1fa0bcc 100644
--- a/LUFA/Drivers/USB/LowLevel/LowLevel.h
+++ b/LUFA/Drivers/USB/LowLevel/LowLevel.h
@@ -228,14 +228,14 @@
* Calling this function when the USB interface is already initialized will cause a complete USB
* interface reset and re-enumeration.
*
- * \param Mode This is a mask indicating what mode the USB interface is to be initialized to.
- * Valid mode masks are \ref USB_MODE_DEVICE, \ref USB_MODE_HOST or \ref USB_MODE_UID.
+ * \param[in] Mode This is a mask indicating what mode the USB interface is to be initialized to.
+ * Valid mode masks are \ref USB_MODE_DEVICE, \ref USB_MODE_HOST or \ref USB_MODE_UID.
*
- * \param Options Mask indicating the options which should be used when initializing the USB
- * interface to control the USB interface's behaviour. This should be comprised of
- * a USB_OPT_REG_* mask to control the regulator, a USB_OPT_*_PLL mask to control the
- * PLL, and a USB_DEVICE_OPT_* mask (when the device mode is enabled) to set the device
- * mode speed.
+ * \param[in] Options Mask indicating the options which should be used when initializing the USB
+ * interface to control the USB interface's behaviour. This should be comprised of
+ * a USB_OPT_REG_* mask to control the regulator, a USB_OPT_*_PLL mask to control the
+ * PLL, and a USB_DEVICE_OPT_* mask (when the device mode is enabled) to set the device
+ * mode speed.
*
* \note To reduce the FLASH requirements of the library if only device or host mode is required,
* this can be statically set via defining the token USB_DEVICE_ONLY for device mode or
diff --git a/LUFA/Drivers/USB/LowLevel/OTG.h b/LUFA/Drivers/USB/LowLevel/OTG.h
index d3dee96f3..d95488e3c 100644
--- a/LUFA/Drivers/USB/LowLevel/OTG.h
+++ b/LUFA/Drivers/USB/LowLevel/OTG.h
@@ -102,7 +102,7 @@
* There are two different methods of sending a SRP - either pulses on the VBUS line, or by
* pulsing the Data + line via the internal pull-up resistor.
*
- * \param SRPTypeMask Mask indicating the type of SRP to use, either \ref USB_OTG_SRP_VBUS or \ref USB_OTG_STP_DATA.
+ * \param[in] SRPTypeMask Mask indicating the type of SRP to use, either \ref USB_OTG_SRP_VBUS or \ref USB_OTG_STP_DATA.
*/
static inline void USB_OTG_Dev_InitiateSRP(uint8_t SRPTypeMask);
#else
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.c b/LUFA/Drivers/USB/LowLevel/Pipe.c
index 1376de495..ab092796c 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.c
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.c
@@ -120,6 +120,46 @@ uint8_t Pipe_Write_Stream_LE(const void* Data, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Pipe_BytesInPipe() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Pipe_IsReadWriteAllowed()))
+ {
+ Pipe_ClearOUT();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return PIPE_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ Pipe_Write_Byte(*(DataStream++));
+ case 7: Pipe_Write_Byte(*(DataStream++));
+ case 6: Pipe_Write_Byte(*(DataStream++));
+ case 5: Pipe_Write_Byte(*(DataStream++));
+ case 4: Pipe_Write_Byte(*(DataStream++));
+ case 3: Pipe_Write_Byte(*(DataStream++));
+ case 2: Pipe_Write_Byte(*(DataStream++));
+ case 1: Pipe_Write_Byte(*(DataStream++));
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Pipe_IsReadWriteAllowed()))
@@ -158,6 +198,46 @@ uint8_t Pipe_Write_Stream_BE(const void* Data, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Pipe_BytesInPipe() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Pipe_IsReadWriteAllowed()))
+ {
+ Pipe_ClearOUT();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return PIPE_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ Pipe_Write_Byte(*(DataStream--));
+ case 7: Pipe_Write_Byte(*(DataStream--));
+ case 6: Pipe_Write_Byte(*(DataStream--));
+ case 5: Pipe_Write_Byte(*(DataStream--));
+ case 4: Pipe_Write_Byte(*(DataStream--));
+ case 3: Pipe_Write_Byte(*(DataStream--));
+ case 2: Pipe_Write_Byte(*(DataStream--));
+ case 1: Pipe_Write_Byte(*(DataStream--));
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Pipe_IsReadWriteAllowed()))
@@ -195,6 +275,46 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Pipe_BytesInPipe() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Pipe_IsReadWriteAllowed()))
+ {
+ Pipe_ClearIN();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return PIPE_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ Pipe_Discard_Byte();
+ case 7: Pipe_Discard_Byte();
+ case 6: Pipe_Discard_Byte();
+ case 5: Pipe_Discard_Byte();
+ case 4: Pipe_Discard_Byte();
+ case 3: Pipe_Discard_Byte();
+ case 2: Pipe_Discard_Byte();
+ case 1: Pipe_Discard_Byte();
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Pipe_IsReadWriteAllowed()))
@@ -233,6 +353,46 @@ uint8_t Pipe_Read_Stream_LE(void* Buffer, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Pipe_BytesInPipe() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Pipe_IsReadWriteAllowed()))
+ {
+ Pipe_ClearIN();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return PIPE_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ *(DataStream++) = Pipe_Read_Byte();
+ case 7: *(DataStream++) = Pipe_Read_Byte();
+ case 6: *(DataStream++) = Pipe_Read_Byte();
+ case 5: *(DataStream++) = Pipe_Read_Byte();
+ case 4: *(DataStream++) = Pipe_Read_Byte();
+ case 3: *(DataStream++) = Pipe_Read_Byte();
+ case 2: *(DataStream++) = Pipe_Read_Byte();
+ case 1: *(DataStream++) = Pipe_Read_Byte();
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Pipe_IsReadWriteAllowed()))
@@ -271,6 +431,46 @@ uint8_t Pipe_Read_Stream_BE(void* Buffer, uint16_t Length
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;
+ #if defined(FAST_STREAM_TRANSFERS)
+ uint8_t BytesRemToAlignment = (Pipe_BytesInPipe() & 0x07);
+
+ if (Length >= 8)
+ {
+ Length -= BytesRemToAlignment;
+
+ switch (BytesRemToAlignment)
+ {
+ default:
+ do
+ {
+ if (!(Pipe_IsReadWriteAllowed()))
+ {
+ Pipe_ClearIN();
+
+ #if !defined(NO_STREAM_CALLBACKS)
+ if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
+ return PIPE_RWSTREAM_CallbackAborted;
+ #endif
+
+ if ((ErrorCode = Pipe_WaitUntilReady()))
+ return ErrorCode;
+ }
+
+ Length -= 8;
+
+ *(DataStream--) = Pipe_Read_Byte();
+ case 7: *(DataStream--) = Pipe_Read_Byte();
+ case 6: *(DataStream--) = Pipe_Read_Byte();
+ case 5: *(DataStream--) = Pipe_Read_Byte();
+ case 4: *(DataStream--) = Pipe_Read_Byte();
+ case 3: *(DataStream--) = Pipe_Read_Byte();
+ case 2: *(DataStream--) = Pipe_Read_Byte();
+ case 1: *(DataStream--) = Pipe_Read_Byte();
+ } while (Length >= 8);
+ }
+ }
+ #endif
+
while (Length)
{
if (!(Pipe_IsReadWriteAllowed()))
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h
index 30e0fde90..cf61eeae0 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.h
@@ -187,13 +187,13 @@
/** Selects the given pipe number. Any pipe operations which do not require the pipe number to be
* indicated will operate on the currently selected pipe.
*
- * \param PipeNumber Index of the pipe to select
+ * \param[in] PipeNumber Index of the pipe to select
*/
static inline void Pipe_SelectPipe(uint8_t PipeNumber);
/** Resets the desired pipe, including the pipe banks and flags.
*
- * \param PipeNumber Index of the pipe to reset
+ * \param[in] PipeNumber Index of the pipe to reset
*/
static inline void Pipe_ResetPipe(uint8_t PipeNumber);
@@ -226,7 +226,7 @@
* control requests, or on regular pipes to allow for half-duplex bidirectional data transfer to devices
* which have two endpoints of opposite direction sharing the same endpoint address within the device.
*
- * \param Token New pipe token to set the selected pipe to, as a PIPE_TOKEN_* mask
+ * \param[in] Token New pipe token to set the selected pipe to, as a PIPE_TOKEN_* mask
*/
static inline void Pipe_SetPipeToken(uint8_t Token);
@@ -236,7 +236,7 @@
/** Configures the currently selected pipe to only allow the specified number of IN requests to be
* accepted by the pipe before it is automatically frozen.
*
- * \param TotalINRequests Total number of IN requests that the pipe may receive before freezing
+ * \param[in] TotalINRequests Total number of IN requests that the pipe may receive before freezing
*/
static inline void Pipe_SetFiniteINRequests(uint8_t TotalINRequests);
@@ -248,7 +248,7 @@
/** Sets the period between interrupts for an INTERRUPT type pipe to a specified number of milliseconds.
*
- * \param Milliseconds Number of milliseconds between each pipe poll
+ * \param[in] Milliseconds Number of milliseconds between each pipe poll
*/
static inline void Pipe_SetInterruptPeriod(uint8_t Milliseconds);
@@ -262,7 +262,7 @@
/** Determines if the specified pipe number has interrupted (valid only for INTERRUPT type
* pipes).
*
- * \param PipeNumber Index of the pipe whose interrupt flag should be tested
+ * \param[in] PipeNumber Index of the pipe whose interrupt flag should be tested
*
* \return Boolean true if the specified pipe has interrupted, false otherwise
*/
@@ -516,7 +516,7 @@
*
* \ingroup Group_PipeRW
*
- * \param Byte Next byte to write into the the currently selected pipe's FIFO buffer
+ * \param[in] Byte Next byte to write into the the currently selected pipe's FIFO buffer
*/
static inline void Pipe_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_Byte(const uint8_t Byte)
@@ -577,7 +577,7 @@
*
* \ingroup Group_PipeRW
*
- * \param Word Next word to write to the currently selected pipe's FIFO buffer
+ * \param[in] Word Next word to write to the currently selected pipe's FIFO buffer
*/
static inline void Pipe_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_Word_LE(const uint16_t Word)
@@ -591,7 +591,7 @@
*
* \ingroup Group_PipeRW
*
- * \param Word Next word to write to the currently selected pipe's FIFO buffer
+ * \param[in] Word Next word to write to the currently selected pipe's FIFO buffer
*/
static inline void Pipe_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_Word_BE(const uint16_t Word)
@@ -666,7 +666,7 @@
*
* \ingroup Group_PipeRW
*
- * \param DWord Next double word to write to the currently selected pipe's FIFO buffer
+ * \param[in] DWord Next double word to write to the currently selected pipe's FIFO buffer
*/
static inline void Pipe_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_DWord_LE(const uint32_t DWord)
@@ -680,7 +680,7 @@
*
* \ingroup Group_PipeRW
*
- * \param DWord Next double word to write to the currently selected pipe's FIFO buffer
+ * \param[in] DWord Next double word to write to the currently selected pipe's FIFO buffer
*/
static inline void Pipe_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;
static inline void Pipe_Write_DWord_BE(const uint32_t DWord)
@@ -771,9 +771,9 @@
*
* \ingroup Group_PipeRW
*
- * \param Buffer Pointer to the source data buffer to read from.
- * \param Length Number of bytes to read for the currently selected pipe into the buffer.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[in] Buffer Pointer to the source data buffer to read from.
+ * \param[in] Length Number of bytes to read for the currently selected pipe into the buffer.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
@@ -798,9 +798,9 @@
*
* \ingroup Group_PipeRW
*
- * \param Buffer Pointer to the source data buffer to read from.
- * \param Length Number of bytes to read for the currently selected pipe into the buffer.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[in] Buffer Pointer to the source data buffer to read from.
+ * \param[in] Length Number of bytes to read for the currently selected pipe into the buffer.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
@@ -825,8 +825,8 @@
*
* \ingroup Group_PipeRW
*
- * \param Length Number of bytes to send via the currently selected pipe.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[in] Length Number of bytes to send via the currently selected pipe.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
@@ -851,9 +851,9 @@
*
* \ingroup Group_PipeRW
*
- * \param Buffer Pointer to the source data buffer to write to.
- * \param Length Number of bytes to read for the currently selected pipe to read from.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[out] Buffer Pointer to the source data buffer to write to.
+ * \param[in] Length Number of bytes to read for the currently selected pipe to read from.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
@@ -878,9 +878,9 @@
*
* \ingroup Group_PipeRW
*
- * \param Buffer Pointer to the source data buffer to write to.
- * \param Length Number of bytes to read for the currently selected pipe to read from.
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
+ * \param[out] Buffer Pointer to the source data buffer to write to.
+ * \param[in] Length Number of bytes to read for the currently selected pipe to read from.
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback
*
* \return A value from the \ref Pipe_Stream_RW_ErrorCodes_t enum.
*/
diff --git a/LUFA/ManPages/FutureChanges.txt b/LUFA/ManPages/FutureChanges.txt
index fd066d0b3..5163ee659 100644
--- a/LUFA/ManPages/FutureChanges.txt
+++ b/LUFA/ManPages/FutureChanges.txt
@@ -19,6 +19,7 @@
* - Add standardized descriptor names to class driver structures, controlled by USE_NONSTANDARD_DESCRIPTOR_NAMES
* - Update Host mode Class Driver demo .txt files
* - Debug mode for pipe/endpoint calls
+ * - Test and document new FAST_STREAM_TRANSFERS compile time option
*
* <b>Targeted for Future Releases:</b>
* - Remake AVRStudio project files
diff --git a/LUFA/ManPages/LibraryApps.txt b/LUFA/ManPages/LibraryApps.txt
index 3a6fecc1d..5b25c89be 100644
--- a/LUFA/ManPages/LibraryApps.txt
+++ b/LUFA/ManPages/LibraryApps.txt
@@ -9,6 +9,9 @@
* The LUFA library ships with several different host and device demos, located in the /Demos/ subdirectory.
* If this directory is missing, please re-download the project from the project homepage. Within this directory the demos
* are seperated by USB mode (Device, Host, OTG) and further seperated by the use or non-use of the library USB Class drivers.
+ * With one or two exceptions (e.g. proprietary classes such as RNDIS) all the included demos will work across all OSes without
+ * the need for special drivers. One Windows, some demos require the supplied .INF file to be used as the device driver, which
+ * directs the OS to use its inbuilt class drivers for the device.
*
* Also included with the library are three fully functional bootloaders, located in the /Bootloaders/ subdirectory.
* The DFU class bootloader is compatible with Atmel's FLIP software or the open source dfu-programmer project, the
diff --git a/LUFA/ManPages/Licence.txt b/LUFA/ManPages/Licence.txt
index 120e937ae..36f0267f1 100644
--- a/LUFA/ManPages/Licence.txt
+++ b/LUFA/ManPages/Licence.txt
@@ -5,7 +5,7 @@
*/
/**
- * \page Page_Licence licence
+ * \page Page_Licence Source Code Licence
*
* The LUFA library is currently released under the MIT licence, included below.
*
diff --git a/LUFA/Scheduler/Scheduler.h b/LUFA/Scheduler/Scheduler.h
index 44e6bb06c..51679eba3 100644
--- a/LUFA/Scheduler/Scheduler.h
+++ b/LUFA/Scheduler/Scheduler.h
@@ -196,7 +196,7 @@
/** Resets the delay counter value to the current tick count. This should be called to reset the period
* for a delay in a task which is dependant on the current tick value.
*
- * \param DelayCounter Counter which is storing the starting tick count for a given delay.
+ * \param[out] DelayCounter Counter which is storing the starting tick count for a given delay.
*/
static inline void Scheduler_ResetDelay(SchedulerDelayCounter_t* const DelayCounter)
ATTR_NON_NULL_PTR_ARG(1) ATTR_ALWAYS_INLINE;
@@ -211,8 +211,8 @@
/* Function Prototypes: */
/** Determines if the given tick delay has elapsed, based on the given .
*
- * \param Delay The delay to test for, measured in ticks
- * \param DelayCounter The counter which is storing the starting tick value for the delay
+ * \param[in] Delay The delay to test for, measured in ticks
+ * \param[in] DelayCounter The counter which is storing the starting tick value for the delay
*
* \return Boolean true if the delay has elapsed, false otherwise
*
@@ -233,16 +233,16 @@
/** Sets the task mode for a given task.
*
- * \param Task Name of the task whose status is to be changed
- * \param TaskStatus New task status for the task (TASK_RUN or TASK_STOP)
+ * \param[in] Task Name of the task whose status is to be changed
+ * \param[in] TaskStatus New task status for the task (TASK_RUN or TASK_STOP)
*/
void Scheduler_SetTaskMode(const TaskPtr_t Task, const bool TaskStatus);
/** Sets the task mode for a given task group ID, allowing for an entire group of tasks to have their
* statuses changed at once.
*
- * \param GroupID Value of the task group ID whose status is to be changed
- * \param TaskStatus New task status for tasks in the specified group (TASK_RUN or TASK_STOP)
+ * \param[in] GroupID Value of the task group ID whose status is to be changed
+ * \param[in] TaskStatus New task status for tasks in the specified group (TASK_RUN or TASK_STOP)
*/
void Scheduler_SetGroupTaskMode(const uint8_t GroupID, const bool TaskStatus);