X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcfg%2Fmacros.h;h=17f9c6768d92db83972074b7ed26ba479f1c5451;hb=620a5af8d34e5e7e9fc902eb46537faa479411f4;hp=3ec6b277e51f320f87937098c1a88094ce965a1d;hpb=2045959d176e3584849c9bd67728317922604265;p=bertos.git diff --git a/bertos/cfg/macros.h b/bertos/cfg/macros.h index 3ec6b277..17f9c676 100644 --- a/bertos/cfg/macros.h +++ b/bertos/cfg/macros.h @@ -30,6 +30,10 @@ * * --> * + * \defgroup macros General purpose macros + * \ingroup core + * \{ + * * \brief Common and handy function macros * * \author Bernie Innocenti @@ -188,8 +192,7 @@ /** * Perform an integer division rounding the result to the upper int value. - * \note \a divisor should preferibly be a costant, otherwise this macro generates - * 2 division. Also divisor is evaluated twice. + * \note \a divisor is evaluated twice. */ #define DIV_ROUNDUP(dividend, divisor) (((dividend) + (divisor) - 1) / (divisor)) @@ -359,5 +362,15 @@ */ typedef uint32_t id_t; +/** + * Check if a pointer is aligned to a certain power-of-2 size + */ +INLINE bool is_aligned(const void *addr, size_t size) +{ + return ((size_t)addr & (size - 1)) == 0; +} + +/** \} */ //defgroup macros + #endif /* MACROS_H */