/* * Copyright 2002-2011, Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT license. * * Author: * Daniel Reinhold, danielre@users.sf.net * Ingo Weinhold, ingo_weinhold@gmx.de */ #include #include #include #include #include #include #include // #pragma - backward compatibility implementations int __sigemptyset_beos(sigset_t_beos* set) { *set = (sigset_t_beos)0; return 0; } int __sigfillset_beos(sigset_t_beos* set) { *set = ~(sigset_t_beos)0; return 0; } int __sigismember_beos(const sigset_t_beos* set, int signal) { if (signal <= 0 || signal > MAX_SIGNAL_NUMBER_BEOS) { __set_errno(EINVAL); return -1; } return (*set & SIGNAL_TO_MASK(signal)) != 0 ? 1 : 0; } int __sigaddset_beos(sigset_t_beos* set, int signal) { if (signal <= 0 || signal > MAX_SIGNAL_NUMBER_BEOS) { __set_errno(EINVAL); return -1; } *set |= SIGNAL_TO_MASK(signal); return 0; } int __sigdelset_beos(sigset_t_beos* set, int signal) { if (signal <= 0 || signal > MAX_SIGNAL_NUMBER_BEOS) { __set_errno(EINVAL); return -1; } *set &= ~SIGNAL_TO_MASK(signal); return 0; } // #pragma - current implementations int __sigemptyset(sigset_t* set) { *set = (sigset_t)0; return 0; } int __sigfillset(sigset_t* set) { *set = ~(sigset_t)0; return 0; } int __sigismember(const sigset_t* set, int signal) { if (signal <= 0 || signal > MAX_SIGNAL_NUMBER) { __set_errno(EINVAL); return -1; } return (*set & SIGNAL_TO_MASK(signal)) != 0 ? 1 : 0; } int __sigaddset(sigset_t* set, int signal) { if (signal <= 0 || signal > MAX_SIGNAL_NUMBER) { __set_errno(EINVAL); return -1; } *set |= SIGNAL_TO_MASK(signal); return 0; } int __sigdelset(sigset_t* set, int signal) { if (signal <= 0 || signal > MAX_SIGNAL_NUMBER) { __set_errno(EINVAL); return -1; } *set &= ~SIGNAL_TO_MASK(signal); return 0; } // #pragma - versioned symbols DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigemptyset_beos", "sigemptyset@", "BASE"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigfillset_beos", "sigfillset@", "BASE"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigismember_beos", "sigismember@", "BASE"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigaddset_beos", "sigaddset@", "BASE"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigdelset_beos", "sigdelset@", "BASE"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigemptyset", "sigemptyset@@", "1_ALPHA4"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigfillset", "sigfillset@@", "1_ALPHA4"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigismember", "sigismember@@", "1_ALPHA4"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigaddset", "sigaddset@@", "1_ALPHA4"); DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigdelset", "sigdelset@@", "1_ALPHA4");