Use static inline intermediatary functions in Endpoint.h to handle the masking for...
[pub/USBasp.git] / LUFA / Drivers / Peripheral / Serial.h
index 7501c61..4eb74b9 100644 (file)
@@ -39,7 +39,7 @@
  *
  *  \section Sec_Dependencies Module Source Dependencies
  *  The following files must be built with any user project that uses this module:
- *    - LUFA/Drivers/Peripheral/Serial.c
+ *    - LUFA/Drivers/Peripheral/Serial.c <i>(Makefile source module name: LUFA_SRC_SERIAL)</i>
  *
  *  \section Module Description
  *  Hardware serial USART driver. This module provides an easy to use driver for
                         */
                        #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)
 
-               /* Pseudo-Function Macros: */
-                       #if defined(__DOXYGEN__)
-                               /** Indicates whether a character has been received through the USART.
-                                *
-                                *  \return Boolean true if a character has been received, false otherwise.
-                                */
-                               static inline bool Serial_IsCharReceived(void);
-                       #else
-                               #define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false)
-                       #endif
-
                /* Function Prototypes: */
                        /** Transmits a given string located in program space (FLASH) through the USART.
                         *
                         *  \param[in] FlashStringPtr  Pointer to a string located in program space.
                         */
-                       void Serial_TxString_P(const char *FlashStringPtr) ATTR_NON_NULL_PTR_ARG(1);
+                       void Serial_TxString_P(const charFlashStringPtr) ATTR_NON_NULL_PTR_ARG(1);
 
                        /** Transmits a given string located in SRAM memory through the USART.
                         *
                         *  \param[in] StringPtr  Pointer to a string located in SRAM space.
                         */
-                       void Serial_TxString(const char *StringPtr) ATTR_NON_NULL_PTR_ARG(1);
+                       void Serial_TxString(const charStringPtr) ATTR_NON_NULL_PTR_ARG(1);
 
                /* Inline Functions: */
                        /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
                         *  \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)
+                       static inline void Serial_Init(const uint32_t BaudRate,
+                                                      const bool DoubleSpeed)
                        {
                                UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);
                                UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));
                                
                                UBRR1  = 0;
                        }
+
+                       /** Indicates whether a character has been received through the USART.
+                        *
+                        *  \return Boolean true if a character has been received, false otherwise.
+                        */
+                       static inline bool Serial_IsCharReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE;
+                       static inline bool Serial_IsCharReceived(void)
+                       {
+                               return ((UCSR1A & (1 << RXC1)) ? true : false);
+                       }
                        
                        /** Transmits a given byte through the USART.
                         *
                         *  \param[in] DataByte  Byte to transmit through the USART.
                         */
+                       static inline void Serial_TxByte(const char DataByte) ATTR_ALWAYS_INLINE;
                        static inline void Serial_TxByte(const char DataByte)
                        {
                                while (!(UCSR1A & (1 << UDRE1)));
                         *
                         *  \return Byte received from the USART.
                         */
+                       static inline char Serial_RxByte(void) ATTR_ALWAYS_INLINE;
                        static inline char Serial_RxByte(void)
                        {
                                while (!(UCSR1A & (1 << RXC1)));