summaryrefslogtreecommitdiffstats
path: root/newlib/libc
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc')
-rw-r--r--newlib/libc/include/pthread.h11
-rw-r--r--newlib/libc/include/sys/types.h14
2 files changed, 25 insertions, 0 deletions
diff --git a/newlib/libc/include/pthread.h b/newlib/libc/include/pthread.h
index 1dc20bcc8..fccc14d70 100644
--- a/newlib/libc/include/pthread.h
+++ b/newlib/libc/include/pthread.h
@@ -57,6 +57,17 @@ int _EXFUN(pthread_mutexattr_getpshared,
int _EXFUN(pthread_mutexattr_setpshared,
(pthread_mutexattr_t *__attr, int __pshared));
+#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
+
+/* Single UNIX Specification 2 Mutex Attributes types */
+
+int _EXFUN(pthread_mutexattr_gettype,
+ (_CONST pthread_mutexattr_t *__attr, int *__kind));
+int _EXFUN(pthread_mutexattr_settype,
+ (pthread_mutexattr_t *__attr, int __kind));
+
+#endif
+
/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */
int _EXFUN(pthread_mutex_init,
diff --git a/newlib/libc/include/sys/types.h b/newlib/libc/include/sys/types.h
index 1813bdda8..3f1893c20 100644
--- a/newlib/libc/include/sys/types.h
+++ b/newlib/libc/include/sys/types.h
@@ -323,6 +323,17 @@ typedef struct {
#define PTHREAD_PRIO_PROTECT 2
#endif
+#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
+
+/* Values for mutex type */
+
+#define PTHREAD_MUTEX_NORMAL 0
+#define PTHREAD_MUTEX_RECURSIVE 1
+#define PTHREAD_MUTEX_ERRORCHECK 2
+#define PTHREAD_MUTEX_DEFAULT 3
+
+#endif
+
typedef __uint32_t pthread_mutex_t; /* identify a mutex */
typedef struct {
@@ -334,6 +345,9 @@ typedef struct {
int prio_ceiling;
int protocol;
#endif
+#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
+ int type;
+#endif
int recursive;
} pthread_mutexattr_t;