Implemented on-demand PLL clock generation for the U4, U6 and U7 series USB AVRs...
[pub/USBasp.git] / LUFA / Common / Attributes.h
index ad68827..53cfb6d 100644 (file)
@@ -29,7 +29,7 @@
 */
 
 /** \file
- *  \brief AVR-GCC special function/variable attribute macros.
+ *  \brief GCC special function/variable attribute macros.
  *
  *  \copydetails Group_GCCAttributes
  *
@@ -39,7 +39,7 @@
 
 /** \ingroup Group_Common
  *  \defgroup Group_GCCAttributes Function/Variable Attributes
- *  \brief AVR-GCC special function/variable attribute macros.
+ *  \brief GCC special function/variable attribute macros.
  *
  *  This module contains macros for applying GCC specific attributes to functions and variables to control various
  *  optimiser and code generation features of the compiler. Attributes may be placed in the function prototype
                         *  \param[in] Func  Name of the function which the given function name should alias.
                         */
                        #define ATTR_ALIAS(Func)               __attribute__ ((alias( #Func )))
+                       
+                       /** Marks a variable or struct element for packing into the smallest space available, omitting any
+                        *  alignment bytes usually added between fields to optimize field accesses.
+                        */
+                       #define ATTR_PACKED                     __attribute__ ((packed))
+
+                       /** Indicates the minimum alignment in bytes for a variable or struct element.
+                        * 
+                        *  \param[in] Bytes  Minimum number of bytes the item should be aligned to.
+                        */
+                       #define ATTR_ALIGNED(Bytes)            __attribute__ ((aligned(Bytes)))
 #endif
 
 /** @} */