aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-03-04 15:35:46 -0500
committerAndrew Kelley <andrew@ziglang.org>2020-03-04 15:35:46 -0500
commit3178807657f0d75646c9de11ba4b23ee556e70da (patch)
tree0e8f668368e68a3fe7b510ae00aaa5d48dc379b2 /lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h
parent66e6f5586e314b6f4fac8b0ed0198f47ba80d4f3 (diff)
parent6cbd1ac51af4300ef11373d16771cf011fb6e572 (diff)
downloadzig-3178807657f0d75646c9de11ba4b23ee556e70da.tar.gz
zig-3178807657f0d75646c9de11ba4b23ee556e70da.zip
Merge remote-tracking branch 'origin/master' into llvm10
Diffstat (limited to 'lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h')
-rw-r--r--lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h b/lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h
new file mode 100644
index 0000000000..40b5c891ec
--- /dev/null
+++ b/lib/libc/include/powerpc-linux-gnu/bits/struct_mutex.h
@@ -0,0 +1,63 @@
+/* PowerPC internal mutex struct definitions.
+ Copyright (C) 2019-2020 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _THREAD_MUTEX_INTERNAL_H
+#define _THREAD_MUTEX_INTERNAL_H 1
+
+struct __pthread_mutex_s
+{
+ int __lock;
+ unsigned int __count;
+ int __owner;
+#if __WORDSIZE == 64
+ unsigned int __nusers;
+#endif
+ /* KIND must stay at this position in the structure to maintain
+ binary compatibility with static initializers. */
+ int __kind;
+#if __WORDSIZE == 64
+ short __spins;
+ short __elision;
+ __pthread_list_t __list;
+# define __PTHREAD_MUTEX_HAVE_PREV 1
+#else
+ unsigned int __nusers;
+ __extension__ union
+ {
+ struct
+ {
+ short __espins;
+ short __elision;
+# define __spins __elision_data.__espins
+# define __elision __elision_data.__elision
+ } __elision_data;
+ __pthread_slist_t __list;
+ };
+# define __PTHREAD_MUTEX_HAVE_PREV 0
+#endif
+};
+
+#if __WORDSIZE == 64
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, 0, __kind, 0, 0, { 0, 0 }
+#else
+# define __PTHREAD_MUTEX_INITIALIZER(__kind) \
+ 0, 0, 0, __kind, 0, { { 0, 0 } }
+#endif
+
+#endif \ No newline at end of file