summaryrefslogtreecommitdiff
path: root/include/uapi/linux/futex.h
diff options
context:
space:
mode:
authorpeterz@infradead.org <peterz@infradead.org>2023-09-21 12:45:07 +0200
committerPeter Zijlstra <peterz@infradead.org>2023-09-21 19:22:05 +0200
commitd6d08d24790e82c69a46ef78ae44fe1b1ed30775 (patch)
treef26d08ae2ae9576b64c6f1fccd7ab0e6fee78ef8 /include/uapi/linux/futex.h
parent4923954bbc4a760e0b2210e0cb5733726ac2e2e9 (diff)
futex: Extend the FUTEX2 flags
Add the definition for the missing but always intended extra sizes, and add a NUMA flag for the planned numa extention. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: André Almeida <andrealmeid@igalia.com> Link: https://lore.kernel.org/r/20230921105247.617057368@noisy.programming.kicks-ass.net
Diffstat (limited to 'include/uapi/linux/futex.h')
-rw-r--r--include/uapi/linux/futex.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/include/uapi/linux/futex.h b/include/uapi/linux/futex.h
index 21d4eff41162..d2ee625ea189 100644
--- a/include/uapi/linux/futex.h
+++ b/include/uapi/linux/futex.h
@@ -45,17 +45,32 @@
/*
* Flags for futex2 syscalls.
+ *
+ * NOTE: these are not pure flags, they can also be seen as:
+ *
+ * union {
+ * u32 flags;
+ * struct {
+ * u32 size : 2,
+ * numa : 1,
+ * : 4,
+ * private : 1;
+ * };
+ * };
*/
- /* 0x00 */
- /* 0x01 */
+#define FUTEX2_SIZE_U8 0x00
+#define FUTEX2_SIZE_U16 0x01
#define FUTEX2_SIZE_U32 0x02
- /* 0x04 */
+#define FUTEX2_SIZE_U64 0x03
+#define FUTEX2_NUMA 0x04
/* 0x08 */
/* 0x10 */
/* 0x20 */
/* 0x40 */
#define FUTEX2_PRIVATE FUTEX_PRIVATE_FLAG
+#define FUTEX2_SIZE_MASK 0x03
+
/* do not use */
#define FUTEX_32 FUTEX2_SIZE_U32 /* historical accident :-( */