*/
/** \file
- * \brief AVR-GCC special function/variable attribute macros.
+ * \brief GCC special function/variable attribute macros.
*
* \copydetails Group_GCCAttributes
*
/** \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 file contains macros for applying GCC specific attributes to functions and variables to control various
+ * 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
* or variable declaration in any order, and multiple attributes can be specified for a single item via a space
* separated list.
*
* On incompatible versions of GCC or on other compilers, these macros evaluate to nothing unless they are
- * critical to the code's function and thus must throw a compiler error when used.
+ * critical to the code's function and thus must throw a compile error when used.
*
* @{
*/
* \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
/** @} */