* Copyright 2005-2011, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT license.
*
* Author(s):
* JΓ©rΓ΄me Duval
* Ingo Weinhold, ingo_weinhold@gmx.de
*/
#include <signal.h>
#include <errno.h>
#include <pthread.h>
#include <syscall_utils.h>
#include <symbol_versioning.h>
#include <syscalls.h>
#include <errno_private.h>
#include <signal_private.h>
int
__sigsuspend_beos(const sigset_t_beos* beosMask)
{
sigset_t mask = from_beos_sigset(*beosMask);
return __sigsuspend(&mask);
}
int
__sigsuspend(const sigset_t* mask)
{
__set_errno(_kern_sigsuspend(mask));
pthread_testcancel();
return -1;
}
DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigsuspend_beos", "sigsuspend@",
"BASE");
DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigsuspend", "sigsuspend@@",
"1_ALPHA4");