Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/arm64/elf_machdep.c
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
/*- | |||||
* Copyright (c) 2001 Jake Burkholder. | |||||
* Copyright (c) 2000 Eduardo Horvath. | |||||
* Copyright (c) 1999 The NetBSD Foundation, Inc. | |||||
* All rights reserved. | |||||
emaste: new stub impl | |||||
andrewAuthorUnsubmitted Not Done Inline ActionsThis is from sys/sparc64/sparc64/elf_machdep.c, with the relocation code removed. andrew: This is from sys/sparc64/sparc64/elf_machdep.c, with the relocation code removed. | |||||
* | |||||
* This code is derived from software contributed to The NetBSD Foundation | |||||
* by Paul Kranenburg. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions | |||||
* are met: | |||||
* 1. Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* 2. Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | |||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |||||
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |||||
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |||||
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |||||
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |||||
* POSSIBILITY OF SUCH DAMAGE. | |||||
* | |||||
* from: NetBSD: mdreloc.c,v 1.42 2008/04/28 20:23:04 martin Exp | |||||
*/ | |||||
#include <sys/cdefs.h> | |||||
__FBSDID("$FreeBSD$"); | |||||
#include <sys/param.h> | |||||
#include <sys/kernel.h> | |||||
#include <sys/systm.h> | |||||
#include <sys/exec.h> | |||||
#include <sys/imgact.h> | |||||
#include <sys/linker.h> | |||||
#include <sys/proc.h> | |||||
#include <sys/sysent.h> | |||||
#include <sys/imgact_elf.h> | |||||
#include <sys/syscall.h> | |||||
#include <sys/signalvar.h> | |||||
#include <sys/vnode.h> | |||||
#include <vm/vm.h> | |||||
#include <vm/vm_param.h> | |||||
#include <machine/elf.h> | |||||
#include <machine/md_var.h> | |||||
#include "linker_if.h" | |||||
static struct sysentvec elf64_freebsd_sysvec = { | |||||
.sv_size = SYS_MAXSYSCALL, | |||||
.sv_table = sysent, | |||||
.sv_mask = 0, | |||||
.sv_sigsize = 0, | |||||
.sv_sigtbl = NULL, | |||||
.sv_errsize = 0, | |||||
.sv_errtbl = NULL, | |||||
.sv_transtrap = NULL, | |||||
.sv_fixup = __elfN(freebsd_fixup), | |||||
.sv_sendsig = sendsig, | |||||
.sv_sigcode = sigcode, | |||||
.sv_szsigcode = &szsigcode, | |||||
.sv_prepsyscall = NULL, | |||||
.sv_name = "FreeBSD ELF64", | |||||
.sv_coredump = __elfN(coredump), | |||||
.sv_imgact_try = NULL, | |||||
.sv_minsigstksz = MINSIGSTKSZ, | |||||
.sv_pagesize = PAGE_SIZE, | |||||
.sv_minuser = VM_MIN_ADDRESS, | |||||
.sv_maxuser = VM_MAXUSER_ADDRESS, | |||||
.sv_usrstack = USRSTACK, | |||||
.sv_psstrings = PS_STRINGS, | |||||
.sv_stackprot = VM_PROT_READ | VM_PROT_WRITE, | |||||
.sv_copyout_strings = exec_copyout_strings, | |||||
.sv_setregs = exec_setregs, | |||||
.sv_fixlimit = NULL, | |||||
.sv_maxssiz = NULL, | |||||
.sv_flags = SV_ABI_FREEBSD | SV_LP64, | |||||
.sv_set_syscall_retval = cpu_set_syscall_retval, | |||||
.sv_fetch_syscall_args = cpu_fetch_syscall_args, | |||||
.sv_syscallnames = syscallnames, | |||||
.sv_schedtail = NULL, | |||||
}; | |||||
static Elf64_Brandinfo freebsd_brand_info = { | |||||
.brand = ELFOSABI_FREEBSD, | |||||
.machine = EM_AARCH64, | |||||
.compat_3_brand = "FreeBSD", | |||||
.emul_path = NULL, | |||||
.interp_path = "/libexec/ld-elf.so.1", | |||||
.sysvec = &elf64_freebsd_sysvec, | |||||
.interp_newpath = NULL, | |||||
.brand_note = &elf64_freebsd_brandnote, | |||||
.flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | |||||
}; | |||||
SYSINIT(elf64, SI_SUB_EXEC, SI_ORDER_FIRST, | |||||
(sysinit_cfunc_t)elf64_insert_brand_entry, &freebsd_brand_info); | |||||
static Elf64_Brandinfo freebsd_brand_oinfo = { | |||||
.brand = ELFOSABI_FREEBSD, | |||||
.machine = EM_AARCH64, | |||||
.compat_3_brand = "FreeBSD", | |||||
.emul_path = NULL, | |||||
.interp_path = "/usr/libexec/ld-elf.so.1", | |||||
.sysvec = &elf64_freebsd_sysvec, | |||||
.interp_newpath = NULL, | |||||
.brand_note = &elf64_freebsd_brandnote, | |||||
.flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | |||||
}; | |||||
SYSINIT(oelf64, SI_SUB_EXEC, SI_ORDER_ANY, | |||||
(sysinit_cfunc_t)elf64_insert_brand_entry, &freebsd_brand_oinfo); | |||||
void | |||||
elf64_dump_thread(struct thread *td __unused, void *dst __unused, | |||||
size_t *off __unused) | |||||
{ | |||||
} | |||||
int | |||||
elf_reloc_local(linker_file_t lf, Elf_Addr relocbase, const void *data, | |||||
int type, elf_lookup_fn lookup __unused) | |||||
{ | |||||
panic("elf_reloc_local"); | |||||
} | |||||
/* Process one elf relocation with addend. */ | |||||
int | |||||
elf_reloc(linker_file_t lf, Elf_Addr relocbase, const void *data, int type, | |||||
elf_lookup_fn lookup) | |||||
{ | |||||
panic("elf_reloc"); | |||||
} | |||||
int | |||||
elf_cpu_load_file(linker_file_t lf __unused) | |||||
{ | |||||
return (0); | |||||
} | |||||
int | |||||
elf_cpu_unload_file(linker_file_t lf __unused) | |||||
{ | |||||
return (0); | |||||
} |
new stub impl