aboutsummaryrefslogtreecommitdiffstats
path: root/lib/libc/sys/_umtx_op.2
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2020-12-09 03:20:51 +0000
committerKyle Evans <kevans@FreeBSD.org>2020-12-09 03:20:51 +0000
commite04a83a3e1b40fc7c41b5938d2e432ba01facd74 (patch)
tree926178238fb61d03ffe574827428d69e79443d02 /lib/libc/sys/_umtx_op.2
parent369c692350f53cc5abd8e3056ad3d80c2155820e (diff)
downloadsrc-e04a83a3e1b40fc7c41b5938d2e432ba01facd74.tar.gz
src-e04a83a3e1b40fc7c41b5938d2e432ba01facd74.zip
_umtx_op(2): document recent addition of 32bit compat flags
This was part of D27325. Reviewed by: kib
Notes
Notes: svn path=/head/; revision=368479
Diffstat (limited to 'lib/libc/sys/_umtx_op.2')
-rw-r--r--lib/libc/sys/_umtx_op.275
1 files changed, 74 insertions, 1 deletions
diff --git a/lib/libc/sys/_umtx_op.2 b/lib/libc/sys/_umtx_op.2
index 547ed313e4a3..8b10e4ec7e15 100644
--- a/lib/libc/sys/_umtx_op.2
+++ b/lib/libc/sys/_umtx_op.2
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd November 16, 2020
+.Dd November 23, 2020
.Dt _UMTX_OP 2
.Os
.Sh NAME
@@ -1272,6 +1272,79 @@ See
.Sx ROBUST UMUTEXES
subsection for details.
.El
+.Pp
+The
+.Fa op
+argument may be a bitwise OR of a single command from above with one or more of
+the following flags:
+.Bl -tag -width indent
+.It Dv UMTX_OP__I386
+Request i386 ABI compatibility from the native
+.Nm
+system call.
+Specifically, this implies that:
+.Bl -hang -offset indent
+.It
+.Fa obj
+arguments that point to a word, point to a 32-bit integer.
+.It
+The
+.Dv UMTX_OP_NWAKE_PRIVATE
+.Fa obj
+argument is a pointer to an array of 32-bit pointers.
+.It
+The
+.Dv m_rb_lnk
+member of
+.Vt struct umutex
+is a 32-bit pointer.
+.It
+.Vt struct timespec
+uses a 32-bit time_t.
+.El
+.Pp
+.Dv UMTX_OP__32BIT
+has no effect if this flag is set.
+This flag is valid for all architectures, but it is ignored on i386.
+.It Dv UMTX_OP__32BIT
+Request non-i386, 32-bit ABI compatibility from the native
+.Nm
+system call.
+Specifically, this implies that:
+.Bl -hang -offset indent
+.It
+.Fa obj
+arguments that point to a word, point to a 32-bit integer.
+.It
+The
+.Dv UMTX_OP_NWAKE_PRIVATE
+.Fa obj
+argument is a pointer to an array of 32-bit pointers.
+.It
+The
+.Dv m_rb_lnk
+member of
+.Vt struct umutex
+is a 32-bit pointer.
+.It
+.Vt struct timespec
+uses a 64-bit time_t.
+.El
+.Pp
+This flag has no effect if
+.Dv UMTX_OP__I386
+is set.
+This flag is valid for all architectures.
+.El
+.Pp
+Note that if any 32-bit ABI compatibility is being requested, then care must be
+taken with robust lists.
+A single thread may not mix 32-bit compatible robust lists with native
+robust lists.
+The first
+.Dv UMTX_OP_ROBUST_LISTS
+call in a given thread determines which ABI that thread will use for robust
+lists going forward.
.Sh RETURN VALUES
If successful,
all requests, except