summaryrefslogtreecommitdiff
path: root/tools/include/uapi/linux/const.h
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-11-05 10:11:53 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-11-05 10:11:53 +0100
commit09fbb82f9413641cbb6b3fc4970ed4ff6d2a2c2a (patch)
tree886c21539f1df24a14175997dc045715cd1d25e2 /tools/include/uapi/linux/const.h
parent6b8ab7241562caadba350dcd7a4b2719abd835ee (diff)
parent59b723cd2adbac2a34fc8e12c74ae26ae45bf230 (diff)
Merge 6.12-rc6 into driver-core-next
We need the driver-core fix/revert in here as well to build on top of. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/include/uapi/linux/const.h')
-rw-r--r--tools/include/uapi/linux/const.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/tools/include/uapi/linux/const.h b/tools/include/uapi/linux/const.h
index a429381e7ca5..e16be0d37746 100644
--- a/tools/include/uapi/linux/const.h
+++ b/tools/include/uapi/linux/const.h
@@ -28,6 +28,23 @@
#define _BITUL(x) (_UL(1) << (x))
#define _BITULL(x) (_ULL(1) << (x))
+#if !defined(__ASSEMBLY__)
+/*
+ * Missing asm support
+ *
+ * __BIT128() would not work in the asm code, as it shifts an
+ * 'unsigned __init128' data type as direct representation of
+ * 128 bit constants is not supported in the gcc compiler, as
+ * they get silently truncated.
+ *
+ * TODO: Please revisit this implementation when gcc compiler
+ * starts representing 128 bit constants directly like long
+ * and unsigned long etc. Subsequently drop the comment for
+ * GENMASK_U128() which would then start supporting asm code.
+ */
+#define _BIT128(x) ((unsigned __int128)(1) << (x))
+#endif
+
#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (__typeof__(x))(a) - 1)
#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))