BTRFS: Implement some space relevant helpers.
[haiku.git] / src / system / libroot / posix / signal / sigset_accessors.cpp
blob6b630b778d3ae4a1998774498d6c666b952abb50
1 /*
2 * Copyright 2002-2011, Haiku, Inc. All rights reserved.
3 * Distributed under the terms of the MIT license.
5 * Author:
6 * Daniel Reinhold, danielre@users.sf.net
7 * Ingo Weinhold, ingo_weinhold@gmx.de
8 */
11 #include <signal.h>
13 #include <errno.h>
15 #include <signal_defs.h>
16 #include <syscalls.h>
18 #include <symbol_versioning.h>
20 #include <errno_private.h>
21 #include <signal_private.h>
24 // #pragma - backward compatibility implementations
27 int
28 __sigemptyset_beos(sigset_t_beos* set)
30 *set = (sigset_t_beos)0;
31 return 0;
35 int
36 __sigfillset_beos(sigset_t_beos* set)
38 *set = ~(sigset_t_beos)0;
39 return 0;
43 int
44 __sigismember_beos(const sigset_t_beos* set, int signal)
46 if (signal <= 0 || signal > MAX_SIGNAL_NUMBER_BEOS) {
47 __set_errno(EINVAL);
48 return -1;
51 return (*set & SIGNAL_TO_MASK(signal)) != 0 ? 1 : 0;
55 int
56 __sigaddset_beos(sigset_t_beos* set, int signal)
58 if (signal <= 0 || signal > MAX_SIGNAL_NUMBER_BEOS) {
59 __set_errno(EINVAL);
60 return -1;
63 *set |= SIGNAL_TO_MASK(signal);
64 return 0;
68 int
69 __sigdelset_beos(sigset_t_beos* set, int signal)
71 if (signal <= 0 || signal > MAX_SIGNAL_NUMBER_BEOS) {
72 __set_errno(EINVAL);
73 return -1;
76 *set &= ~SIGNAL_TO_MASK(signal);
77 return 0;
81 // #pragma - current implementations
84 int
85 __sigemptyset(sigset_t* set)
87 *set = (sigset_t)0;
88 return 0;
92 int
93 __sigfillset(sigset_t* set)
95 *set = ~(sigset_t)0;
96 return 0;
101 __sigismember(const sigset_t* set, int signal)
103 if (signal <= 0 || signal > MAX_SIGNAL_NUMBER) {
104 __set_errno(EINVAL);
105 return -1;
108 return (*set & SIGNAL_TO_MASK(signal)) != 0 ? 1 : 0;
113 __sigaddset(sigset_t* set, int signal)
115 if (signal <= 0 || signal > MAX_SIGNAL_NUMBER) {
116 __set_errno(EINVAL);
117 return -1;
120 *set |= SIGNAL_TO_MASK(signal);
121 return 0;
126 __sigdelset(sigset_t* set, int signal)
128 if (signal <= 0 || signal > MAX_SIGNAL_NUMBER) {
129 __set_errno(EINVAL);
130 return -1;
133 *set &= ~SIGNAL_TO_MASK(signal);
134 return 0;
138 // #pragma - versioned symbols
141 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigemptyset_beos", "sigemptyset@",
142 "BASE");
143 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigfillset_beos", "sigfillset@",
144 "BASE");
145 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigismember_beos", "sigismember@",
146 "BASE");
147 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigaddset_beos", "sigaddset@", "BASE");
148 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigdelset_beos", "sigdelset@", "BASE");
150 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigemptyset", "sigemptyset@@",
151 "1_ALPHA4");
152 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigfillset", "sigfillset@@",
153 "1_ALPHA4");
154 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigismember", "sigismember@@",
155 "1_ALPHA4");
156 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigaddset", "sigaddset@@", "1_ALPHA4");
157 DEFINE_LIBROOT_KERNEL_SYMBOL_VERSION("__sigdelset", "sigdelset@@", "1_ALPHA4");