Add IS_ALIGNED macro to test alignment of a pointer
authorasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Thu, 5 Jan 2012 17:25:53 +0000 (17:25 +0000)
committerasterix <asterix@38d2e660-2303-0410-9eaa-f027e97ec537>
Thu, 5 Jan 2012 17:25:53 +0000 (17:25 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@5214 38d2e660-2303-0410-9eaa-f027e97ec537

bertos/cfg/macros.h

index 6c9b63ef0001b0877a0086a162f83b312cc7f10d..ff682fe214d3cdb22f2e4ab5242ba07ada65e510 100644 (file)
 /** Check if \a x is an integer power of 2. */
 #define IS_POW2(x)     (!(bool)((x) & ((x)-1)))
 
+/** Check if \a x is aligned to \a byte_count bytes */
+#define IS_ALIGNED(x, byte_count) ((uintptr_t)(const void *)(x) % (byte_count) == 0)
+
 /** Calculate a compile-time log2 for a uint8_t */
 #define UINT8_LOG2(x) \
        ((x) < 2 ? 0 : \