Module Name: src
Committed By: matt
Date: Sat Sep 12 19:25:23 UTC 2009
Modified Files:
src/sys/compat/irix [matt-nb5-mips64]: files.irix irix_exec.h
irix_exec_elf32.c
Added Files:
src/sys/compat/irix [matt-nb5-mips64]: irix_exec_elf64.c
Log Message:
Add elf64 version. XXX needs work for netbsd32
To generate a diff of this commit:
cvs rdiff -u -r1.25 -r1.25.124.1 src/sys/compat/irix/files.irix
cvs rdiff -u -r1.25.14.1 -r1.25.14.2 src/sys/compat/irix/irix_exec.h
cvs rdiff -u -r1.15.18.1 -r1.15.18.2 src/sys/compat/irix/irix_exec_elf32.c
cvs rdiff -u -r0 -r1.1.2.1 src/sys/compat/irix/irix_exec_elf64.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/irix/files.irix
diff -u src/sys/compat/irix/files.irix:1.25 src/sys/compat/irix/files.irix:1.25.124.1
--- src/sys/compat/irix/files.irix:1.25 Sat Nov 9 09:03:58 2002
+++ src/sys/compat/irix/files.irix Sat Sep 12 19:25:23 2009
@@ -1,4 +1,4 @@
-# $NetBSD: files.irix,v 1.25 2002/11/09 09:03:58 manu Exp $
+# $NetBSD: files.irix,v 1.25.124.1 2009/09/12 19:25:23 matt Exp $
#
file arch/mips/mips/irix_syscall.c compat_irix
@@ -7,6 +7,7 @@
file compat/irix/irix_errno.c compat_irix
file compat/irix/irix_exec.c compat_irix
file compat/irix/irix_exec_elf32.c compat_irix & exec_elf32
+file compat/irix/irix_exec_elf64.c compat_irix & exec_elf64
file compat/irix/irix_fcntl.c compat_irix
file compat/irix/irix_ioctl.c compat_irix
file compat/irix/irix_kmem.c compat_irix
Index: src/sys/compat/irix/irix_exec.h
diff -u src/sys/compat/irix/irix_exec.h:1.25.14.1 src/sys/compat/irix/irix_exec.h:1.25.14.2
--- src/sys/compat/irix/irix_exec.h:1.25.14.1 Wed Aug 26 03:46:40 2009
+++ src/sys/compat/irix/irix_exec.h Sat Sep 12 19:25:23 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: irix_exec.h,v 1.25.14.1 2009/08/26 03:46:40 matt Exp $ */
+/* $NetBSD: irix_exec.h,v 1.25.14.2 2009/09/12 19:25:23 matt Exp $ */
/*-
* Copyright (c) 2001-2002 The NetBSD Foundation, Inc.
@@ -93,7 +93,7 @@
int irix_elf64_copyargs(struct lwp *, struct exec_package *,
struct ps_strings *, char **, void *);
-int irix_elf64_probe(struct lwp *, struct exec_package *, void *,
+int irix_elf64_probe_n64(struct lwp *, struct exec_package *, void *,
char *, vaddr_t *);
#endif
Index: src/sys/compat/irix/irix_exec_elf32.c
diff -u src/sys/compat/irix/irix_exec_elf32.c:1.15.18.1 src/sys/compat/irix/irix_exec_elf32.c:1.15.18.2
--- src/sys/compat/irix/irix_exec_elf32.c:1.15.18.1 Thu Sep 10 01:52:34 2009
+++ src/sys/compat/irix/irix_exec_elf32.c Sat Sep 12 19:25:23 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: irix_exec_elf32.c,v 1.15.18.1 2009/09/10 01:52:34 matt Exp $ */
+/* $NetBSD: irix_exec_elf32.c,v 1.15.18.2 2009/09/12 19:25:23 matt Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,15 +30,13 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: irix_exec_elf32.c,v 1.15.18.1 2009/09/10 01:52:34 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: irix_exec_elf32.c,v 1.15.18.2 2009/09/12 19:25:23 matt Exp $");
#ifndef ELFSIZE
-#ifdef _LP64
-#define ELFSIZE 64 /* XXX should die */
-#else
#define ELFSIZE 32 /* XXX should die */
#endif
-#endif
+
+#include "opt_execfmt.h"
#include <sys/param.h>
#include <sys/types.h>
@@ -60,17 +58,13 @@
#include <compat/irix/irix_exec.h>
-#ifdef EXEC_ELF32
+#if ELFSIZE == 32
/*
* IRIX o32 ABI probe function
*/
int
-ELFNAME2(irix,probe_o32)(l, epp, eh, itp, pos)
- struct lwp *l;
- struct exec_package *epp;
- void *eh;
- char *itp;
- vaddr_t *pos;
+ELFNAME2(irix,probe_o32)(struct lwp *l, struct exec_package *epp, void *eh,
+ char *itp, vaddr_t *pos)
{
int error = 0;
@@ -95,7 +89,7 @@
printf("epp->ep_vm_minaddr = 0x%lx\n", epp->ep_vm_minaddr);
#endif
epp->ep_vm_minaddr = epp->ep_vm_minaddr & ~0xfUL;
- l->l_proc->l_md.md_abi = _MIP_BSD_API_O32;
+ l->l_proc->p_md.md_abi = _MIPS_BSD_API_O32;
return 0;
}
@@ -103,12 +97,8 @@
* IRIX n32 ABI probe function
*/
int
-ELFNAME2(irix,probe_n32)(l, epp, eh, itp, pos)
- struct lwp *l;
- struct exec_package *epp;
- void *eh;
- char *itp;
- vaddr_t *pos;
+ELFNAME2(irix,probe_n32)(struct lwp *l, struct exec_package *epp, void *eh,
+ char *itp, vaddr_t *pos)
{
int error = 0;
@@ -132,22 +122,18 @@
printf("epp->ep_vm_minaddr = 0x%lx\n", epp->ep_vm_minaddr);
#endif
epp->ep_vm_minaddr = epp->ep_vm_minaddr & ~0xfUL;
- l->l_proc->l_md.md_abi = _MIP_BSD_API_N32;
+ l->l_proc->p_md.md_abi = _MIPS_BSD_API_N32;
return 0;
}
-#endif /* EXEC_ELF32 */
+#endif /* ELFSIZE == 32 */
-#ifdef EXEC_ELF64
+#if ELFSIZE == 64
/*
- * IRIX n32 ABI probe function
+ * IRIX n64 ABI probe function
*/
int
-ELFNAME2(irix,probe_n64)(l, epp, eh, itp, pos)
- struct lwp *l;
- struct exec_package *epp;
- void *eh;
- char *itp;
- vaddr_t *pos;
+irix_elf64_probe_n64(struct lwp *l, struct exec_package *epp, void *eh,
+ char *itp, vaddr_t *pos)
{
int error = 0;
@@ -171,9 +157,10 @@
printf("epp->ep_vm_minaddr = 0x%lx\n", epp->ep_vm_minaddr);
#endif
epp->ep_vm_minaddr = epp->ep_vm_minaddr & ~0xfUL;
- l->l_proc->l_md.md_abi = _MIP_BSD_API_N32;
+ l->l_proc->p_md.md_abi = _MIPS_BSD_API_N32;
return 0;
}
+#endif /* ELFSIZE == 64 */
int
ELFNAME2(irix,copyargs)(l, pack, arginfo, stackp, argp)
Added files:
Index: src/sys/compat/irix/irix_exec_elf64.c
diff -u /dev/null src/sys/compat/irix/irix_exec_elf64.c:1.1.2.1
--- /dev/null Sat Sep 12 19:25:23 2009
+++ src/sys/compat/irix/irix_exec_elf64.c Sat Sep 12 19:25:23 2009
@@ -0,0 +1,5 @@
+/* $NetBSD: irix_exec_elf64.c,v 1.1.2.1 2009/09/12 19:25:23 matt Exp $ */
+
+#define ELFSIZE 64
+
+#include "irix_exec_elf32.c"