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 --- |