linux32_sysvec.c (0b5d5dc3767fcf2f0198f0f9549cb23983e0ee3e) linux32_sysvec.c (ba279bcd6d75aa236bcb9ccf11aeb6f51a2f8514)
1/*-
2 * SPDX-License-Identifier: BSD-3-Clause
3 *
4 * Copyright (c) 2004 Tim J. Robbins
5 * Copyright (c) 2003 Peter Wemm
6 * Copyright (c) 2002 Doug Rabson
7 * Copyright (c) 1998-1999 Andrew Gallatin
8 * Copyright (c) 1994-1996 Søren Schmidt

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

309 fp = (struct l_rt_sigframe *)regs->tf_rsp - 1;
310 mtx_unlock(&psp->ps_mtx);
311
312 /* Build the argument list for the signal handler. */
313 sig = bsd_to_linux_signal(sig);
314
315 bzero(&frame, sizeof(frame));
316
1/*-
2 * SPDX-License-Identifier: BSD-3-Clause
3 *
4 * Copyright (c) 2004 Tim J. Robbins
5 * Copyright (c) 2003 Peter Wemm
6 * Copyright (c) 2002 Doug Rabson
7 * Copyright (c) 1998-1999 Andrew Gallatin
8 * Copyright (c) 1994-1996 Søren Schmidt

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

309 fp = (struct l_rt_sigframe *)regs->tf_rsp - 1;
310 mtx_unlock(&psp->ps_mtx);
311
312 /* Build the argument list for the signal handler. */
313 sig = bsd_to_linux_signal(sig);
314
315 bzero(&frame, sizeof(frame));
316
317 frame.sf_handler = PTROUT(catcher);
318 frame.sf_sig = sig;
319 frame.sf_siginfo = PTROUT(&fp->sf_si);
320 frame.sf_ucontext = PTROUT(&fp->sf_sc);
321
322 /* Fill in POSIX parts. */
323 siginfo_to_lsiginfo(&ksi->ksi_info, &frame.sf_si, sig);
324
325 /*

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

362 */
363 PROC_LOCK(p);
364 sigexit(td, SIGILL);
365 }
366
367 /* Build context to run handler in. */
368 regs->tf_rsp = PTROUT(fp);
369 regs->tf_rip = __kernel_rt_sigreturn;
317 frame.sf_sig = sig;
318 frame.sf_siginfo = PTROUT(&fp->sf_si);
319 frame.sf_ucontext = PTROUT(&fp->sf_sc);
320
321 /* Fill in POSIX parts. */
322 siginfo_to_lsiginfo(&ksi->ksi_info, &frame.sf_si, sig);
323
324 /*

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

361 */
362 PROC_LOCK(p);
363 sigexit(td, SIGILL);
364 }
365
366 /* Build context to run handler in. */
367 regs->tf_rsp = PTROUT(fp);
368 regs->tf_rip = __kernel_rt_sigreturn;
369 regs->tf_rdi = PTROUT(catcher);
370 regs->tf_rflags &= ~(PSL_T | PSL_D);
371 regs->tf_cs = _ucode32sel;
372 regs->tf_ss = _udatasel;
373 regs->tf_ds = _udatasel;
374 regs->tf_es = _udatasel;
375 regs->tf_fs = _ufssel;
376 regs->tf_gs = _ugssel;
377 regs->tf_flags = TF_HASSEGS;

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

426 mtx_unlock(&psp->ps_mtx);
427 PROC_UNLOCK(p);
428
429 /* Build the argument list for the signal handler. */
430 sig = bsd_to_linux_signal(sig);
431
432 bzero(&frame, sizeof(frame));
433
370 regs->tf_rflags &= ~(PSL_T | PSL_D);
371 regs->tf_cs = _ucode32sel;
372 regs->tf_ss = _udatasel;
373 regs->tf_ds = _udatasel;
374 regs->tf_es = _udatasel;
375 regs->tf_fs = _ufssel;
376 regs->tf_gs = _ugssel;
377 regs->tf_flags = TF_HASSEGS;

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

426 mtx_unlock(&psp->ps_mtx);
427 PROC_UNLOCK(p);
428
429 /* Build the argument list for the signal handler. */
430 sig = bsd_to_linux_signal(sig);
431
432 bzero(&frame, sizeof(frame));
433
434 frame.sf_handler = PTROUT(catcher);
435 frame.sf_sig = sig;
436
437 bsd_to_linux_sigset(mask, &lmask);
438
439 /* Build the signal context to be used by sigreturn. */
440 frame.sf_sc.sc_mask = lmask.__mask;
441 frame.sf_sc.sc_gs = regs->tf_gs;
442 frame.sf_sc.sc_fs = regs->tf_fs;

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

468 */
469 PROC_LOCK(p);
470 sigexit(td, SIGILL);
471 }
472
473 /* Build context to run handler in. */
474 regs->tf_rsp = PTROUT(fp);
475 regs->tf_rip = __kernel_sigreturn;
434 frame.sf_sig = sig;
435
436 bsd_to_linux_sigset(mask, &lmask);
437
438 /* Build the signal context to be used by sigreturn. */
439 frame.sf_sc.sc_mask = lmask.__mask;
440 frame.sf_sc.sc_gs = regs->tf_gs;
441 frame.sf_sc.sc_fs = regs->tf_fs;

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

467 */
468 PROC_LOCK(p);
469 sigexit(td, SIGILL);
470 }
471
472 /* Build context to run handler in. */
473 regs->tf_rsp = PTROUT(fp);
474 regs->tf_rip = __kernel_sigreturn;
475 regs->tf_rdi = PTROUT(catcher);
476 regs->tf_rflags &= ~(PSL_T | PSL_D);
477 regs->tf_cs = _ucode32sel;
478 regs->tf_ss = _udatasel;
479 regs->tf_ds = _udatasel;
480 regs->tf_es = _udatasel;
481 regs->tf_fs = _ufssel;
482 regs->tf_gs = _ugssel;
483 regs->tf_flags = TF_HASSEGS;

--- 752 unchanged lines hidden ---
476 regs->tf_rflags &= ~(PSL_T | PSL_D);
477 regs->tf_cs = _ucode32sel;
478 regs->tf_ss = _udatasel;
479 regs->tf_ds = _udatasel;
480 regs->tf_es = _udatasel;
481 regs->tf_fs = _ufssel;
482 regs->tf_gs = _ugssel;
483 regs->tf_flags = TF_HASSEGS;

--- 752 unchanged lines hidden ---