| //===-- POSIX header pthread.h --------------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_LIBC_PTHREAD_H |
| #define LLVM_LIBC_PTHREAD_H |
| |
| #include "__llvm-libc-common.h" |
| |
| // TODO: move to a pthreads-macros.h file: |
| // https://github.com/llvm/llvm-project/issues/88997 |
| |
| #define PTHREAD_STACK_MIN (1 << 14) // 16KB |
| |
| #define PTHREAD_MUTEX_INITIALIZER {0} |
| #define PTHREAD_RWLOCK_INITIALIZER {} |
| #define PTHREAD_ONCE_INIT {0} |
| |
| enum { |
| PTHREAD_CREATE_JOINABLE = 0x0, |
| PTHREAD_CREATE_DETACHED = 0x1, |
| |
| PTHREAD_MUTEX_NORMAL = 0x0, |
| PTHREAD_MUTEX_ERRORCHECK = 0x1, |
| PTHREAD_MUTEX_RECURSIVE = 0x2, |
| PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL, |
| |
| PTHREAD_PROCESS_PRIVATE = 0x0, |
| PTHREAD_PROCESS_SHARED = 0x1, |
| |
| PTHREAD_MUTEX_STALLED = 0x0, |
| PTHREAD_MUTEX_ROBUST = 0x1, |
| }; |
| |
| #define PTHREAD_PROCESS_PRIVATE 0 |
| #define PTHREAD_PROCESS_SHARED 1 |
| |
| #define PTHREAD_RWLOCK_PREFER_READER_NP 0 |
| #define PTHREAD_RWLOCK_PREFER_WRITER_NP 1 |
| #define PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP 2 |
| |
| |
| %%public_api() |
| |
| #endif // LLVM_LIBC_PTHREAD_H |