summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/synch.h
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/synch.h')
-rw-r--r--nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/synch.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/synch.h b/nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/synch.h
new file mode 100644
index 0000000000..7c8aba9b21
--- /dev/null
+++ b/nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/synch.h
@@ -0,0 +1,88 @@
+/* Copyright (C) 2008 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
+
+ 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, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#ifndef _SYS_SYNCH_H
+#define _SYS_SYNCH_H
+
+#define __need_synch_bits
+#include <bits/synch.h>
+
+/* general *_type values */
+#define USYNC_THREAD 0x00
+#define USYNC_PROCESS 0x01
+
+/* mutex_type values */
+#define LOCK_NORMAL USYNC_THREAD
+#define LOCK_SHARED USYNC_PROCESS
+#define LOCK_ERRORCHECK 0x02
+#define LOCK_RECURSIVE 0x04
+#define LOCK_PRIO_INHERIT 0x10
+#define LOCK_PRIO_PROTECT 0x20
+#define LOCK_ROBUST 0x40
+
+/* deprecated */
+#define USYNC_PROCESS_ROBUST 0x08
+
+/* mutex_flag values */
+#define LOCK_OWNERDEAD 0x01
+#define LOCK_NOTRECOVERABLE 0x02
+#define LOCK_INITED 0x04
+#define LOCK_UNMAPPED 0x08
+
+#define MUTEX_MAGIC 0x4d58 /* "MX" */
+#define SEMA_MAGIC 0x534d /* "SM" */
+#define COND_MAGIC 0x4356 /* "CV" */
+#define RWL_MAGIC 0x5257 /* "RW" */
+
+/* mutex initializers */
+#define DEFAULTMUTEX \
+ {{0, 0, 0, {USYNC_THREAD}, MUTEX_MAGIC}, \
+ {{{0, 0, 0, 0, 0, 0, 0, 0}}}, 0}
+#define SHAREDMUTEX \
+ {{0, 0, 0, {USYNC_PROCESS}, MUTEX_MAGIC}, \
+ {{{0, 0, 0, 0, 0, 0, 0, 0}}}, 0}
+#define RECURSIVEMUTEX \
+ {{0, 0, 0, {USYNC_THREAD|LOCK_RECURSIVE}, MUTEX_MAGIC}, \
+ {{{0, 0, 0, 0, 0, 0, 0, 0}}}, 0}
+#define ERRORCHECKMUTEX \
+ {{0, 0, 0, {USYNC_THREAD|LOCK_ERRORCHECK}, MUTEX_MAGIC}, \
+ {{{0, 0, 0, 0, 0, 0, 0, 0}}}, 0}
+#define RECURSIVE_ERRORCHECKMUTEX \
+ {{0, 0, 0, {USYNC_THREAD|LOCK_RECURSIVE|LOCK_ERRORCHECK}, \
+ MUTEX_MAGIC}, {{{0, 0, 0, 0, 0, 0, 0, 0}}}, 0}
+
+/* condition variable initializers */
+#define DEFAULTCV \
+ {{{0, 0, 0, 0}, USYNC_THREAD, COND_MAGIC}, 0}
+#define SHAREDCV \
+ {{{0, 0, 0, 0}, USYNC_PROCESS, COND_MAGIC}, 0}
+
+/* semaphore initializers */
+#define DEFAULTSEMA \
+ {0, USYNC_THREAD, SEMA_MAGIC, {0, 0, 0}, {0, 0}}
+#define SHAREDSEMA \
+ {0, USYNC_PROCESS, SEMA_MAGIC, {0, 0, 0}, {0, 0}}
+
+/* reader/writer lock initializers */
+#define DEFAULTRWLOCK \
+ {0, USYNC_THREAD, RWL_MAGIC, DEFAULTMUTEX, DEFAULTCV, DEFAULTCV}
+#define SHAREDRWLOCK \
+ {0, USYNC_PROCESS, RWL_MAGIC, SHAREDMUTEX, SHAREDCV, SHAREDCV}
+
+#endif /* _SYS_SYNCH_H */