12f4f452fSSiva Chandra Reddy //===-- Linux implementation of the cnd_wait function ---------------------===// 22f4f452fSSiva Chandra Reddy // 32f4f452fSSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42f4f452fSSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information. 52f4f452fSSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 62f4f452fSSiva Chandra Reddy // 72f4f452fSSiva Chandra Reddy //===----------------------------------------------------------------------===// 82f4f452fSSiva Chandra Reddy 98379fc4aSSiva Chandra Reddy #include "CndVar.h" 108379fc4aSSiva Chandra Reddy 112f4f452fSSiva Chandra Reddy #include "src/__support/common.h" 12*a5ee8183SSiva Chandra Reddy #include "src/__support/threads/mutex.h" 13*a5ee8183SSiva Chandra Reddy #include "src/threads/cnd_wait.h" 142f4f452fSSiva Chandra Reddy 152f4f452fSSiva Chandra Reddy namespace __llvm_libc { 162f4f452fSSiva Chandra Reddy 178379fc4aSSiva Chandra Reddy LLVM_LIBC_FUNCTION(int, cnd_wait, (cnd_t * cond, mtx_t *mtx)) { 188379fc4aSSiva Chandra Reddy CndVar *cndvar = reinterpret_cast<CndVar *>(cond); 198379fc4aSSiva Chandra Reddy Mutex *mutex = reinterpret_cast<Mutex *>(mtx); 208379fc4aSSiva Chandra Reddy return cndvar->wait(mutex); 212f4f452fSSiva Chandra Reddy } 222f4f452fSSiva Chandra Reddy 232f4f452fSSiva Chandra Reddy } // namespace __llvm_libc 24