2 meinOS - A unix-like x86 microkernel operating system
3 Copyright (C) 2008 Janosch Gräf <janosch.graef@gmx.net>
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #include <sys/types.h>
28 // Default signal handler
29 #define SIG_IGN _signal_dfl_ignore
68 #define SIGRTMIN(x) (34+(x))
69 #define SIGRTMAX(x) (64-(x))
84 char sigs
[SIG_MAXNUM
/sizeof(char)];
88 void (*sa_handler
)(int sig
);
91 void (*sa_sigaction
)(int sig
,siginfo_t
*siginfo
,void *context
);
94 typedef int sig_atomic_t;
96 void (*signal(int sig
,void (*handler
)(int)))(int);
97 void (*sysv_signal(int sig
,void (*handler
)(int)))(int);
98 void _signal_dfl_ignore(int sig
);
99 void _signal_handler(int sig
);
100 int sigaddset(sigset_t
*set
,int sig
);
101 int sigdelset(sigset_t
*set
,int sig
);
102 int sigprocmask(int how
,const sigset_t
*set
,sigset_t
*oset
);
104 static __inline__
int kill(pid_t pid
,int sig
) {
105 return syscall_call(SYSCALL_SIG_SEND
,2,pid
,sig
);
108 static __inline__
int raise(int sig
) {
109 _signal_handler(sig
);
110 //kill(getpid(),sig);
114 static __inline__
int sigemptyset(sigset_t
*set
) {
115 memset(set
->sigs
,0,SIG_MAXNUM
/sizeof(char));
119 static __inline__
int sigfillset(sigset_t
*set
) {
120 memset(set
->sigs
,1,SIG_MAXNUM
/sizeof(char));