xref: /llvm-project/libc/src/__support/threads/mutex_common.h (revision 5ff3ff33ff930e4ec49da7910612d8a41eb068cb)
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