]> git.gag.com Git - fw/openocd/commitdiff
helper/bits: add BIT_ULL and GENMASK macros
authorAntonio Borneo <borneo.antonio@gmail.com>
Thu, 24 Feb 2022 10:30:56 +0000 (11:30 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sat, 26 Mar 2022 13:35:55 +0000 (13:35 +0000)
To support 64 bits bit and masks
Replace local definition of BIT in rtos/chromium-ec

Change-Id: I1f268d6e8790f1b07bf798680b797878ce81064b
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/6857
Tested-by: jenkins
src/helper/bits.h
src/rtos/chromium-ec.c

index 00d3c027073cf68eb6c6aa122d58380ceb04ca01..6151b33401a495d843283ccdb77619c8e39df961 100644 (file)
 #include <helper/types.h>
 
 #define BIT(nr)                     (1UL << (nr))
+#define BIT_ULL(nr)                 (1ULL << (nr))
 #define BITS_PER_BYTE               8
 #define BITS_PER_LONG               (BITS_PER_BYTE * sizeof(long))
+#define BITS_PER_LONG_LONG          (BITS_PER_BYTE * sizeof(long long))
+#define GENMASK(h, l)               (((~0UL) - (1UL << (l)) + 1) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
+#define GENMASK_ULL(h, l)           (((~0ULL) - (1ULL << (l)) + 1) & (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h))))
 #define BITS_TO_LONGS(nr)           DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))
 #define BIT_MASK(nr)                (1UL << ((nr) % BITS_PER_LONG))
 #define BIT_WORD(nr)                ((nr) / BITS_PER_LONG)
index 2f1a0cf3cc6420ad820a12e8d98700ec77f4c8d0..95a228d0d368f3ed443e53fe5de5cddc1ac29160 100644 (file)
@@ -11,6 +11,7 @@
 #include "config.h"
 #endif
 
+#include <helper/bits.h>
 #include <rtos/rtos.h>
 #include <target/target.h>
 #include <target/target_type.h>
@@ -20,7 +21,6 @@
 #define CROS_EC_MAX_TASKS 32
 #define CROS_EC_MAX_NAME 200
 #define CROS_EC_IDLE_STRING "<< idle >>"
-#define BIT(x) (1 << (x))
 
 struct chromium_ec_params {
        const char *target_name;