Hi Sergej,
On 20/06/17 21:33, Sergej Proskurin wrote:
We extend the BIT macro to using values of unsigned long long as to
enable setting bits of 64-bit registers on AArch32. In addition, this
commit adds a define holding the register width of 64 bit double-word
registers. This define simplifies using the associated constants in the
following commits.
Signed-off-by: Sergej Proskurin <prosku...@sec.in.tum.de>
---
Cc: Stefano Stabellini <sstabell...@kernel.org>
Cc: Julien Grall <julien.gr...@arm.com>
---
v4: We reused the previous commit with the msg "arm/mem_access: Add
defines holding the width of 32/64bit regs" from v3, as we can reuse
the already existing define BITS_PER_WORD.
---
xen/include/asm-arm/bitops.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/xen/include/asm-arm/bitops.h b/xen/include/asm-arm/bitops.h
index bda889841b..c3486d497c 100644
--- a/xen/include/asm-arm/bitops.h
+++ b/xen/include/asm-arm/bitops.h
@@ -21,7 +21,8 @@
#define __clear_bit(n,p) clear_bit(n,p)
#define BITS_PER_WORD 32
-#define BIT(nr) (1UL << (nr))
+#define BITS_PER_DOUBLE_WORD 64
+#define BIT(nr) (1ULL << (nr))
This macro is part of a set (BIT, BIT_MASK, BIT_WORD) that work on
unsigned long. Now you are suggesting to upgrade BIT to support unsigned
long long. This will confuse more than one user and break this set.
I would much prefer if you introduce BIT_ULL as Linux does. At the same
time BITS_PER_DOUBLE_WORD should be renamed BITS_PER_LONG_LONG.
#define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_WORD))
#define BIT_WORD(nr) ((nr) / BITS_PER_WORD)
#define BITS_PER_BYTE 8
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel