Module Name: src Committed By: christos Date: Fri Mar 7 01:33:44 UTC 2014
Modified Files: src/sys/compat/aoutm68k: aoutm68k_mod.c src/sys/compat/freebsd: freebsd_mod.c src/sys/compat/ibcs2: ibcs2_mod.c src/sys/compat/linux/common: linux_mod.c src/sys/compat/linux32/common: linux32_mod.c src/sys/compat/m68k4k: m68k4k_exec.c src/sys/compat/netbsd32: netbsd32_mod.c src/sys/compat/osf1: osf1_mod.c src/sys/compat/sunos: sunos_mod.c src/sys/compat/sunos32: sunos32_mod.c src/sys/compat/svr4: svr4_mod.c src/sys/compat/svr4_32: svr4_32_mod.c src/sys/compat/ultrix: ultrix_mod.c src/sys/compat/vax1k: vax1k_exec.c Log Message: c99 initializers for struct execsw To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/compat/aoutm68k/aoutm68k_mod.c cvs rdiff -u -r1.3 -r1.4 src/sys/compat/freebsd/freebsd_mod.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/ibcs2/ibcs2_mod.c cvs rdiff -u -r1.3 -r1.4 src/sys/compat/linux/common/linux_mod.c cvs rdiff -u -r1.4 -r1.5 src/sys/compat/linux32/common/linux32_mod.c cvs rdiff -u -r1.23 -r1.24 src/sys/compat/m68k4k/m68k4k_exec.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/netbsd32/netbsd32_mod.c cvs rdiff -u -r1.3 -r1.4 src/sys/compat/osf1/osf1_mod.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/sunos/sunos_mod.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/sunos32/sunos32_mod.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/svr4/svr4_mod.c cvs rdiff -u -r1.2 -r1.3 src/sys/compat/svr4_32/svr4_32_mod.c cvs rdiff -u -r1.4 -r1.5 src/sys/compat/ultrix/ultrix_mod.c cvs rdiff -u -r1.17 -r1.18 src/sys/compat/vax1k/vax1k_exec.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/aoutm68k/aoutm68k_mod.c diff -u src/sys/compat/aoutm68k/aoutm68k_mod.c:1.2 src/sys/compat/aoutm68k/aoutm68k_mod.c:1.3 --- src/sys/compat/aoutm68k/aoutm68k_mod.c:1.2 Thu Sep 19 14:50:35 2013 +++ src/sys/compat/aoutm68k/aoutm68k_mod.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: aoutm68k_mod.c,v 1.2 2013/09/19 18:50:35 christos Exp $ */ +/* $NetBSD: aoutm68k_mod.c,v 1.3 2014/03/07 01:33:43 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: aoutm68k_mod.c,v 1.2 2013/09/19 18:50:35 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: aoutm68k_mod.c,v 1.3 2014/03/07 01:33:43 christos Exp $"); #include <sys/param.h> #include <sys/module.h> @@ -42,17 +42,19 @@ extern struct emul emul_netbsd_aoutm68k; MODULE(MODULE_CLASS_EXEC, compat_aoutm68k, "exec_aout"); -static struct execsw aoutm68k_execsw[] = { - { sizeof(struct exec), - exec_aout_makecmds, - { NULL }, - &emul_netbsd_aoutm68k, - EXECSW_PRIO_FIRST, /* before exec_aout */ - 0, - copyargs, - NULL, - coredump_netbsd, - exec_setup_stack }, +static struct execsw aoutm68k_execsw = { + .es_hdrsz = sizeof(struct exec), + .es_makecmds = exec_aout_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_netbsd_aoutm68k, + .es_prio = EXECSW_PRIO_FIRST, /* before exec_aout */ + .es_arglen = 0, + .es_copyargs = copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, }; static int @@ -61,12 +63,10 @@ compat_aoutm68k_modcmd(modcmd_t cmd, voi switch (cmd) { case MODULE_CMD_INIT: - return exec_add(aoutm68k_execsw, - __arraycount(aoutm68k_execsw)); + return exec_add(&aoutm68k_execsw, 1); case MODULE_CMD_FINI: - return exec_remove(aoutm68k_execsw, - __arraycount(aoutm68k_execsw)); + return exec_remove(&aoutm68k_execsw, 1); default: return ENOTTY; Index: src/sys/compat/freebsd/freebsd_mod.c diff -u src/sys/compat/freebsd/freebsd_mod.c:1.3 src/sys/compat/freebsd/freebsd_mod.c:1.4 --- src/sys/compat/freebsd/freebsd_mod.c:1.3 Thu Sep 19 14:50:35 2013 +++ src/sys/compat/freebsd/freebsd_mod.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: freebsd_mod.c,v 1.3 2013/09/19 18:50:35 christos Exp $ */ +/* $NetBSD: freebsd_mod.c,v 1.4 2014/03/07 01:33:43 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: freebsd_mod.c,v 1.3 2013/09/19 18:50:35 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: freebsd_mod.c,v 1.4 2014/03/07 01:33:43 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -65,29 +65,37 @@ MODULE(MODULE_CLASS_EXEC, compat_freebsd static struct execsw freebsd_execsw[] = { #ifdef EXEC_ELF32 /* FreeBSD Elf32 (probe not 64-bit safe) */ - { sizeof (Elf32_Ehdr), - exec_elf32_makecmds, - { freebsd_elf32_probe }, - &emul_freebsd, - EXECSW_PRIO_ANY, - ELF32_AUXSIZE, - elf32_copyargs, - NULL, - coredump_elf32, - exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf32_Ehdr), + .es_makecmds = exec_elf32_makecmds, + .u = { + .elf_probe_func = freebsd_elf32_probe, + }, + .es_emul = &emul_freebsd, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = ELF32_AUXSIZE, + .es_copyargs = elf32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf32, + .es_setup_stack = exec_setup_stack, + }, #endif #ifdef EXEC_AOUT /* FreeBSD a.out (native word size) */ - { FREEBSD_AOUT_HDR_SIZE, - exec_freebsd_aout_makecmds, - { NULL }, - &emul_freebsd, - EXECSW_PRIO_ANY, - 0, - copyargs, - NULL, - coredump_netbsd, - exec_setup_stack }, + { + .es_hdrsz = FREEBSD_AOUT_HDR_SIZE, + .es_makecmds = exec_freebsd_aout_makecmds, + .u = { + .elf_probe_function = NULL, + }, + .es_emul = &emul_freebsd, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = 0, + .es_copyargs = copyargs, + .se_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, + }, #endif }; Index: src/sys/compat/ibcs2/ibcs2_mod.c diff -u src/sys/compat/ibcs2/ibcs2_mod.c:1.2 src/sys/compat/ibcs2/ibcs2_mod.c:1.3 --- src/sys/compat/ibcs2/ibcs2_mod.c:1.2 Thu Sep 19 14:50:35 2013 +++ src/sys/compat/ibcs2/ibcs2_mod.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ibcs2_mod.c,v 1.2 2013/09/19 18:50:35 christos Exp $ */ +/* $NetBSD: ibcs2_mod.c,v 1.3 2014/03/07 01:33:43 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ibcs2_mod.c,v 1.2 2013/09/19 18:50:35 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ibcs2_mod.c,v 1.3 2014/03/07 01:33:43 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -63,39 +63,49 @@ MODULE(MODULE_CLASS_EXEC, compat_ibcs2, static struct execsw ibcs2_execsw[] = { #ifdef EXEC_ELF32 - { sizeof (Elf32_Ehdr), - exec_elf32_makecmds, - { ibcs2_elf32_probe }, - &emul_ibcs2, - EXECSW_PRIO_ANY, - ELF32_AUXSIZE, - elf32_copyargs, - NULL, - coredump_elf32, - exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf32_Ehdr), + .es_makecmds = exec_elf32_makecmds, + .u = { + .coff_probe_func = ibcs2_elf32_probe, + }, + .es_emul = &emul_ibcs2, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = ELF32_AUXSIZE, + .es_copyargs = elf32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf32, + .es_setup_stack = exec_setup_stack, + }, #endif - { COFF_HDR_SIZE, - exec_ibcs2_coff_makecmds, - { NULL }, - &emul_ibcs2, - EXECSW_PRIO_ANY, - 0, - copyargs, - NULL, - coredump_netbsd, - ibcs2_exec_setup_stack }, - - { XOUT_HDR_SIZE, - exec_ibcs2_xout_makecmds, - { NULL }, - &emul_ibcs2, - EXECSW_PRIO_ANY, - 0, - copyargs, - NULL, - coredump_netbsd, - ibcs2_exec_setup_stack }, - + { + .es_hdrsz = COFF_HDR_SIZE, + .es_makecmds = exec_ibcs2_coff_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_ibcs2, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = 0, + .es_copyargs = copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = ibcs2_exec_setup_stack, + }, + { + .es_hdrsz = XOUT_HDR_SIZE, + .es_makecmds = exec_ibcs2_xout_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_ibcs2, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = 0, + .es_copyargs = copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = ibcs2_exec_setup_stack + }, }; static int Index: src/sys/compat/linux/common/linux_mod.c diff -u src/sys/compat/linux/common/linux_mod.c:1.3 src/sys/compat/linux/common/linux_mod.c:1.4 --- src/sys/compat/linux/common/linux_mod.c:1.3 Thu Sep 19 14:50:35 2013 +++ src/sys/compat/linux/common/linux_mod.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_mod.c,v 1.3 2013/09/19 18:50:35 christos Exp $ */ +/* $NetBSD: linux_mod.c,v 1.4 2014/03/07 01:33:43 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_mod.c,v 1.3 2013/09/19 18:50:35 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_mod.c,v 1.4 2014/03/07 01:33:43 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -69,39 +69,51 @@ MODULE(MODULE_CLASS_EXEC, compat_linux, static struct execsw linux_execsw[] = { #if defined(EXEC_ELF32) && ELFSIZE == 32 - { sizeof (Elf32_Ehdr), - exec_elf32_makecmds, - { linux_elf32_probe }, - &emul_linux, - EXECSW_PRIO_ANY, - LINUX_ELF_AUX_ARGSIZ, - linux_elf32_copyargs, - NULL, - coredump_elf32, - linux_exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf32_Ehdr), + .es_makecmds = exec_elf32_makecmds, + .u = { + .elf_probe_func = linux_elf32_probe, + }, + .es_emul = &emul_linux, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = LINUX_ELF_AUX_ARGSIZ, + .es_copyargs = linux_elf32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf32, + .es_setup_stack = linux_exec_setup_stack, + }, #elif defined(EXEC_ELF64) - { sizeof (Elf64_Ehdr), - exec_elf64_makecmds, - { linux_elf64_probe }, - &emul_linux, - EXECSW_PRIO_ANY, - LINUX_ELF_AUX_ARGSIZ, - linux_elf64_copyargs, - NULL, - coredump_elf64, - linux_exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf64_Ehdr), + .es_makecmds = exec_elf64_makecmds, + .u = { + .elf_probe_func = linux_elf64_probe, + }, + .es_emul = &emul_linux, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = LINUX_ELF_AUX_ARGSIZ, + .es_copyargs = linux_elf64_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf64, + .es_setup_stack = linux_exec_setup_stack, + }, #endif #ifdef EXEC_AOUT - { LINUX_AOUT_HDR_SIZE, - exec_linux_aout_makecmds, - { NULL }, - &emul_linux, - EXECSW_PRIO_LAST, - LINUX_AOUT_AUX_ARGSIZ, - linux_aout_copyargs, - NULL, - coredump_netbsd, - linux_exec_setup_stack }, + { + .es_hdrsz = LINUX_AOUT_HDR_SIZE, + .es_makecmds = exec_linux_aout_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_linux, + .es_prio = EXECSW_PRIO_LAST, + .es_arglen = LINUX_AOUT_AUX_ARGSIZ, + .es_copyargs = linux_aout_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = linux_exec_setup_stack, + }, #endif }; Index: src/sys/compat/linux32/common/linux32_mod.c diff -u src/sys/compat/linux32/common/linux32_mod.c:1.4 src/sys/compat/linux32/common/linux32_mod.c:1.5 --- src/sys/compat/linux32/common/linux32_mod.c:1.4 Thu Sep 19 14:50:35 2013 +++ src/sys/compat/linux32/common/linux32_mod.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_mod.c,v 1.4 2013/09/19 18:50:35 christos Exp $ */ +/* $NetBSD: linux32_mod.c,v 1.5 2014/03/07 01:33:43 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_mod.c,v 1.4 2013/09/19 18:50:35 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_mod.c,v 1.5 2014/03/07 01:33:43 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -60,16 +60,20 @@ MODULE(MODULE_CLASS_EXEC, compat_linux32 static struct execsw linux32_execsw[] = { #if defined(EXEC_ELF32) - { sizeof (Elf32_Ehdr), - exec_elf32_makecmds, - { linux32_elf32_probe }, - &emul_linux32, - EXECSW_PRIO_FIRST, - LINUX32_ELF_AUX_ARGSIZ, - linux32_elf32_copyargs, - NULL, - coredump_elf32, - linux_exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf32_Ehdr), + .es_makecmds = exec_elf32_makecmds, + .u = { + .elf_probe_func = linux32_elf32_probe, + }, + .es_emul = &emul_linux32, + .es_prio = EXECSW_PRIO_FIRST, + .es_arglen = LINUX32_ELF_AUX_ARGSIZ, + .es_copyargs = linux32_elf32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf32, + .es_setup_stack = linux_exec_setup_stack, + }, #endif }; Index: src/sys/compat/m68k4k/m68k4k_exec.c diff -u src/sys/compat/m68k4k/m68k4k_exec.c:1.23 src/sys/compat/m68k4k/m68k4k_exec.c:1.24 --- src/sys/compat/m68k4k/m68k4k_exec.c:1.23 Thu Sep 19 14:50:35 2013 +++ src/sys/compat/m68k4k/m68k4k_exec.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: m68k4k_exec.c,v 1.23 2013/09/19 18:50:35 christos Exp $ */ +/* $NetBSD: m68k4k_exec.c,v 1.24 2014/03/07 01:33:43 christos Exp $ */ /* * Copyright (c) 1993, 1994 Christopher G. Demetriou @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: m68k4k_exec.c,v 1.23 2013/09/19 18:50:35 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: m68k4k_exec.c,v 1.24 2014/03/07 01:33:43 christos Exp $"); #if !defined(__m68k__) #error YOU GOTTA BE KIDDING! @@ -67,17 +67,19 @@ __KERNEL_RCSID(0, "$NetBSD: m68k4k_exec. MODULE(MODULE_CLASS_EXEC, exec_m68k4k, DEP); -static struct execsw exec_m68k4k_execsw[] = { - { sizeof(struct exec), - exec_m68k4k_makecmds, - { NULL }, - &emul_netbsd, - EXECSW_PRIO_ANY, - 0, - copyargs, - NULL, - coredump_netbsd, - exec_setup_stack }, +static struct execsw exec_m68k4k_execsw = { + .es_hdrsz = sizeof(struct exec), + .es_makecmds = exec_m68k4k_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_netbsd, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = 0, + .es_copyargs = copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, }; static int @@ -86,12 +88,10 @@ exec_m68k4k_modcmd(modcmd_t cmd, void *a switch (cmd) { case MODULE_CMD_INIT: - return exec_add(exec_m68k4k_execsw, - __arraycount(exec_m68k4k_execsw)); + return exec_add(&exec_m68k4k_execsw, 1); case MODULE_CMD_FINI: - return exec_remove(exec_m68k4k_execsw, - __arraycount(exec_m68k4k_execsw)); + return exec_remove(&exec_m68k4k_execsw, 1); default: return ENOTTY; Index: src/sys/compat/netbsd32/netbsd32_mod.c diff -u src/sys/compat/netbsd32/netbsd32_mod.c:1.2 src/sys/compat/netbsd32/netbsd32_mod.c:1.3 --- src/sys/compat/netbsd32/netbsd32_mod.c:1.2 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/netbsd32/netbsd32_mod.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: netbsd32_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: netbsd32_mod.c,v 1.3 2014/03/07 01:33:43 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: netbsd32_mod.c,v 1.3 2014/03/07 01:33:43 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_execfmt.h" @@ -58,28 +58,36 @@ MODULE(MODULE_CLASS_EXEC, compat_netbsd3 static struct execsw netbsd32_execsw[] = { #ifdef EXEC_AOUT - { sizeof(struct netbsd32_exec), - exec_netbsd32_makecmds, - { NULL }, - &emul_netbsd32, - EXECSW_PRIO_FIRST, - 0, - netbsd32_copyargs, - NULL, - coredump_netbsd32, - exec_setup_stack }, + { + .es_hdrsz = sizeof(struct netbsd32_exec), + .es_makecmds = exec_netbsd32_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_netbsd32, + .es_prio = EXECSW_PRIO_FIRST, + .es_arglen = 0, + .es_copyargs = netbsd32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd32, + .es_setup_stack = exec_setup_stack, + }, #endif #ifdef EXEC_ELF32 - { sizeof (Elf32_Ehdr), - exec_elf32_makecmds, - { netbsd32_elf32_probe }, - &emul_netbsd32, - EXECSW_PRIO_FIRST, - ELF32_AUXSIZE, - netbsd32_elf32_copyargs, - NULL, - coredump_elf32, - exec_setup_stack }, /* XXX XXX XXX */ + { + .es_hdrsz = sizeof (Elf32_Ehdr), + .es_makecmds = exec_elf32_makecmds, + .u = { + .elf_probe_func = netbsd32_elf32_probe, + }, + .es_emul = &emul_netbsd32, + .es_prio = EXECSW_PRIO_FIRST, + .es_arglen = ELF32_AUXSIZE, + .es_copyargs = netbsd32_elf32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf32, + .es_setup_stack = exec_setup_stack, /* XXX XXX XXX */ + }, #endif }; Index: src/sys/compat/osf1/osf1_mod.c diff -u src/sys/compat/osf1/osf1_mod.c:1.3 src/sys/compat/osf1/osf1_mod.c:1.4 --- src/sys/compat/osf1/osf1_mod.c:1.3 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/osf1/osf1_mod.c Thu Mar 6 20:33:43 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: osf1_mod.c,v 1.3 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: osf1_mod.c,v 1.4 2014/03/07 01:33:43 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ #endif #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: osf1_mod.c,v 1.3 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: osf1_mod.c,v 1.4 2014/03/07 01:33:43 christos Exp $"); #include <sys/param.h> #include <sys/module.h> @@ -48,18 +48,22 @@ __KERNEL_RCSID(0, "$NetBSD: osf1_mod.c,v MODULE(MODULE_CLASS_EXEC, compat_osf1, "compat,exec_ecoff"); -static struct execsw osf1_execsw[] = { - { ECOFF_HDR_SIZE, - exec_ecoff_makecmds, - { .ecoff_probe_func = osf1_exec_ecoff_probe }, - &emul_osf1, - EXECSW_PRIO_ANY, - howmany(OSF1_MAX_AUX_ENTRIES * sizeof (struct osf1_auxv) + - 2 * (MAXPATHLEN + 1), sizeof (char *)), /* exec & loader names */ - osf1_copyargs, - cpu_exec_ecoff_setregs, - coredump_netbsd, - exec_setup_stack }, +#define OSF1_ARGLEN howmany(OSF1_MAX_AUX_ENTRIES * sizeof (struct osf1_auxv) + \ + 2 * (MAXPATHLEN + 1), sizeof (char *)) /* exec & loader names */ + +static struct execsw osf1_execsw = { + .es_hdrsz = ECOFF_HDR_SIZE, + .es_makecmds = exec_ecoff_makecmds, + .u = { + .ecoff_probe_func = osf1_exec_ecoff_probe, + }, + .es_emul = &emul_osf1, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = OSF1_ARGLEN, + .es_copyargs = osf1_copyargs, + .es_setregs = cpu_exec_ecoff_setregs, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, }; static int @@ -68,12 +72,10 @@ compat_osf1_modcmd(modcmd_t cmd, void *a switch (cmd) { case MODULE_CMD_INIT: - return exec_add(osf1_execsw, - __arraycount(osf1_execsw)); + return exec_add(&osf1_execsw, 1); case MODULE_CMD_FINI: - return exec_remove(osf1_execsw, - __arraycount(osf1_execsw)); + return exec_remove(&osf1_execsw, 1); default: return ENOTTY; Index: src/sys/compat/sunos/sunos_mod.c diff -u src/sys/compat/sunos/sunos_mod.c:1.2 src/sys/compat/sunos/sunos_mod.c:1.3 --- src/sys/compat/sunos/sunos_mod.c:1.2 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/sunos/sunos_mod.c Thu Mar 6 20:33:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: sunos_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $"); #include <sys/param.h> #include <sys/module.h> @@ -44,17 +44,19 @@ __KERNEL_RCSID(0, "$NetBSD: sunos_mod.c, MODULE(MODULE_CLASS_EXEC, compat_sunos, "compat,exec_aout"); -static struct execsw sunos_execsw[] = { - { SUNOS_AOUT_HDR_SIZE, - exec_sunos_aout_makecmds, - { NULL }, - &emul_sunos, - EXECSW_PRIO_ANY, - 0, - copyargs, - NULL, - coredump_netbsd, - exec_setup_stack }, +static struct execsw sunos_execsw = { + .es_hdrsz = SUNOS_AOUT_HDR_SIZE, + .es_makecmds = exec_sunos_aout_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_sunos, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = 0, + .es_copyargs = copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, }; static int @@ -63,12 +65,10 @@ compat_sunos_modcmd(modcmd_t cmd, void * switch (cmd) { case MODULE_CMD_INIT: - return exec_add(sunos_execsw, - __arraycount(sunos_execsw)); + return exec_add(&sunos_execsw, 1); case MODULE_CMD_FINI: - return exec_remove(sunos_execsw, - __arraycount(sunos_execsw)); + return exec_remove(&sunos_execsw, 1); default: return ENOTTY; Index: src/sys/compat/sunos32/sunos32_mod.c diff -u src/sys/compat/sunos32/sunos32_mod.c:1.2 src/sys/compat/sunos32/sunos32_mod.c:1.3 --- src/sys/compat/sunos32/sunos32_mod.c:1.2 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/sunos32/sunos32_mod.c Thu Mar 6 20:33:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: sunos32_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: sunos32_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sunos32_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sunos32_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $"); #include <sys/param.h> #include <sys/module.h> @@ -46,17 +46,19 @@ __KERNEL_RCSID(0, "$NetBSD: sunos32_mod. MODULE(MODULE_CLASS_EXEC, compat_sunos, "compat,compat_netbsd32,exec_aout"); -static struct execsw sunos_execsw[] = { - { SUNOS32_AOUT_HDR_SIZE, - exec_sunos32_aout_makecmds, - { NULL }, - &emul_sunos, - EXECSW_PRIO_ANY, - 0, - netbsd32_copyargs, - NULL, - coredump_netbsd, - exec_setup_stack }, +static struct execsw sunos_execsw = { + .es_hdrsz = SUNOS32_AOUT_HDR_SIZE, + .es_makecmds = exec_sunos32_aout_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_sunos, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = 0, + .es_copyargs = netbsd32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, }; static int @@ -65,12 +67,10 @@ compat_sunos_modcmd(modcmd_t cmd, void * switch (cmd) { case MODULE_CMD_INIT: - return exec_add(sunos_execsw, - __arraycount(sunos_execsw)); + return exec_add(&sunos_execsw, 1); case MODULE_CMD_FINI: - return exec_remove(sunos_execsw, - __arraycount(sunos_execsw)); + return exec_remove(&sunos_execsw, 1); default: return ENOTTY; Index: src/sys/compat/svr4/svr4_mod.c diff -u src/sys/compat/svr4/svr4_mod.c:1.2 src/sys/compat/svr4/svr4_mod.c:1.3 --- src/sys/compat/svr4/svr4_mod.c:1.2 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/svr4/svr4_mod.c Thu Mar 6 20:33:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: svr4_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: svr4_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: svr4_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $"); #ifndef ELFSIZE #define ELFSIZE ARCH_ELFSIZE @@ -64,27 +64,35 @@ MODULE(MODULE_CLASS_EXEC, compat_svr4, " static struct execsw svr4_execsw[] = { #if defined(EXEC_ELF32) && ELFSIZE == 32 - { sizeof (Elf32_Ehdr), - exec_elf32_makecmds, - { svr4_elf32_probe }, - &emul_svr4, - EXECSW_PRIO_LAST, /* probe always succeeds */ - ELF32_AUXSIZE, - elf32_copyargs, - NULL, - coredump_elf32, - exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf32_Ehdr), + .es_makecmds = exec_elf32_makecmds, + .u = { + .elf_probe_func = svr4_elf32_probe, + }, + .es_emul = &emul_svr4, + .es_prio = EXECSW_PRIO_LAST, + .es_argslen = ELF32_AUXSIZE, + .es_copyargs = elf32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf32, + .es_setup_stack = exec_setup_stack, + }, #elif defined(EXEC_ELF64) - { sizeof (Elf64_Ehdr), - exec_elf64_makecmds, - { svr4_elf64_probe }, - &emul_svr4, - EXECSW_PRIO_LAST, /* probe always succeeds */ - ELF64_AUXSIZE, - elf64_copyargs, - NULL, - coredump_elf64, - exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf64_Ehdr), + .es_makecmds = exec_elf64_makecmds, + .u = { + .elf_probe_func = svr4_elf64_probe, + }, + .es_emul = &emul_svr4, + .es_prio = EXECSW_PRIO_LAST, + .es_arglen = ELF64_AUXSIZE, + .es_copyargs = elf64_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf64, + .es_setup_stack = exec_setup_stack, + }, #endif }; Index: src/sys/compat/svr4_32/svr4_32_mod.c diff -u src/sys/compat/svr4_32/svr4_32_mod.c:1.2 src/sys/compat/svr4_32/svr4_32_mod.c:1.3 --- src/sys/compat/svr4_32/svr4_32_mod.c:1.2 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/svr4_32/svr4_32_mod.c Thu Mar 6 20:33:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_32_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: svr4_32_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: svr4_32_mod.c,v 1.2 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: svr4_32_mod.c,v 1.3 2014/03/07 01:33:44 christos Exp $"); #ifndef ELFSIZE #define ELFSIZE ARCH_ELFSIZE @@ -56,16 +56,20 @@ MODULE(MODULE_CLASS_EXEC, compat_svr4_32 static struct execsw svr4_32_execsw[] = { #if defined(EXEC_ELF32) - { sizeof (Elf32_Ehdr), - exec_elf32_makecmds, - { svr4_32_elf32_probe }, - &emul_svr4_32, - EXECSW_PRIO_LAST, /* probe always succeeds */ - SVR4_32_AUX_ARGSIZ, - svr4_32_copyargs, - NULL, - coredump_elf32, - exec_setup_stack }, + { + .es_hdrsz = sizeof (Elf32_Ehdr), + .es_makecmds = exec_elf32_makecmds, + .u = { + .elf_probe_func = svr4_32_elf32_probe, + }, + .es_emul = &emul_svr4_32, + .es_prio = EXECSW_PRIO_LAST, + .es_arglen = SVR4_32_AUX_ARGSIZ, + .es_copyargs = svr4_32_copyargs, + .es_setregs = NULL, + .es_coredump = coredump_elf32, + .es_setup_stack = exec_setup_stack, + }, #endif }; Index: src/sys/compat/ultrix/ultrix_mod.c diff -u src/sys/compat/ultrix/ultrix_mod.c:1.4 src/sys/compat/ultrix/ultrix_mod.c:1.5 --- src/sys/compat/ultrix/ultrix_mod.c:1.4 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/ultrix/ultrix_mod.c Thu Mar 6 20:33:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: ultrix_mod.c,v 1.4 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: ultrix_mod.c,v 1.5 2014/03/07 01:33:44 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ #endif #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ultrix_mod.c,v 1.4 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ultrix_mod.c,v 1.5 2014/03/07 01:33:44 christos Exp $"); #include <sys/param.h> #include <sys/module.h> @@ -57,16 +57,20 @@ MODULE(MODULE_CLASS_EXEC, compat_ultrix, static struct execsw ultrix_execsw[] = { #ifdef EXEC_ECOFF - { ECOFF_HDR_SIZE, - exec_ecoff_makecmds, - { .ecoff_probe_func = ultrix_exec_ecoff_probe }, - &emul_ultrix, - EXECSW_PRIO_LAST, /* XXX probe func alw. succeeds */ - 0, - copyargs, - cpu_exec_ecoff_setregs, - coredump_netbsd, - exec_setup_stack }, + { + .es_hdrsz = ECOFF_HDR_SIZE, + .es_makecmds = exec_ecoff_makecmds, + .u = { + .ecoff_probe_func = ultrix_exec_ecoff_probe, + }, + .es_emul = &emul_ultrix, + .es_prio = EXECSW_PRIO_LAST, + .es_arglen = 0, + .es_copyargs = copyargs, + .es_setregs = cpu_exec_ecoff_setregs, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, + }, #endif }; Index: src/sys/compat/vax1k/vax1k_exec.c diff -u src/sys/compat/vax1k/vax1k_exec.c:1.17 src/sys/compat/vax1k/vax1k_exec.c:1.18 --- src/sys/compat/vax1k/vax1k_exec.c:1.17 Thu Sep 19 14:50:36 2013 +++ src/sys/compat/vax1k/vax1k_exec.c Thu Mar 6 20:33:44 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: vax1k_exec.c,v 1.17 2013/09/19 18:50:36 christos Exp $ */ +/* $NetBSD: vax1k_exec.c,v 1.18 2014/03/07 01:33:44 christos Exp $ */ /* * Copyright (c) 1993, 1994 Christopher G. Demetriou @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vax1k_exec.c,v 1.17 2013/09/19 18:50:36 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vax1k_exec.c,v 1.18 2014/03/07 01:33:44 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -69,18 +69,20 @@ MODULE(MODULE_CLASS_EXEC, exec_vax1k, NU int exec_vax1k_prep_anymagic(struct lwp *, struct exec_package *, size_t, bool); -static struct execsw exec_vax1k_execsw[] = { +static struct execsw exec_vax1k_execsw = { /* NetBSD vax1k a.out */ - { sizeof(struct exec), - exec_vax1k_makecmds, - { NULL }, - &emul_netbsd, - EXECSW_PRIO_ANY, - 0, - copyargs, - NULL, - coredump_netbsd, - exec_setup_stack }, + .es_hdrsz = sizeof(struct exec), + .es_makecmds = exec_vax1k_makecmds, + .u = { + .elf_probe_func = NULL, + }, + .es_emul = &emul_netbsd, + .es_prio = EXECSW_PRIO_ANY, + .es_arglen = 0, + .es_copyargs = copyargs, + .es_setregs = NULL, + .es_coredump = coredump_netbsd, + .es_setup_stack = exec_setup_stack, }; static int @@ -89,12 +91,10 @@ exec_vax1k_modcmd(modcmd_t cmd, void *ar switch (cmd) { case MODULE_CMD_INIT: - return exec_add(exec_vax1k_execsw, - __arraycount(exec_vax1k_execsw)); + return exec_add(&exec_vax1k_execsw, 1); case MODULE_CMD_FINI: - return exec_remove(exec_vax1k_execsw, - __arraycount(exec_vax1k_execsw)); + return exec_remove(&exec_vax1k_execsw, 1); default: return ENOTTY;