| // Copyright 2022 The Fuchsia Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include <errno.h> | |
| #include <pthread.h> | |
| extern "C" { | |
| int pthread_condattr_getpshared(const pthread_condattr_t* attr, int* pshared) { | |
| *pshared = PTHREAD_PROCESS_PRIVATE; | |
| return 0; | |
| } | |
| int pthread_condattr_setpshared(pthread_condattr_t* attr, int pshared) { | |
| if (pshared == PTHREAD_PROCESS_PRIVATE) { | |
| return 0; | |
| } | |
| if (pshared == PTHREAD_PROCESS_SHARED) { | |
| return ENOTSUP; | |
| } | |
| return EINVAL; | |
| } | |
| int pthread_mutexattr_getpshared(const pthread_mutexattr_t* attr, int* pshared) { | |
| *pshared = PTHREAD_PROCESS_PRIVATE; | |
| return 0; | |
| } | |
| int pthread_mutexattr_setpshared(pthread_mutexattr_t* attr, int pshared) { | |
| if (pshared == PTHREAD_PROCESS_PRIVATE) { | |
| return 0; | |
| } | |
| if (pshared == PTHREAD_PROCESS_SHARED) { | |
| return ENOTSUP; | |
| } | |
| return EINVAL; | |
| } | |
| int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t* attr, int* pshared) { | |
| *pshared = PTHREAD_PROCESS_PRIVATE; | |
| return 0; | |
| } | |
| int pthread_rwlockattr_setpshared(pthread_rwlockattr_t* attr, int pshared) { | |
| if (pshared == PTHREAD_PROCESS_PRIVATE) { | |
| return 0; | |
| } | |
| if (pshared == PTHREAD_PROCESS_SHARED) { | |
| return ENOTSUP; | |
| } | |
| return EINVAL; | |
| } | |
| int pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void)) { | |
| // As fork is not available on Fuchsia, all callbacks can be ignored. | |
| return 0; | |
| } | |
| } |