Deleted Added
full compact
28c28
< * $FreeBSD: head/sys/i386/linux/linux_sysvec.c 69073 2000-11-23 03:21:58Z marcel $
---
> * $FreeBSD: head/sys/i386/linux/linux_sysvec.c 69081 2000-11-23 08:55:30Z marcel $
205d204
< struct sigacts *psp = p->p_sigacts;
219c218
< SIGISMEMBER(psp->ps_sigonstack, sig)) {
---
> SIGISMEMBER(p->p_sigacts->ps_sigonstack, sig)) {
260d258
<
262a261
>
266a266
>
270c270,280
< frame.sf_sc.uc_mcontext.sc_mask = mask->__bits[0];
---
> frame.sf_sc.uc_flags = 0; /* XXX ??? */
> frame.sf_sc.uc_link = NULL; /* XXX ??? */
>
> frame.sf_sc.uc_stack.ss_sp = p->p_sigstk.ss_sp;
> frame.sf_sc.uc_stack.ss_flags =
> bsd_to_linux_sigaltstack(p->p_sigstk.ss_flags);
> frame.sf_sc.uc_stack.ss_size = p->p_sigstk.ss_size;
>
> bsd_to_linux_sigset(mask, &frame.sf_sc.uc_sigmask);
>
> frame.sf_sc.uc_mcontext.sc_mask = frame.sf_sc.uc_sigmask.__bits[0];
290,298d299
< /*
< * Build the remainder of the ucontext struct to be used by sigreturn.
< */
< frame.sf_sc.uc_flags = 0; /* XXX ??? */
< frame.sf_sc.uc_link = NULL; /* XXX ??? */
< frame.sf_sc.uc_stack.ss_sp = p->p_sigstk.ss_sp;
< frame.sf_sc.uc_stack.ss_flags =
< bsd_to_linux_sigaltstack(p->p_sigstk.ss_flags);
< frame.sf_sc.uc_stack.ss_size = p->p_sigstk.ss_size;
304d304
< bsd_to_linux_sigset(mask, &frame.sf_sc.uc_sigmask);
348c348
< struct sigacts *psp = p->p_sigacts;
---
> linux_sigset_t lmask;
350a351,356
> if (SIGISMEMBER(p->p_sigacts->ps_siginfo, sig)) {
> /* Signal handler installed with SA_SIGINFO. */
> linux_rt_sendsig(catcher, sig, mask, code);
> return;
> }
>
359,364d364
< if (SIGISMEMBER(p->p_sigacts->ps_siginfo, sig)) {
< /* Signal handler installed with SA_SIGINFO. */
< linux_rt_sendsig(catcher, sig, mask, code);
< return;
< }
<
369c369
< SIGISMEMBER(psp->ps_sigonstack, sig)) {
---
> SIGISMEMBER(p->p_sigacts->ps_sigonstack, sig)) {
406a407,408
> bsd_to_linux_sigset(mask, &lmask);
>
410c412
< frame.sf_sc.sc_mask = mask->__bits[0];
---
> frame.sf_sc.sc_mask = lmask.__bits[0];
429c431,433
< bzero(&frame.fpstate, sizeof(struct linux_fpstate));
---
>
> bzero(&frame.sf_fpstate, sizeof(struct linux_fpstate));
>
431,432c435,436
< frame.extramask[i] = mask->__bits[i+1];
<
---
> frame.sf_extramask[i] = lmask.__bits[i+1];
>
471c475
< struct linux_sigcontext context;
---
> struct linux_sigframe frame;
473,474c477
< u_int extramask[LINUX_NSIG_WORDS-1];
< u_int *emp;
---
> linux_sigset_t lmask;
484c487
< * The trampoline code hands us the context.
---
> * The trampoline code hands us the sigframe.
488c491
< if (copyin((caddr_t)args->scp, &context, sizeof(context)) != 0)
---
> if (copyin((caddr_t)args->sfp, &frame, sizeof(frame)) != 0)
495c498
< eflags = context.sc_eflags;
---
> eflags = frame.sf_sc.sc_eflags;
516c519
< if (!CS_SECURE(context.sc_cs)) {
---
> if (!CS_SECURE(frame.sf_sc.sc_cs)) {
522,528c525,528
< emp = (u_int *)((caddr_t)args->scp + sizeof(context) +
< sizeof(struct linux_fpstate));
< if (copyin((caddr_t)emp, extramask, sizeof(extramask)) == 0)
< for (i = 0; i < (LINUX_NSIG_WORDS-1); i++)
< p->p_sigmask.__bits[i+1] = extramask[i];
<
< SIGSETOLD(p->p_sigmask, context.sc_mask);
---
> lmask.__bits[0] = frame.sf_sc.sc_mask;
> for (i = 0; i < (LINUX_NSIG_WORDS-1); i++)
> lmask.__bits[i+1] = frame.sf_extramask[i];
> linux_to_bsd_sigset(&lmask, &p->p_sigmask);
535,546c535,546
< regs->tf_fs = context.sc_fs;
< regs->tf_es = context.sc_es;
< regs->tf_ds = context.sc_ds;
< regs->tf_edi = context.sc_edi;
< regs->tf_esi = context.sc_esi;
< regs->tf_ebp = context.sc_ebp;
< regs->tf_ebx = context.sc_ebx;
< regs->tf_edx = context.sc_edx;
< regs->tf_ecx = context.sc_ecx;
< regs->tf_eax = context.sc_eax;
< regs->tf_eip = context.sc_eip;
< regs->tf_cs = context.sc_cs;
---
> regs->tf_fs = frame.sf_sc.sc_fs;
> regs->tf_es = frame.sf_sc.sc_es;
> regs->tf_ds = frame.sf_sc.sc_ds;
> regs->tf_edi = frame.sf_sc.sc_edi;
> regs->tf_esi = frame.sf_sc.sc_esi;
> regs->tf_ebp = frame.sf_sc.sc_ebp;
> regs->tf_ebx = frame.sf_sc.sc_ebx;
> regs->tf_edx = frame.sf_sc.sc_edx;
> regs->tf_ecx = frame.sf_sc.sc_ecx;
> regs->tf_eax = frame.sf_sc.sc_eax;
> regs->tf_eip = frame.sf_sc.sc_eip;
> regs->tf_cs = frame.sf_sc.sc_cs;
548,549c548,549
< regs->tf_esp = context.sc_esp_at_signal;
< regs->tf_ss = context.sc_ss;
---
> regs->tf_esp = frame.sf_sc.sc_esp_at_signal;
> regs->tf_ss = frame.sf_sc.sc_ss;
585c585
< * The trampoline code hands us the u_context.
---
> * The trampoline code hands us the ucontext.
629c629
< * Restore signal context->
---
> * Restore signal context