1*83f153ceSSiva Chandra Reddy //===-- Implementation of the pthread_mutexattr_getrobust -----------------===//
2*83f153ceSSiva Chandra Reddy //
3*83f153ceSSiva Chandra Reddy // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*83f153ceSSiva Chandra Reddy // See https://llvm.org/LICENSE.txt for license information.
5*83f153ceSSiva Chandra Reddy // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*83f153ceSSiva Chandra Reddy //
7*83f153ceSSiva Chandra Reddy //===----------------------------------------------------------------------===//
8*83f153ceSSiva Chandra Reddy 
9*83f153ceSSiva Chandra Reddy #include "pthread_mutexattr_getrobust.h"
10*83f153ceSSiva Chandra Reddy #include "pthread_mutexattr.h"
11*83f153ceSSiva Chandra Reddy 
12*83f153ceSSiva Chandra Reddy #include "src/__support/common.h"
13*83f153ceSSiva Chandra Reddy 
14*83f153ceSSiva Chandra Reddy #include <errno.h>
15*83f153ceSSiva Chandra Reddy 
16*83f153ceSSiva Chandra Reddy namespace __llvm_libc {
17*83f153ceSSiva Chandra Reddy 
18*83f153ceSSiva Chandra Reddy LLVM_LIBC_FUNCTION(int, pthread_mutexattr_getrobust,
19*83f153ceSSiva Chandra Reddy                    (const pthread_mutexattr_t *__restrict attr,
20*83f153ceSSiva Chandra Reddy                     int *__restrict robust)) {
21*83f153ceSSiva Chandra Reddy   *robust = (*attr & unsigned(PThreadMutexAttrPos::ROBUST_MASK)) >>
22*83f153ceSSiva Chandra Reddy             unsigned(PThreadMutexAttrPos::ROBUST_SHIFT);
23*83f153ceSSiva Chandra Reddy   return 0;
24*83f153ceSSiva Chandra Reddy }
25*83f153ceSSiva Chandra Reddy 
26*83f153ceSSiva Chandra Reddy } // namespace __llvm_libc
27