#define __ENDPOINT_H__\r
\r
/* Includes: */\r
- #include <avr/io.h>\r
- #include <avr/pgmspace.h>\r
- #include <avr/eeprom.h>\r
- #include <stdbool.h>\r
-\r
+ #if defined(__AVR32__)\r
+ #include <avr32/io.h>\r
+ #include <stdint.h>\r
+ #include <stdbool.h>\r
+ #elif defined(__AVR__)\r
+ #include <avr/io.h>\r
+ #include <avr/pgmspace.h>\r
+ #include <avr/eeprom.h>\r
+ #include <stdbool.h>\r
+ #endif\r
+ \r
#include "../../../Common/Common.h"\r
#include "../HighLevel/USBTask.h"\r
\r
static inline uint8_t Endpoint_Read_Byte(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
static inline uint8_t Endpoint_Read_Byte(void)\r
{\r
+ #if defined(__AVR32__)\r
+ return 0; // TODO\r
+ #elif defined(__AVR__)\r
return UEDATX;\r
+ #endif\r
}\r
\r
/** Writes one byte from the currently selected endpoint's bank, for IN direction endpoints.\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
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
UEDATX = Byte;\r
+ #endif\r
}\r
\r
/** Discards one byte from the currently selected endpoint's bank, for OUT direction endpoints.\r
{\r
uint8_t Dummy;\r
\r
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
Dummy = UEDATX;\r
+ #endif\r
}\r
\r
/** Reads two bytes from the currently selected endpoint's bank in little endian format, for OUT\r
uint8_t Bytes[2];\r
} Data;\r
\r
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
Data.Bytes[0] = UEDATX;\r
Data.Bytes[1] = UEDATX;\r
+ #endif\r
\r
return Data.Word;\r
}\r
uint8_t Bytes[2];\r
} Data;\r
\r
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
Data.Bytes[1] = UEDATX;\r
Data.Bytes[0] = UEDATX;\r
+ #endif\r
\r
return Data.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
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
UEDATX = (Word & 0xFF);\r
UEDATX = (Word >> 8);\r
+ #endif\r
}\r
\r
/** Writes two bytes to the currently selected endpoint's bank in big endian format, for IN\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
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
UEDATX = (Word >> 8);\r
UEDATX = (Word & 0xFF);\r
+ #endif\r
}\r
\r
/** Discards two bytes from the currently selected endpoint's bank, for OUT direction endpoints.\r
{\r
uint8_t Dummy;\r
\r
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
Dummy = UEDATX;\r
Dummy = UEDATX;\r
+ #endif\r
}\r
\r
/** Reads four bytes from the currently selected endpoint's bank in little endian format, for OUT\r
uint8_t Bytes[4];\r
} Data;\r
\r
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
Data.Bytes[0] = UEDATX;\r
Data.Bytes[1] = UEDATX;\r
Data.Bytes[2] = UEDATX;\r
Data.Bytes[3] = UEDATX;\r
+ #endif\r
\r
return Data.DWord;\r
}\r
uint8_t Bytes[4];\r
} Data;\r
\r
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
Data.Bytes[3] = UEDATX;\r
Data.Bytes[2] = UEDATX;\r
Data.Bytes[1] = UEDATX;\r
Data.Bytes[0] = UEDATX;\r
+ #endif\r
\r
return Data.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
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
UEDATX = (DWord & 0xFF);\r
UEDATX = (DWord >> 8);\r
UEDATX = (DWord >> 16);\r
UEDATX = (DWord >> 24);\r
+ #endif\r
}\r
\r
/** Writes four bytes to the currently selected endpoint's bank in big endian format, for IN\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
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
UEDATX = (DWord >> 24);\r
UEDATX = (DWord >> 16);\r
UEDATX = (DWord >> 8);\r
UEDATX = (DWord & 0xFF);\r
+ #endif\r
}\r
\r
/** Discards four bytes from the currently selected endpoint's bank, for OUT direction endpoints. \r
{\r
uint8_t Dummy;\r
\r
+ #if defined(__AVR32__)\r
+ // TODO\r
+ #elif defined(__AVR__)\r
Dummy = UEDATX;\r
Dummy = UEDATX;\r
Dummy = UEDATX;\r
Dummy = UEDATX;\r
+ #endif\r
}\r
\r
/* External Variables: */\r