diff options
| author | jdolecek <jdolecek@NetBSD.org> | 2000-11-21 00:37:49 +0000 |
|---|---|---|
| committer | jdolecek <jdolecek@NetBSD.org> | 2000-11-21 00:37:49 +0000 |
| commit | baae0324b90e27947452a7dca4476ec2541ed880 (patch) | |
| tree | c16af02b061231b8dbfe3f7455f7f547e4d7e473 /sys/compat/linux/common/linux_exec.h | |
| parent | 1a5d87c9faf1adf855ca1499bd989f9f80a8d2aa (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.h | 15 |
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 */ |
