Changed Still Image Host class driver to auto-fill TransactionID element of sent...
[pub/USBasp.git] / LUFA / Drivers / USB / LowLevel / Endpoint.h
index 977c63c..2fa20df 100644 (file)
@@ -33,7 +33,7 @@
  *\r
  *  Functions, macros and enums related to endpoint management when in USB Device mode. This\r
  *  module contains the endpoint management macros, as well as endpoint interrupt and data\r
- *  send/recieve functions for various data types.\r
+ *  send/receive functions for various data types.\r
  *\r
  *  @{\r
  */\r
                        static inline uint16_t Endpoint_Read_Word_LE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
                        static inline uint16_t Endpoint_Read_Word_LE(void)\r
                        {\r
-                               uint16_t Data;\r
+                               union\r
+                               {\r
+                                       uint16_t Word;\r
+                                       uint8_t  Bytes[2];\r
+                               } Data;\r
                                \r
-                               Data  = UEDATX;\r
-                               Data |= (((uint16_t)UEDATX) << 8);\r
+                               Data.Bytes[0] = UEDATX;\r
+                               Data.Bytes[1] = UEDATX;\r
                        \r
-                               return Data;\r
+                               return Data.Word;\r
                        }\r
 \r
                        /** Reads two bytes from the currently selected endpoint's bank in big endian format, for OUT\r
                        static inline uint16_t Endpoint_Read_Word_BE(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;\r
                        static inline uint16_t Endpoint_Read_Word_BE(void)\r
                        {\r
-                               uint16_t Data;\r
+                               union\r
+                               {\r
+                                       uint16_t Word;\r
+                                       uint8_t  Bytes[2];\r
+                               } Data;\r
                                \r
-                               Data  = (((uint16_t)UEDATX) << 8);\r
-                               Data |= UEDATX;\r
+                               Data.Bytes[1] = UEDATX;\r
+                               Data.Bytes[0] = UEDATX;\r
                        \r
-                               return Data;\r
+                               return Data.Word;\r
                        }\r
 \r
                        /** Writes two bytes to the currently selected endpoint's bank in little endian format, for IN\r