summaryrefslogtreecommitdiff
path: root/sys/compat/linux/common/linux_exec.h
diff options
context:
space:
mode:
authorjdolecek <jdolecek@NetBSD.org>2000-11-21 00:37:49 +0000
committerjdolecek <jdolecek@NetBSD.org>2000-11-21 00:37:49 +0000
commitbaae0324b90e27947452a7dca4476ec2541ed880 (patch)
treec16af02b061231b8dbfe3f7455f7f547e4d7e473 /sys/compat/linux/common/linux_exec.h
parent1a5d87c9faf1adf855ca1499bd989f9f80a8d2aa (diff)
restructure struct emul and execsw, in preparation to make emulations LKMable:
* move all exec-type specific information from struct emul to execsw[] and provide single struct emul per emulation * elf: - kern/exec_elf32.c:probe_funcs[] is gone, execsw[] how has one entry per emulation and contains pointer to respective probe function - interp is allocated via MALLOC() rather than on stack - elf_args structure is allocated via MALLOC() rather than malloc() * ecoff: the per-emulation hooks moved from alpha and mips specific code to OSF1 and Ultrix compat code as appropriate, execsw[] has one entry per emulation supporting ecoff with appropriate probe function * the makecmds/probe functions don't set emulation, pointer to emulation is part of appropriate execsw[] entry * constify couple of structures
Diffstat (limited to 'sys/compat/linux/common/linux_exec.h')
-rw-r--r--sys/compat/linux/common/linux_exec.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/compat/linux/common/linux_exec.h b/sys/compat/linux/common/linux_exec.h
index 1bcff288d73..5f8ab7b54dd 100644
--- a/sys/compat/linux/common/linux_exec.h
+++ b/sys/compat/linux/common/linux_exec.h
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_exec.h,v 1.12 1998/12/15 19:31:39 itohy Exp $ */
+/* $NetBSD: linux_exec.h,v 1.13 2000/11/21 00:37:54 jdolecek Exp $ */
/*-
* Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
@@ -52,6 +52,7 @@
/* Defines for a.out executables */
#define LINUX_AOUT_HDR_SIZE (sizeof (struct exec))
+#define LINUX_AOUT_AUX_ARGSIZ 2
#define LINUX_N_MAGIC(ep) ((ep)->a_midmag & 0xffff)
#define LINUX_N_MACHTYPE(ep) (((ep)->a_midmag >> 16) & 0xff)
@@ -75,16 +76,20 @@
#ifdef _KERNEL
__BEGIN_DECLS
+extern const struct emul emul_linux;
+
void linux_setregs __P((struct proc *, struct exec_package *, u_long));
int exec_linux_aout_makecmds __P((struct proc *, struct exec_package *));
+void *linux_aout_copyargs __P((struct exec_package *,
+ struct ps_strings *, void *, void *));
#ifdef EXEC_ELF32
-int linux_elf32_probe __P((struct proc *, struct exec_package *, Elf32_Ehdr *,
- char *, Elf32_Addr *));
+int linux_elf32_probe __P((struct proc *, struct exec_package *, void *,
+ char *, vaddr_t *));
#endif
#ifdef EXEC_ELF64
-int linux_elf64_probe __P((struct proc *, struct exec_package *, Elf64_Ehdr *,
- char *, Elf64_Addr *));
+int linux_elf64_probe __P((struct proc *, struct exec_package *, void *,
+ char *, vaddr_t *));
#endif
__END_DECLS
#endif /* !_KERNEL */