blob: 6b0484c1802f71f9ba481aeff81a243e3c1fcf58 [file] [log] [blame] [edit]
// 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;
}
}