1//===-- POSIX header pthread.h --------------------------------------------===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef LLVM_LIBC_PTHREAD_H 10#define LLVM_LIBC_PTHREAD_H 11 12#include "__llvm-libc-common.h" 13 14// TODO: move to a pthreads-macros.h file: 15// https://github.com/llvm/llvm-project/issues/88997 16 17#define PTHREAD_STACK_MIN (1 << 14) // 16KB 18 19#define PTHREAD_MUTEX_INITIALIZER {0} 20#define PTHREAD_RWLOCK_INITIALIZER {} 21#define PTHREAD_ONCE_INIT {0} 22 23enum { 24 PTHREAD_CREATE_JOINABLE = 0x0, 25 PTHREAD_CREATE_DETACHED = 0x1, 26 27 PTHREAD_MUTEX_NORMAL = 0x0, 28 PTHREAD_MUTEX_ERRORCHECK = 0x1, 29 PTHREAD_MUTEX_RECURSIVE = 0x2, 30 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL, 31 32 PTHREAD_PROCESS_PRIVATE = 0x0, 33 PTHREAD_PROCESS_SHARED = 0x1, 34 35 PTHREAD_MUTEX_STALLED = 0x0, 36 PTHREAD_MUTEX_ROBUST = 0x1, 37}; 38 39#define PTHREAD_PROCESS_PRIVATE 0 40#define PTHREAD_PROCESS_SHARED 1 41 42#define PTHREAD_RWLOCK_PREFER_READER_NP 0 43#define PTHREAD_RWLOCK_PREFER_WRITER_NP 1 44#define PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP 2 45 46 47%%public_api() 48 49#endif // LLVM_LIBC_PTHREAD_H 50