summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-11-28 08:49:07 +0000
committerkib <kib@FreeBSD.org>2015-11-28 08:49:07 +0000
commitee461b4bba5e3e988e78aa3c79e194777f044200 (patch)
treeb9a0c532d3abaab0e408bd8275054ce51741524f
parent01e10e7a39e449f2c4353393f43ddd262095bf01 (diff)
downloadFreeBSD-src-ee461b4bba5e3e988e78aa3c79e194777f044200.zip
FreeBSD-src-ee461b4bba5e3e988e78aa3c79e194777f044200.tar.gz
Remove sv_prepsyscall, sv_sigsize and sv_sigtbl members of the struct
sysent. sv_prepsyscall is unused. sv_sigsize and sv_sigtbl translate signal number from the FreeBSD namespace into the ABI domain. It is only utilized on i386 for iBCS2 binaries. The issue with this approach is that signals for iBCS2 were delivered with the FreeBSD signal frame layout, which does not follow iBCS2. The same note is true for any other potential user if sv_sigtbl. In other words, if ABI needs signal number translation, it really needs custom sv_sendsig method instead. Sponsored by: The FreeBSD Foundation
-rw-r--r--sys/amd64/amd64/elf_machdep.c3
-rw-r--r--sys/amd64/linux/linux_sysvec.c3
-rw-r--r--sys/amd64/linux32/linux32_sysvec.c3
-rw-r--r--sys/arm/arm/elf_machdep.c3
-rw-r--r--sys/arm64/arm64/elf_machdep.c3
-rw-r--r--sys/compat/ia32/ia32_sysvec.c3
-rw-r--r--sys/compat/svr4/svr4_sysvec.c3
-rw-r--r--sys/i386/i386/elf_machdep.c3
-rw-r--r--sys/i386/i386/machdep.c4
-rw-r--r--sys/i386/linux/linux_sysvec.c6
-rw-r--r--sys/kern/imgact_aout.c6
-rw-r--r--sys/kern/init_main.c3
-rw-r--r--sys/mips/mips/elf_machdep.c6
-rw-r--r--sys/mips/mips/freebsd32_machdep.c3
-rw-r--r--sys/powerpc/powerpc/elf32_machdep.c3
-rw-r--r--sys/powerpc/powerpc/elf64_machdep.c6
-rw-r--r--sys/sparc64/sparc64/elf_machdep.c3
-rw-r--r--sys/sys/sysent.h4
18 files changed, 0 insertions, 68 deletions
diff --git a/sys/amd64/amd64/elf_machdep.c b/sys/amd64/amd64/elf_machdep.c
index 86efdd9..c6520f3 100644
--- a/sys/amd64/amd64/elf_machdep.c
+++ b/sys/amd64/amd64/elf_machdep.c
@@ -51,8 +51,6 @@ struct sysentvec elf64_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -60,7 +58,6 @@ struct sysentvec elf64_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode,
.sv_szsigcode = &szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF64",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c
index 37c1b69..96428b8 100644
--- a/sys/amd64/linux/linux_sysvec.c
+++ b/sys/amd64/linux/linux_sysvec.c
@@ -750,8 +750,6 @@ struct sysentvec elf_linux_sysvec = {
.sv_size = LINUX_SYS_MAXSYSCALL,
.sv_table = linux_sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = ELAST + 1,
.sv_errtbl = bsd_to_linux_errno,
.sv_transtrap = translate_traps,
@@ -759,7 +757,6 @@ struct sysentvec elf_linux_sysvec = {
.sv_sendsig = linux_rt_sendsig,
.sv_sigcode = &_binary_linux_locore_o_start,
.sv_szsigcode = &linux_szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "Linux ELF64",
.sv_coredump = elf64_coredump,
.sv_imgact_try = exec_linux_imgact_try,
diff --git a/sys/amd64/linux32/linux32_sysvec.c b/sys/amd64/linux32/linux32_sysvec.c
index 6ed0369..693f003 100644
--- a/sys/amd64/linux32/linux32_sysvec.c
+++ b/sys/amd64/linux32/linux32_sysvec.c
@@ -1011,8 +1011,6 @@ struct sysentvec elf_linux_sysvec = {
.sv_size = LINUX32_SYS_MAXSYSCALL,
.sv_table = linux32_sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = ELAST + 1,
.sv_errtbl = bsd_to_linux_errno,
.sv_transtrap = translate_traps,
@@ -1020,7 +1018,6 @@ struct sysentvec elf_linux_sysvec = {
.sv_sendsig = linux_sendsig,
.sv_sigcode = &_binary_linux32_locore_o_start,
.sv_szsigcode = &linux_szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "Linux ELF32",
.sv_coredump = elf32_coredump,
.sv_imgact_try = exec_linux_imgact_try,
diff --git a/sys/arm/arm/elf_machdep.c b/sys/arm/arm/elf_machdep.c
index 34761ff..1081bdf 100644
--- a/sys/arm/arm/elf_machdep.c
+++ b/sys/arm/arm/elf_machdep.c
@@ -52,8 +52,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -61,7 +59,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode,
.sv_szsigcode = &szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF32",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/arm64/arm64/elf_machdep.c b/sys/arm64/arm64/elf_machdep.c
index b783a26..2506de3 100644
--- a/sys/arm64/arm64/elf_machdep.c
+++ b/sys/arm64/arm64/elf_machdep.c
@@ -59,8 +59,6 @@ static struct sysentvec elf64_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -68,7 +66,6 @@ static struct sysentvec elf64_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode,
.sv_szsigcode = &szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF64",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/compat/ia32/ia32_sysvec.c b/sys/compat/ia32/ia32_sysvec.c
index c580e5d..1a6dd72 100644
--- a/sys/compat/ia32/ia32_sysvec.c
+++ b/sys/compat/ia32/ia32_sysvec.c
@@ -99,8 +99,6 @@ struct sysentvec ia32_freebsd_sysvec = {
.sv_size = FREEBSD32_SYS_MAXSYSCALL,
.sv_table = freebsd32_sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -108,7 +106,6 @@ struct sysentvec ia32_freebsd_sysvec = {
.sv_sendsig = ia32_sendsig,
.sv_sigcode = ia32_sigcode,
.sv_szsigcode = &sz_ia32_sigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF32",
.sv_coredump = elf32_coredump,
.sv_imgact_try = NULL,
diff --git a/sys/compat/svr4/svr4_sysvec.c b/sys/compat/svr4/svr4_sysvec.c
index 0c82f0b..f37d8cb 100644
--- a/sys/compat/svr4/svr4_sysvec.c
+++ b/sys/compat/svr4/svr4_sysvec.c
@@ -167,8 +167,6 @@ struct sysentvec svr4_sysvec = {
.sv_size = SVR4_SYS_MAXSYSCALL,
.sv_table = svr4_sysent,
.sv_mask = 0xff,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = ELAST, /* ELAST */
.sv_errtbl = bsd_to_svr4_errno,
.sv_transtrap = NULL,
@@ -176,7 +174,6 @@ struct sysentvec svr4_sysvec = {
.sv_sendsig = svr4_sendsig,
.sv_sigcode = svr4_sigcode,
.sv_szsigcode = &svr4_szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "SVR4",
.sv_coredump = elf32_coredump,
.sv_imgact_try = NULL,
diff --git a/sys/i386/i386/elf_machdep.c b/sys/i386/i386/elf_machdep.c
index 376dd0b..b11cb03 100644
--- a/sys/i386/i386/elf_machdep.c
+++ b/sys/i386/i386/elf_machdep.c
@@ -57,8 +57,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -66,7 +64,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode,
.sv_szsigcode = &szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF32",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c
index b219d9d..894244c 100644
--- a/sys/i386/i386/machdep.c
+++ b/sys/i386/i386/machdep.c
@@ -691,10 +691,6 @@ sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask)
/* Align to 16 bytes. */
sfp = (struct sigframe *)((unsigned int)sp & ~0xF);
- /* Translate the signal if appropriate. */
- if (p->p_sysent->sv_sigtbl && sig <= p->p_sysent->sv_sigsize)
- sig = p->p_sysent->sv_sigtbl[_SIG_IDX(sig)];
-
/* Build the argument list for the signal handler. */
sf.sf_signum = sig;
sf.sf_ucontext = (register_t)&sfp->sf_uc;
diff --git a/sys/i386/linux/linux_sysvec.c b/sys/i386/linux/linux_sysvec.c
index 7c980ce..2a8b7d2 100644
--- a/sys/i386/linux/linux_sysvec.c
+++ b/sys/i386/linux/linux_sysvec.c
@@ -956,8 +956,6 @@ struct sysentvec linux_sysvec = {
.sv_size = LINUX_SYS_MAXSYSCALL,
.sv_table = linux_sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = ELAST + 1,
.sv_errtbl = bsd_to_linux_errno,
.sv_transtrap = translate_traps,
@@ -965,7 +963,6 @@ struct sysentvec linux_sysvec = {
.sv_sendsig = linux_sendsig,
.sv_sigcode = &_binary_linux_locore_o_start,
.sv_szsigcode = &linux_szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "Linux a.out",
.sv_coredump = NULL,
.sv_imgact_try = exec_linux_imgact_try,
@@ -995,8 +992,6 @@ struct sysentvec elf_linux_sysvec = {
.sv_size = LINUX_SYS_MAXSYSCALL,
.sv_table = linux_sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = ELAST + 1,
.sv_errtbl = bsd_to_linux_errno,
.sv_transtrap = translate_traps,
@@ -1004,7 +999,6 @@ struct sysentvec elf_linux_sysvec = {
.sv_sendsig = linux_sendsig,
.sv_sigcode = &_binary_linux_locore_o_start,
.sv_szsigcode = &linux_szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "Linux ELF",
.sv_coredump = elf32_coredump,
.sv_imgact_try = exec_linux_imgact_try,
diff --git a/sys/kern/imgact_aout.c b/sys/kern/imgact_aout.c
index 3165ac0..a7db17e 100644
--- a/sys/kern/imgact_aout.c
+++ b/sys/kern/imgact_aout.c
@@ -70,8 +70,6 @@ struct sysentvec aout_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -79,7 +77,6 @@ struct sysentvec aout_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode,
.sv_szsigcode = &szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD a.out",
.sv_coredump = NULL,
.sv_imgact_try = NULL,
@@ -116,8 +113,6 @@ struct sysentvec aout_sysvec = {
.sv_size = FREEBSD32_SYS_MAXSYSCALL,
.sv_table = freebsd32_sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -125,7 +120,6 @@ struct sysentvec aout_sysvec = {
.sv_sendsig = ia32_sendsig,
.sv_sigcode = ia32_sigcode,
.sv_szsigcode = &sz_ia32_sigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD a.out",
.sv_coredump = NULL,
.sv_imgact_try = NULL,
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c
index d24827d..f0cd3c8 100644
--- a/sys/kern/init_main.c
+++ b/sys/kern/init_main.c
@@ -387,8 +387,6 @@ struct sysentvec null_sysvec = {
.sv_size = 0,
.sv_table = NULL,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -396,7 +394,6 @@ struct sysentvec null_sysvec = {
.sv_sendsig = NULL,
.sv_sigcode = NULL,
.sv_szsigcode = NULL,
- .sv_prepsyscall = NULL,
.sv_name = "null",
.sv_coredump = NULL,
.sv_imgact_try = NULL,
diff --git a/sys/mips/mips/elf_machdep.c b/sys/mips/mips/elf_machdep.c
index 626b5f8..2b50015 100644
--- a/sys/mips/mips/elf_machdep.c
+++ b/sys/mips/mips/elf_machdep.c
@@ -54,8 +54,6 @@ struct sysentvec elf64_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -63,7 +61,6 @@ struct sysentvec elf64_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode,
.sv_szsigcode = &szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF64",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
@@ -111,8 +108,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -120,7 +115,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode,
.sv_szsigcode = &szsigcode,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF32",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/mips/mips/freebsd32_machdep.c b/sys/mips/mips/freebsd32_machdep.c
index 5303420..7726ecd 100644
--- a/sys/mips/mips/freebsd32_machdep.c
+++ b/sys/mips/mips/freebsd32_machdep.c
@@ -77,8 +77,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = freebsd32_sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -86,7 +84,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_sendsig = freebsd32_sendsig,
.sv_sigcode = sigcode32,
.sv_szsigcode = &szsigcode32,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF32",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/powerpc/powerpc/elf32_machdep.c b/sys/powerpc/powerpc/elf32_machdep.c
index bfe23ac..027105d 100644
--- a/sys/powerpc/powerpc/elf32_machdep.c
+++ b/sys/powerpc/powerpc/elf32_machdep.c
@@ -68,8 +68,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_table = sysent,
#endif
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -77,7 +75,6 @@ struct sysentvec elf32_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode32,
.sv_szsigcode = &szsigcode32,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF32",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/powerpc/powerpc/elf64_machdep.c b/sys/powerpc/powerpc/elf64_machdep.c
index 71a9a70..261660a 100644
--- a/sys/powerpc/powerpc/elf64_machdep.c
+++ b/sys/powerpc/powerpc/elf64_machdep.c
@@ -56,8 +56,6 @@ struct sysentvec elf64_freebsd_sysvec_v1 = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -65,7 +63,6 @@ struct sysentvec elf64_freebsd_sysvec_v1 = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode64,
.sv_szsigcode = &szsigcode64,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF64",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
@@ -95,8 +92,6 @@ struct sysentvec elf64_freebsd_sysvec_v2 = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -104,7 +99,6 @@ struct sysentvec elf64_freebsd_sysvec_v2 = {
.sv_sendsig = sendsig,
.sv_sigcode = sigcode64_elfv2,
.sv_szsigcode = &szsigcode64_elfv2,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF64 V2",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/sparc64/sparc64/elf_machdep.c b/sys/sparc64/sparc64/elf_machdep.c
index 0dab76d..eea21a2 100644
--- a/sys/sparc64/sparc64/elf_machdep.c
+++ b/sys/sparc64/sparc64/elf_machdep.c
@@ -58,8 +58,6 @@ static struct sysentvec elf64_freebsd_sysvec = {
.sv_size = SYS_MAXSYSCALL,
.sv_table = sysent,
.sv_mask = 0,
- .sv_sigsize = 0,
- .sv_sigtbl = NULL,
.sv_errsize = 0,
.sv_errtbl = NULL,
.sv_transtrap = NULL,
@@ -67,7 +65,6 @@ static struct sysentvec elf64_freebsd_sysvec = {
.sv_sendsig = sendsig,
.sv_sigcode = NULL,
.sv_szsigcode = NULL,
- .sv_prepsyscall = NULL,
.sv_name = "FreeBSD ELF64",
.sv_coredump = __elfN(coredump),
.sv_imgact_try = NULL,
diff --git a/sys/sys/sysent.h b/sys/sys/sysent.h
index 7e25ee4..fe78fb4 100644
--- a/sys/sys/sysent.h
+++ b/sys/sys/sysent.h
@@ -92,8 +92,6 @@ struct sysentvec {
int sv_size; /* number of entries */
struct sysent *sv_table; /* pointer to sysent */
u_int sv_mask; /* optional mask to index */
- int sv_sigsize; /* size of signal translation table */
- int *sv_sigtbl; /* signal translation table */
int sv_errsize; /* size of errno translation table */
int *sv_errtbl; /* errno translation table */
int (*sv_transtrap)(int, int);
@@ -104,8 +102,6 @@ struct sysentvec {
/* send signal */
char *sv_sigcode; /* start of sigtramp code */
int *sv_szsigcode; /* size of sigtramp code */
- void (*sv_prepsyscall)(struct trapframe *, int *, u_int *,
- caddr_t *);
char *sv_name; /* name of binary type */
int (*sv_coredump)(struct thread *, struct vnode *, off_t, int);
/* function to dump core, or NULL */
OpenPOWER on IntegriCloud