X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/28a1ee29a1a200c8e8c76355a9036a7456425bc3..b35f93a372d8c872aebab4e3626bfc58d85b84d7:/LUFA/Common/Attributes.h diff --git a/LUFA/Common/Attributes.h b/LUFA/Common/Attributes.h index ad6882769..53cfb6df1 100644 --- a/LUFA/Common/Attributes.h +++ b/LUFA/Common/Attributes.h @@ -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 @@ -133,6 +133,17 @@ * \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 /** @} */