*/ \r
#define ENDPOINT_MAX_SIZE(n) _ENDPOINT_GET_MAXSIZE(n)\r
\r
/** Indicates if the given endpoint supports double banking.\r
*\r
*/ \r
#define ENDPOINT_MAX_SIZE(n) _ENDPOINT_GET_MAXSIZE(n)\r
\r
/** Indicates if the given endpoint supports double banking.\r
*\r
*/ \r
#define ENDPOINT_DOUBLEBANK_SUPPORTED(n) _ENDPOINT_GET_DOUBLEBANK(n)\r
\r
#if !defined(CONTROL_ONLY_DEVICE)\r
*/ \r
#define ENDPOINT_DOUBLEBANK_SUPPORTED(n) _ENDPOINT_GET_DOUBLEBANK(n)\r
\r
#if !defined(CONTROL_ONLY_DEVICE)\r
/** Total number of endpoints (including the default control endpoint at address 0) which may\r
* be used in the device. Different USB AVR models support different amounts of endpoints,\r
* this value reflects the maximum number of endpoints for the currently selected AVR model.\r
/** Total number of endpoints (including the default control endpoint at address 0) which may\r
* be used in the device. Different USB AVR models support different amounts of endpoints,\r
* this value reflects the maximum number of endpoints for the currently selected AVR model.\r
* Any endpoint operations which do not require the endpoint number to be indicated will operate on\r
* the currently selected endpoint.\r
*\r
* Any endpoint operations which do not require the endpoint number to be indicated will operate on\r
* the currently selected endpoint.\r
*\r
*/\r
static inline void Endpoint_SelectEndpoint(uint8_t EndpointNumber);\r
\r
/** Resets the endpoint bank FIFO. This clears all the endpoint banks and resets the USB controller's\r
* In and Out pointers to the bank's contents.\r
*\r
*/\r
static inline void Endpoint_SelectEndpoint(uint8_t EndpointNumber);\r
\r
/** Resets the endpoint bank FIFO. This clears all the endpoint banks and resets the USB controller's\r
* In and Out pointers to the bank's contents.\r
*\r
*/\r
static inline void Endpoint_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Byte(const uint8_t Byte)\r
*/\r
static inline void Endpoint_Write_Byte(const uint8_t Byte) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Byte(const uint8_t Byte)\r
*/\r
static inline void Endpoint_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Word_LE(const uint16_t Word)\r
*/\r
static inline void Endpoint_Write_Word_LE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Word_LE(const uint16_t Word)\r
*/\r
static inline void Endpoint_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Word_BE(const uint16_t Word)\r
*/\r
static inline void Endpoint_Write_Word_BE(const uint16_t Word) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_Word_BE(const uint16_t Word)\r
*/\r
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord)\r
*/\r
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_DWord_LE(const uint32_t DWord)\r
*/\r
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord)\r
*/\r
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord) ATTR_ALWAYS_INLINE;\r
static inline void Endpoint_Write_DWord_BE(const uint32_t DWord)\r
/* Function Prototypes: */\r
/** Configures the specified endpoint number with the given endpoint type, direction, bank size\r
* and banking mode. Endpoints should be allocated in ascending order by their address in the\r
/* Function Prototypes: */\r
/** Configures the specified endpoint number with the given endpoint type, direction, bank size\r
* and banking mode. Endpoints should be allocated in ascending order by their address in the\r
*\r
* The endpoint type may be one of the EP_TYPE_* macros listed in LowLevel.h and the direction\r
* may be either \ref ENDPOINT_DIR_OUT or \ref ENDPOINT_DIR_IN.\r
*\r
* The endpoint type may be one of the EP_TYPE_* macros listed in LowLevel.h and the direction\r
* may be either \ref ENDPOINT_DIR_OUT or \ref ENDPOINT_DIR_IN.\r
*\r
* \note This routine will select the specified endpoint, and the endpoint will remain selected\r
* once the routine completes regardless of if the endpoint configuration succeeds.\r
*\r
* \note This routine will select the specified endpoint, and the endpoint will remain selected\r
* once the routine completes regardless of if the endpoint configuration succeeds.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
- * \param Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[in] Callback Name of a callback routine to call between successive USB packet transfers, NULL if no callback\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
- * \param Buffer Pointer to the source data buffer to read from.\r
- * \param Length Number of bytes to read for the currently selected endpoint into the buffer.\r
+ * \param[in] Buffer Pointer to the source data buffer to read from.\r
+ * \param[in] Length Number of bytes to read for the currently selected endpoint into the buffer.\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
- * \param Buffer Pointer to the destination data buffer to write to.\r
- * \param Length Number of bytes to send via the currently selected endpoint.\r
+ * \param[out] Buffer Pointer to the destination data buffer to write to.\r
+ * \param[in] Length Number of bytes to send via the currently selected endpoint.\r
#define _ENDPOINT_GET_DOUBLEBANK2(details) _ENDPOINT_GET_DOUBLEBANK3(details)\r
#define _ENDPOINT_GET_DOUBLEBANK3(maxsize, db) db\r
\r
#define _ENDPOINT_GET_DOUBLEBANK2(details) _ENDPOINT_GET_DOUBLEBANK3(details)\r
#define _ENDPOINT_GET_DOUBLEBANK3(maxsize, db) db\r
\r
#define ENDPOINT_DETAILS_EP0 64, true\r
#define ENDPOINT_DETAILS_EP1 256, true\r
#define ENDPOINT_DETAILS_EP2 64, true\r
#define ENDPOINT_DETAILS_EP0 64, true\r
#define ENDPOINT_DETAILS_EP1 256, true\r
#define ENDPOINT_DETAILS_EP2 64, true\r