1c236b41eSSiva Chandra Reddy //===--- Common definitions useful for mutex implementations ----*- C++ -*-===// 2c236b41eSSiva Chandra Reddy // 3c236b41eSSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4c236b41eSSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 5c236b41eSSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6c236b41eSSiva Chandra Reddy // 7c236b41eSSiva Chandra Reddy //===----------------------------------------------------------------------===// 8c236b41eSSiva Chandra Reddy 9270547f3SGuillaume Chatelet #ifndef LLVM_LIBC_SRC___SUPPORT_THREADS_MUTEX_COMMON_H 10270547f3SGuillaume Chatelet #define LLVM_LIBC_SRC___SUPPORT_THREADS_MUTEX_COMMON_H 11c236b41eSSiva Chandra Reddy 12*5ff3ff33SPetr Hosek #include "src/__support/macros/config.h" 13*5ff3ff33SPetr Hosek 14*5ff3ff33SPetr Hosek namespace LIBC_NAMESPACE_DECL { 15c236b41eSSiva Chandra Reddy 16c236b41eSSiva Chandra Reddy enum class MutexError : int { 17c236b41eSSiva Chandra Reddy NONE, 18c236b41eSSiva Chandra Reddy BUSY, 19c236b41eSSiva Chandra Reddy TIMEOUT, 20c236b41eSSiva Chandra Reddy UNLOCK_WITHOUT_LOCK, 21c236b41eSSiva Chandra Reddy BAD_LOCK_STATE, 22c236b41eSSiva Chandra Reddy }; 23c236b41eSSiva Chandra Reddy 24*5ff3ff33SPetr Hosek } // namespace LIBC_NAMESPACE_DECL 25c236b41eSSiva Chandra Reddy 26270547f3SGuillaume Chatelet #endif // LLVM_LIBC_SRC___SUPPORT_THREADS_MUTEX_COMMON_H 27