From nobody Fri Jun 17 19:40:55 2022 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id CB13F85D37E; Fri, 17 Jun 2022 19:40:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4LPqCW6GfXz3hls; Fri, 17 Jun 2022 19:40:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1655494856; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uYNIHwH9LDjLkBiPPYNmO7VazUFSiWjDRdh8kX/OIMA=; b=ZoLxOoILSJPA5tgrliQ3pUhU5sOH4iWoovQa69lH4KSuNvExiwa0CcVBsZ85z7cRVNHND1 GGo7q2NlgiWwvyZ3AhxdR8l7dcgFuAJW1MJh3pOGrsUSZbXuakimYGiQeun9PxvY0Fbndw FeKlSHoVIhpgWowoweLwEj8ZV1z0rZTELGejlHcj60XDu2I5Qwq2dcNUNBO4iyX/Fc4f2o y4gLQ9sqA5JBuzMTSJxj59DR+yGr/QoejMcY5ZGpR2SDFVJHDAwsUZzZUa3fnTCXOO5YRr /ud5gZpjB7WYl+C2ei0XQJkh6ONCEBLJEJjxJdyWXRW0giQD1BFMk8yT3YuQwg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 32FA8259D6; Fri, 17 Jun 2022 19:40:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 25HJeti4027347; Fri, 17 Jun 2022 19:40:55 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 25HJetRC027346; Fri, 17 Jun 2022 19:40:55 GMT (envelope-from git) Date: Fri, 17 Jun 2022 19:40:55 GMT Message-Id: <202206171940.25HJetRC027346@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dmitry Chagin Subject: git: 3cf95e49cbe4 - stable/13 - Retire sv_transtrap List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: dchagin X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 3cf95e49cbe42e86ac2c2269eb53622035b5aba6 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1655494856; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uYNIHwH9LDjLkBiPPYNmO7VazUFSiWjDRdh8kX/OIMA=; b=KSpqgFIXy4yjqpb96G/Q7pJfKgk05/TevAhSZK2zfMEgOZS4eo52B0CCayiSjXuPCTBf99 L94vPwlFRGbqf0sKp6bOhwuXYfzki5rIs8SNMV+1/UOe/DXsyiH8jszhUmD1AK6c6ot+Hn 8TxSTdmcHbzKcsK/DTwZNOZ4JZqmwhtbPEEVInnIMvWuSa7Qlhh9vodvnTvdl6QISGLx10 kiK/omVoCXyDDk1AdjdU9CdgGI2eAQsuhdCiJwEe0GZjCNR3eHbRITgMB1FbUQUyrZU+iy rM3lI9/rUc6lB2ObRQBUHEbmOULjiG3cD0KWdczQAAyzZrbQSR5kMJ6z7vdMig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1655494856; a=rsa-sha256; cv=none; b=Z4cJXSi/0djURedi9vUjNNtT8JWOh/8/N9otGrYrljlq/Mc8ZKebqSoc9CJF1qt+SAWNeT MTz2kzy5V9nvced4nnesMgXwmaaIREjaveutSoN19MZdomrFUsqGA00K5T3AQTJLPphh8h +JCVXnyrpTz3vmuBRbG2ehgh8B2z9TkbRRy17/SysI3XS6D/eIKsJFYQpMKoArlB4FVQpX yuUMQrTLbtctEm5L25I0cajReetDbD+PQsBI2oRgfPYwlrfy/HZE9KCCcKkE2BSnA8wuHL C14zK5dXQICIph2upT9S5Xwbf5b4iR8sgs6poCIfYrC4qgoH6R6+0VLUPDY+tQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by dchagin: URL: https://cgit.FreeBSD.org/src/commit/?id=3cf95e49cbe42e86ac2c2269eb53622035b5aba6 commit 3cf95e49cbe42e86ac2c2269eb53622035b5aba6 Author: Dmitry Chagin AuthorDate: 2022-05-20 11:54:03 +0000 Commit: Dmitry Chagin CommitDate: 2022-06-17 19:35:27 +0000 Retire sv_transtrap Call translate_traps directly from sendsig(). MFC after: 2 weeks (cherry picked from commit eca368ecb6e00e9db7e1c090e98a29439d255895) --- sys/amd64/amd64/elf_machdep.c | 2 -- sys/amd64/amd64/trap.c | 4 ---- sys/amd64/linux/linux_sysvec.c | 3 +-- sys/amd64/linux32/linux32_sysvec.c | 5 ++--- sys/arm/arm/elf_machdep.c | 1 - sys/arm64/arm64/elf32_machdep.c | 1 - sys/arm64/arm64/elf_machdep.c | 1 - sys/arm64/linux/linux_sysvec.c | 1 - sys/compat/ia32/ia32_sysvec.c | 1 - sys/i386/i386/elf_machdep.c | 1 - sys/i386/i386/trap.c | 4 ---- sys/i386/linux/linux_sysvec.c | 6 ++---- sys/kern/imgact_aout.c | 2 -- sys/kern/init_main.c | 1 - sys/powerpc/powerpc/elf32_machdep.c | 1 - sys/powerpc/powerpc/elf64_machdep.c | 2 -- sys/powerpc/powerpc/trap.c | 2 -- sys/riscv/riscv/elf_machdep.c | 1 - sys/sys/sysent.h | 2 -- 19 files changed, 5 insertions(+), 36 deletions(-) diff --git a/sys/amd64/amd64/elf_machdep.c b/sys/amd64/amd64/elf_machdep.c index f31ec0cca519..d58a32f587d4 100644 --- a/sys/amd64/amd64/elf_machdep.c +++ b/sys/amd64/amd64/elf_machdep.c @@ -59,7 +59,6 @@ extern char _binary_elf_vdso_so_1_size; struct sysentvec elf64_freebsd_sysvec_la48 = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = _binary_elf_vdso_so_1_start, @@ -103,7 +102,6 @@ struct sysentvec elf64_freebsd_sysvec_la48 = { struct sysentvec elf64_freebsd_sysvec_la57 = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = _binary_elf_vdso_so_1_start, diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c index 55649687ce50..271191b785d2 100644 --- a/sys/amd64/amd64/trap.c +++ b/sys/amd64/amd64/trap.c @@ -618,10 +618,6 @@ trap(struct trapframe *frame) return; } - /* Translate fault for emulators (e.g. Linux) */ - if (*p->p_sysent->sv_transtrap != NULL) - signo = (*p->p_sysent->sv_transtrap)(signo, type); - ksiginfo_init_trap(&ksi); ksi.ksi_signo = signo; ksi.ksi_code = ucode; diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c index 0545f334b1b5..af3688b9ab74 100644 --- a/sys/amd64/linux/linux_sysvec.c +++ b/sys/amd64/linux/linux_sysvec.c @@ -626,7 +626,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) td = curthread; p = td->td_proc; PROC_LOCK_ASSERT(p, MA_OWNED); - sig = ksi->ksi_signo; + sig = linux_translate_traps(ksi->ksi_signo, ksi->ksi_trapno); psp = p->p_sigacts; code = ksi->ksi_code; mtx_assert(&psp->ps_mtx, MA_OWNED); @@ -762,7 +762,6 @@ linux_vsyscall(struct thread *td) struct sysentvec elf_linux_sysvec = { .sv_size = LINUX_SYS_MAXSYSCALL, .sv_table = linux_sysent, - .sv_transtrap = linux_translate_traps, .sv_fixup = linux_fixup_elf, .sv_sendsig = linux_rt_sendsig, .sv_sigcode = &_binary_linux_vdso_so_o_start, diff --git a/sys/amd64/linux32/linux32_sysvec.c b/sys/amd64/linux32/linux32_sysvec.c index 10b61742a627..715be5c36647 100644 --- a/sys/amd64/linux32/linux32_sysvec.c +++ b/sys/amd64/linux32/linux32_sysvec.c @@ -294,7 +294,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) int sig; int code; - sig = ksi->ksi_signo; + sig = linux_translate_traps(ksi->ksi_signo, ksi->ksi_trapno); code = ksi->ksi_code; PROC_LOCK_ASSERT(p, MA_OWNED); psp = p->p_sigacts; @@ -404,7 +404,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) int oonstack; int sig, code; - sig = ksi->ksi_signo; + sig = linux_translate_traps(ksi->ksi_signo, ksi->ksi_trapno); code = ksi->ksi_code; PROC_LOCK_ASSERT(p, MA_OWNED); psp = p->p_sigacts; @@ -923,7 +923,6 @@ linux32_fixlimit(struct rlimit *rl, int which) struct sysentvec elf_linux_sysvec = { .sv_size = LINUX32_SYS_MAXSYSCALL, .sv_table = linux32_sysent, - .sv_transtrap = linux_translate_traps, .sv_fixup = linux_fixup_elf, .sv_sendsig = linux_sendsig, .sv_sigcode = &_binary_linux32_vdso_so_o_start, diff --git a/sys/arm/arm/elf_machdep.c b/sys/arm/arm/elf_machdep.c index 735c00766f9b..724b3437458e 100644 --- a/sys/arm/arm/elf_machdep.c +++ b/sys/arm/arm/elf_machdep.c @@ -66,7 +66,6 @@ u_long elf_hwcap2; struct sysentvec elf32_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = sigcode, diff --git a/sys/arm64/arm64/elf32_machdep.c b/sys/arm64/arm64/elf32_machdep.c index 4123c45e1e36..ef3013087a24 100644 --- a/sys/arm64/arm64/elf32_machdep.c +++ b/sys/arm64/arm64/elf32_machdep.c @@ -84,7 +84,6 @@ u_long __read_frequently elf32_hwcap2; static struct sysentvec elf32_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = freebsd32_sysent, - .sv_transtrap = NULL, .sv_fixup = elf32_freebsd_fixup, .sv_sendsig = freebsd32_sendsig, .sv_sigcode = aarch32_sigcode, diff --git a/sys/arm64/arm64/elf_machdep.c b/sys/arm64/arm64/elf_machdep.c index d98512b71e6c..5971b13cfa15 100644 --- a/sys/arm64/arm64/elf_machdep.c +++ b/sys/arm64/arm64/elf_machdep.c @@ -62,7 +62,6 @@ u_long __read_frequently elf_hwcap2; static struct sysentvec elf64_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = sigcode, diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c index 57282946d5d7..85b5ce992ff1 100644 --- a/sys/arm64/linux/linux_sysvec.c +++ b/sys/arm64/linux/linux_sysvec.c @@ -542,7 +542,6 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) struct sysentvec elf_linux_sysvec = { .sv_size = LINUX_SYS_MAXSYSCALL, .sv_table = linux_sysent, - .sv_transtrap = NULL, .sv_fixup = linux_elf_fixup, .sv_sendsig = linux_rt_sendsig, .sv_sigcode = &_binary_linux_vdso_so_o_start, diff --git a/sys/compat/ia32/ia32_sysvec.c b/sys/compat/ia32/ia32_sysvec.c index 6619301569b1..d3ad8c212721 100644 --- a/sys/compat/ia32/ia32_sysvec.c +++ b/sys/compat/ia32/ia32_sysvec.c @@ -106,7 +106,6 @@ SYSCTL_ULONG(_compat_ia32, OID_AUTO, maxvmem, CTLFLAG_RWTUN, &ia32_maxvmem, 0, " struct sysentvec ia32_freebsd_sysvec = { .sv_size = FREEBSD32_SYS_MAXSYSCALL, .sv_table = freebsd32_sysent, - .sv_transtrap = NULL, .sv_fixup = elf32_freebsd_fixup, .sv_sendsig = ia32_sendsig, .sv_sigcode = _binary_elf_vdso32_so_1_start, diff --git a/sys/i386/i386/elf_machdep.c b/sys/i386/i386/elf_machdep.c index 874b4249024e..4ef57be5afc3 100644 --- a/sys/i386/i386/elf_machdep.c +++ b/sys/i386/i386/elf_machdep.c @@ -55,7 +55,6 @@ __FBSDID("$FreeBSD$"); struct sysentvec elf32_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = sigcode, diff --git a/sys/i386/i386/trap.c b/sys/i386/i386/trap.c index 6f70a88b62b8..7e1c409c806f 100644 --- a/sys/i386/i386/trap.c +++ b/sys/i386/i386/trap.c @@ -685,10 +685,6 @@ kernel_trctrap: return; } - /* Translate fault for emulators (e.g. Linux) */ - if (*p->p_sysent->sv_transtrap != NULL) - signo = (*p->p_sysent->sv_transtrap)(signo, type); - ksiginfo_init_trap(&ksi); ksi.ksi_signo = signo; ksi.ksi_code = ucode; diff --git a/sys/i386/linux/linux_sysvec.c b/sys/i386/linux/linux_sysvec.c index a7e7dc831030..3c0dc4ac62cf 100644 --- a/sys/i386/linux/linux_sysvec.c +++ b/sys/i386/linux/linux_sysvec.c @@ -402,7 +402,7 @@ linux_rt_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) int sig, code; int oonstack; - sig = ksi->ksi_signo; + sig = linux_translate_traps(ksi->ksi_signo, ksi->ksi_trapno); code = ksi->ksi_code; PROC_LOCK_ASSERT(p, MA_OWNED); psp = p->p_sigacts; @@ -509,7 +509,7 @@ linux_sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) PROC_LOCK_ASSERT(p, MA_OWNED); psp = p->p_sigacts; - sig = ksi->ksi_signo; + sig = linux_translate_traps(ksi->ksi_signo, ksi->ksi_trapno); mtx_assert(&psp->ps_mtx, MA_OWNED); if (SIGISMEMBER(psp->ps_siginfo, sig)) { /* Signal handler installed with SA_SIGINFO. */ @@ -826,7 +826,6 @@ linux_exec_setregs(struct thread *td, struct image_params *imgp, struct sysentvec linux_sysvec = { .sv_size = LINUX_SYS_MAXSYSCALL, .sv_table = linux_sysent, - .sv_transtrap = linux_translate_traps, .sv_fixup = linux_fixup, .sv_sendsig = linux_sendsig, .sv_sigcode = &_binary_linux_vdso_so_o_start, @@ -864,7 +863,6 @@ INIT_SYSENTVEC(aout_sysvec, &linux_sysvec); struct sysentvec elf_linux_sysvec = { .sv_size = LINUX_SYS_MAXSYSCALL, .sv_table = linux_sysent, - .sv_transtrap = linux_translate_traps, .sv_fixup = linux_fixup_elf, .sv_sendsig = linux_sendsig, .sv_sigcode = &_binary_linux_vdso_so_o_start, diff --git a/sys/kern/imgact_aout.c b/sys/kern/imgact_aout.c index 1818e5665caf..ceb305e33756 100644 --- a/sys/kern/imgact_aout.c +++ b/sys/kern/imgact_aout.c @@ -76,7 +76,6 @@ static int aout_fixup(uintptr_t *stack_base, struct image_params *imgp); struct sysentvec aout_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = aout_fixup, .sv_sendsig = sendsig, .sv_sigcode = sigcode, @@ -127,7 +126,6 @@ static int aout_szsigcode; struct sysentvec aout_sysvec = { .sv_size = FREEBSD32_SYS_MAXSYSCALL, .sv_table = freebsd32_sysent, - .sv_transtrap = NULL, .sv_fixup = aout_fixup, .sv_sendsig = ia32_sendsig, .sv_sigcode = _binary_elf_vdso32_so_1_start, diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index aaa4f65f0000..c8cb0f5613ee 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -411,7 +411,6 @@ null_set_fork_retval(struct thread *td __unused) struct sysentvec null_sysvec = { .sv_size = 0, .sv_table = NULL, - .sv_transtrap = NULL, .sv_fixup = NULL, .sv_sendsig = NULL, .sv_sigcode = NULL, diff --git a/sys/powerpc/powerpc/elf32_machdep.c b/sys/powerpc/powerpc/elf32_machdep.c index fd88900292ac..2efe9a5fdca8 100644 --- a/sys/powerpc/powerpc/elf32_machdep.c +++ b/sys/powerpc/powerpc/elf32_machdep.c @@ -90,7 +90,6 @@ struct sysentvec elf32_freebsd_sysvec = { #else .sv_table = sysent, #endif - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_copyout_auxargs = __elfN(powerpc_copyout_auxargs), .sv_sendsig = sendsig, diff --git a/sys/powerpc/powerpc/elf64_machdep.c b/sys/powerpc/powerpc/elf64_machdep.c index 5c2e26d064b5..93b66461308d 100644 --- a/sys/powerpc/powerpc/elf64_machdep.c +++ b/sys/powerpc/powerpc/elf64_machdep.c @@ -64,7 +64,6 @@ static void exec_setregs_funcdesc(struct thread *td, struct image_params *imgp, struct sysentvec elf64_freebsd_sysvec_v1 = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = sigcode64, @@ -108,7 +107,6 @@ struct sysentvec elf64_freebsd_sysvec_v1 = { struct sysentvec elf64_freebsd_sysvec_v2 = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = sigcode64, /* Fixed up in ppc64_init_sysvecs(). */ diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c index 3a1bdf7cde07..be13d1008c7e 100644 --- a/sys/powerpc/powerpc/trap.c +++ b/sys/powerpc/powerpc/trap.c @@ -495,8 +495,6 @@ trap(struct trapframe *frame) } if (sig != 0) { - if (p->p_sysent->sv_transtrap != NULL) - sig = (p->p_sysent->sv_transtrap)(sig, type); ksiginfo_init_trap(&ksi); ksi.ksi_signo = sig; ksi.ksi_code = (int) ucode; /* XXX, not POSIX */ diff --git a/sys/riscv/riscv/elf_machdep.c b/sys/riscv/riscv/elf_machdep.c index 0ed8b762ef7e..68c7afb4d09f 100644 --- a/sys/riscv/riscv/elf_machdep.c +++ b/sys/riscv/riscv/elf_machdep.c @@ -66,7 +66,6 @@ u_long elf_hwcap; static struct sysentvec elf64_freebsd_sysvec = { .sv_size = SYS_MAXSYSCALL, .sv_table = sysent, - .sv_transtrap = NULL, .sv_fixup = __elfN(freebsd_fixup), .sv_sendsig = sendsig, .sv_sigcode = sigcode, diff --git a/sys/sys/sysent.h b/sys/sys/sysent.h index 045fa382ca25..d8483760c7db 100644 --- a/sys/sys/sysent.h +++ b/sys/sys/sysent.h @@ -103,8 +103,6 @@ struct note_info_list; struct sysentvec { int sv_size; /* number of entries */ struct sysent *sv_table; /* pointer to sysent */ - int (*sv_transtrap)(int, int); - /* translate trap-to-signal mapping */ int (*sv_fixup)(uintptr_t *, struct image_params *); /* stack fixup function */ void (*sv_sendsig)(void (*)(int), struct ksiginfo *, struct __sigset *);