summaryrefslogtreecommitdiff
path: root/sys/compat/linux/common/linux_exec.h
diff options
context:
space:
mode:
authormanu <manu@NetBSD.org>2006-02-09 19:18:56 +0000
committermanu <manu@NetBSD.org>2006-02-09 19:18:56 +0000
commitee0c5b44def8a80be34fd2e5867cafdcc76275b6 (patch)
tree183be75b62d5300967eea39ead22b2c61ee63277 /sys/compat/linux/common/linux_exec.h
parent0cf592aa8aff28200eebc1da22b795caa7423277 (diff)
Add initial (but unfinished) COMPAT_LINUX32 for amd64. This is good enough so
that the i386 license manager part of amd64 version of Fluent works. While I'm here, add SysV IPC to COMPAT_LINUX/amd64
Diffstat (limited to 'sys/compat/linux/common/linux_exec.h')
-rw-r--r--sys/compat/linux/common/linux_exec.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/sys/compat/linux/common/linux_exec.h b/sys/compat/linux/common/linux_exec.h
index 86a559789f4..137ef2ac042 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.36 2005/12/11 12:20:19 christos Exp $ */
+/* $NetBSD: linux_exec.h,v 1.37 2006/02/09 19:18:56 manu Exp $ */
/*-
* Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
@@ -39,6 +39,10 @@
#ifndef _LINUX_EXEC_H
#define _LINUX_EXEC_H
+#if defined(EXEC_ELF32) || defined(EXEC_ELF64)
+#include <sys/exec_elf.h>
+#endif
+
#if defined(__i386__)
#include <compat/linux/arch/i386/linux_exec.h>
#elif defined(__m68k__)
@@ -95,6 +99,8 @@
#define LINUX_AT_HWCAP 16 /* arch dependent CPU capabilities */
#define LINUX_AT_CLKTCK 17 /* frequency times() increments */
#define LINUX_AT_SECURE 23 /* secure mode boolean */
+#define LINUX_AT_SYSINFO 32 /* pointer to __kernel_vsyscall */
+#define LINUX_AT_SYSINFO_EHDR 33 /* pointer to ELF header */
/*
* Emulation specific sysctls.
@@ -137,12 +143,32 @@ int linux_elf32_probe __P((struct lwp *, struct exec_package *, void *,
char *, vaddr_t *));
int linux_elf32_copyargs __P((struct lwp *, struct exec_package *,
struct ps_strings *, char **, void *));
+int linux_elf32_signature __P((struct lwp *, struct exec_package *,
+ Elf32_Ehdr *, char *));
+#ifdef LINUX_GCC_SIGNATURE
+int linux_elf32_gcc_signature __P((struct lwp *l,
+ struct exec_package *, Elf32_Ehdr *));
+#endif
+#ifdef LINUX_ATEXIT_SIGNATURE
+int linux_elf32_atexit_signature __P((struct lwp *l,
+ struct exec_package *, Elf32_Ehdr *));
+#endif
#endif
#ifdef EXEC_ELF64
int linux_elf64_probe __P((struct lwp *, struct exec_package *, void *,
char *, vaddr_t *));
int linux_elf64_copyargs __P((struct lwp *, struct exec_package *,
struct ps_strings *, char **, void *));
+int linux_elf64_signature __P((struct lwp *, struct exec_package *,
+ Elf64_Ehdr *, char *));
+#ifdef LINUX_GCC_SIGNATURE
+int linux_elf64_gcc_signature __P((struct lwp *l,
+ struct exec_package *, Elf64_Ehdr *));
+#endif
+#ifdef LINUX_ATEXIT_SIGNATURE
+int linux_elf64_atexit_signature __P((struct lwp *l,
+ struct exec_package *, Elf64_Ehdr *));
+#endif
#endif
__END_DECLS
#endif /* !_KERNEL */