1+ /*
2+ * Copyright (C) 2008 The Android Open Source Project
3+ * All rights reserved.
4+ *
5+ * Redistribution and use in source and binary forms, with or without
6+ * modification, are permitted provided that the following conditions
7+ * are met:
8+ * * Redistributions of source code must retain the above copyright
9+ * notice, this list of conditions and the following disclaimer.
10+ * * Redistributions in binary form must reproduce the above copyright
11+ * notice, this list of conditions and the following disclaimer in
12+ * the documentation and/or other materials provided with the
13+ * distribution.
14+ *
15+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26+ * SUCH DAMAGE.
27+ */
28+
29+ #include <pthread.h>
30+ #include <errno.h>
31+
32+ #define MUTEXATTR_PROTOCOL_MASK 0x0020
33+ #define MUTEXATTR_PROTOCOL_SHIFT 5
34+
35+ /**
36+ This code is a copy of pthread_mutexattr_setprotocol from:
37+ https://android.googlesource.com/platform/bionic/+/master/libc/bionic/pthread_mutex.cpp
38+ ...as such the license of this is as above.
39+
40+ This is coped here so that Android 8.1 can be supported.
41+ */
42+ int pthread_mutexattr_setprotocol_squeezelite (pthread_mutexattr_t * attr , int protocol ) {
43+ if (protocol != PTHREAD_PRIO_NONE && protocol != PTHREAD_PRIO_INHERIT ) {
44+ return EINVAL ;
45+ }
46+ * attr = (* attr & ~MUTEXATTR_PROTOCOL_MASK ) | (protocol << MUTEXATTR_PROTOCOL_SHIFT );
47+ return 0 ;
48+ }
0 commit comments