Deleted Added
sdiff udiff text old ( 116173 ) new ( 133816 )
full compact
1/*-
2 * Copyright (c) 1994-1995 S�ren Schmidt
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 13 unchanged lines hidden (view full) ---

22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#include <sys/cdefs.h>
30__FBSDID("$FreeBSD: head/sys/compat/linux/linux_signal.c 116173 2003-06-10 21:29:12Z obrien $");
31
32#include <sys/param.h>
33#include <sys/systm.h>
34#include <sys/lock.h>
35#include <sys/mutex.h>
36#include <sys/proc.h>
37#include <sys/signalvar.h>
38#include <sys/syscallsubr.h>
39#include <sys/sysproto.h>
40
41#include <machine/../linux/linux.h>
42#include <machine/../linux/linux_proto.h>
43#include <compat/linux/linux_signal.h>
44#include <compat/linux/linux_util.h>
45
46void
47linux_to_bsd_sigset(l_sigset_t *lss, sigset_t *bss)
48{
49 int b, l;
50

--- 34 unchanged lines hidden (view full) ---

85 }
86}
87
88static void
89linux_to_bsd_sigaction(l_sigaction_t *lsa, struct sigaction *bsa)
90{
91
92 linux_to_bsd_sigset(&lsa->lsa_mask, &bsa->sa_mask);
93 bsa->sa_handler = lsa->lsa_handler;
94 bsa->sa_flags = 0;
95 if (lsa->lsa_flags & LINUX_SA_NOCLDSTOP)
96 bsa->sa_flags |= SA_NOCLDSTOP;
97 if (lsa->lsa_flags & LINUX_SA_NOCLDWAIT)
98 bsa->sa_flags |= SA_NOCLDWAIT;
99 if (lsa->lsa_flags & LINUX_SA_SIGINFO)
100 bsa->sa_flags |= SA_SIGINFO;
101 if (lsa->lsa_flags & LINUX_SA_ONSTACK)

--- 6 unchanged lines hidden (view full) ---

108 bsa->sa_flags |= SA_NODEFER;
109}
110
111static void
112bsd_to_linux_sigaction(struct sigaction *bsa, l_sigaction_t *lsa)
113{
114
115 bsd_to_linux_sigset(&bsa->sa_mask, &lsa->lsa_mask);
116 lsa->lsa_handler = bsa->sa_handler;
117 lsa->lsa_restorer = NULL; /* unsupported */
118 lsa->lsa_flags = 0;
119 if (bsa->sa_flags & SA_NOCLDSTOP)
120 lsa->lsa_flags |= LINUX_SA_NOCLDSTOP;
121 if (bsa->sa_flags & SA_NOCLDWAIT)
122 lsa->lsa_flags |= LINUX_SA_NOCLDWAIT;
123 if (bsa->sa_flags & SA_SIGINFO)
124 lsa->lsa_flags |= LINUX_SA_SIGINFO;
125 if (bsa->sa_flags & SA_ONSTACK)

--- 54 unchanged lines hidden (view full) ---

180 args->sig, (void *)args->handler);
181#endif
182
183 nsa.lsa_handler = args->handler;
184 nsa.lsa_flags = LINUX_SA_ONESHOT | LINUX_SA_NOMASK;
185 LINUX_SIGEMPTYSET(nsa.lsa_mask);
186
187 error = linux_do_sigaction(td, args->sig, &nsa, &osa);
188 td->td_retval[0] = (int)osa.lsa_handler;
189
190 return (error);
191}
192#endif /*!__alpha__*/
193
194int
195linux_rt_sigaction(struct thread *td, struct linux_rt_sigaction_args *args)
196{

--- 232 unchanged lines hidden ---