This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6374

-- gerrit

commit 98f35d03b94bada940bc6f677ad54d5ecefc9a4f
Author: Antonio Borneo <[email protected]>
Date:   Thu May 13 19:07:50 2021 +0200

    helper: add align.h
    
    OpenOCD has to often align values or check for alignment.
    Use a dedicated set of macros instead of reinventing the wheel
    each time.
    
    Change-Id: Ia58711608aae0801deeaccb5f33148f2073b0bbd
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/helper/Makefile.am b/src/helper/Makefile.am
index bedc9f7..42cee80 100644
--- a/src/helper/Makefile.am
+++ b/src/helper/Makefile.am
@@ -15,6 +15,7 @@ noinst_LTLIBRARIES += %D%/libhelper.la
        %D%/util.c \
        %D%/jep106.c \
        %D%/jim-nvp.c \
+       %D%/align.h \
        %D%/binarybuffer.h \
        %D%/bits.h \
        %D%/configuration.h \
diff --git a/src/helper/align.h b/src/helper/align.h
new file mode 100644
index 0000000..bc5eac1
--- /dev/null
+++ b/src/helper/align.h
@@ -0,0 +1,22 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+
+/*
+ * The content of this file is mainly copied/inspired from Linux kernel
+ * code in include/linux/align.h and include/uapi/linux/const.h
+ *
+ * Macro name 'ALIGN' conflicts with macOS/BSD file param.h
+ */
+
+#ifndef OPENOCD_HELPER_ALIGN_H
+#define OPENOCD_HELPER_ALIGN_H
+
+#define ALIGN_MASK(x, mask)     (((x) + (mask)) & ~(mask))
+
+/* @a is a power of 2 value */
+#define ALIGN_UP(x, a)          ALIGN_MASK(x, (typeof(x))(a) - 1)
+#define ALIGN_DOWN(x, a)        ((x) & ~((typeof(x))(a) - 1))
+#define IS_ALIGNED(x, a)        (((x) & ((typeof(x))(a) - 1)) == 0)
+
+#define IS_PWR_OF_2(x)          (((x) == 0) || (((x) & ((x) - 1)) == 0))
+
+#endif /* OPENOCD_HELPER_ALIGN_H */

-- 

Reply via email to