Module Name:    src
Committed By:   thorpej
Date:           Tue Nov  3 16:05:51 UTC 2020

Modified Files:
        src/sys/sys [thorpej-futex]: futex.h

Log Message:
Add definitions for FUTEX_NETBSD_RW_WAIT and FUTEX_NETBSD_RW_HANDOFF.
(Forgot to commit this file previously.)


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.4.2.1 src/sys/sys/futex.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/sys/futex.h
diff -u src/sys/sys/futex.h:1.4 src/sys/sys/futex.h:1.4.2.1
--- src/sys/sys/futex.h:1.4	Tue May  5 15:25:18 2020
+++ src/sys/sys/futex.h	Tue Nov  3 16:05:51 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: futex.h,v 1.4 2020/05/05 15:25:18 riastradh Exp $	*/
+/*	$NetBSD: futex.h,v 1.4.2.1 2020/11/03 16:05:51 thorpej Exp $	*/
 
 /*-
  * Copyright (c) 2018, 2019 The NetBSD Foundation, Inc.
@@ -86,6 +86,10 @@
 #define FUTEX_WAIT_REQUEUE_PI		 11
 #define FUTEX_CMP_REQUEUE_PI		 12
 
+/* These futex operations are NetBSD extensions. */
+#define FUTEX_NETBSD_RW_WAIT		 64
+#define FUTEX_NETBSD_RW_HANDOFF		 65
+
 #define FUTEX_PRIVATE_FLAG		__BIT(7)
 #define FUTEX_CLOCK_REALTIME		__BIT(8)
 
@@ -133,6 +137,18 @@
 #define FUTEX_BITSET_MATCH_ANY  ((int)__BITS(0,31))
 
 /*
+ * The FUTEX_NETBSD_RW_WAIT and FUTEX_NETBSD_RW_HANDOFF operations
+ * define specific meanings for some of the futex word bits and val3.
+ *
+ * (futex & FUTEX_TID_MASK) is the owner in the write-locked case,
+ * and the count of readers in the read-locked case.
+ */
+#define FUTEX_RW_WRITE_LOCKED	FUTEX_SYNCOBJ_1
+#define FUTEX_RW_WRITE_WANTED	FUTEX_SYNCOBJ_0
+#define FUTEX_RW_READER		0
+#define FUTEX_RW_WRITER		1
+
+/*
  * The robust futex ABI consists of an array of 3 longwords, the address
  * of which is registered with the kernel on a per-thread basis:
  *

Reply via email to