Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/linux/linux_sysvec.c
Show First 20 Lines • Show All 369 Lines • ▼ Show 20 Lines | struct sysentvec elf_linux_sysvec = { | ||||
.sv_sendsig = linux_rt_sendsig, | .sv_sendsig = linux_rt_sendsig, | ||||
.sv_sigcode = &_binary_linux_vdso_so_o_start, | .sv_sigcode = &_binary_linux_vdso_so_o_start, | ||||
.sv_szsigcode = &linux_szsigcode, | .sv_szsigcode = &linux_szsigcode, | ||||
.sv_name = "Linux ELF64", | .sv_name = "Linux ELF64", | ||||
.sv_coredump = elf64_coredump, | .sv_coredump = elf64_coredump, | ||||
.sv_elf_core_osabi = ELFOSABI_NONE, | .sv_elf_core_osabi = ELFOSABI_NONE, | ||||
.sv_elf_core_abi_vendor = LINUX_ABI_VENDOR, | .sv_elf_core_abi_vendor = LINUX_ABI_VENDOR, | ||||
.sv_elf_core_prepare_notes = linux64_prepare_notes, | .sv_elf_core_prepare_notes = linux64_prepare_notes, | ||||
.sv_imgact_try = linux_exec_imgact_try, | |||||
.sv_minsigstksz = LINUX_MINSIGSTKSZ, | .sv_minsigstksz = LINUX_MINSIGSTKSZ, | ||||
.sv_minuser = VM_MIN_ADDRESS, | .sv_minuser = VM_MIN_ADDRESS, | ||||
.sv_maxuser = VM_MAXUSER_ADDRESS, | .sv_maxuser = VM_MAXUSER_ADDRESS, | ||||
.sv_usrstack = LINUX_USRSTACK, | .sv_usrstack = LINUX_USRSTACK, | ||||
.sv_psstrings = LINUX_PS_STRINGS, | .sv_psstrings = LINUX_PS_STRINGS, | ||||
.sv_psstringssz = sizeof(struct ps_strings), | .sv_psstringssz = sizeof(struct ps_strings), | ||||
.sv_stackprot = VM_PROT_READ | VM_PROT_WRITE, | .sv_stackprot = VM_PROT_READ | VM_PROT_WRITE, | ||||
.sv_copyout_auxargs = __linuxN(copyout_auxargs), | .sv_copyout_auxargs = __linuxN(copyout_auxargs), | ||||
Show All 22 Lines | |||||
static int | static int | ||||
linux_on_exec_vmspace(struct proc *p, struct image_params *imgp) | linux_on_exec_vmspace(struct proc *p, struct image_params *imgp) | ||||
{ | { | ||||
int error; | int error; | ||||
error = linux_map_vdso(p, linux_vdso_obj, linux_vdso_base, | error = linux_map_vdso(p, linux_vdso_obj, linux_vdso_base, | ||||
LINUX_VDSOPAGE_SIZE, imgp); | LINUX_VDSOPAGE_SIZE, imgp); | ||||
if (error == 0) | if (error == 0) | ||||
linux_on_exec(p, imgp); | error = linux_on_exec(p, imgp); | ||||
return (error); | return (error); | ||||
} | } | ||||
/* | /* | ||||
* linux_vdso_install() and linux_exec_sysvec_init() must be called | * linux_vdso_install() and linux_exec_sysvec_init() must be called | ||||
* after exec_sysvec_init() which is SI_SUB_EXEC (SI_ORDER_ANY). | * after exec_sysvec_init() which is SI_SUB_EXEC (SI_ORDER_ANY). | ||||
*/ | */ | ||||
static void | static void | ||||
▲ Show 20 Lines • Show All 104 Lines • ▼ Show 20 Lines | static Elf_Brandnote linux64_brandnote = { | ||||
.flags = BN_TRANSLATE_OSREL, | .flags = BN_TRANSLATE_OSREL, | ||||
.trans_osrel = linux_trans_osrel | .trans_osrel = linux_trans_osrel | ||||
}; | }; | ||||
static Elf64_Brandinfo linux_glibc2brand = { | static Elf64_Brandinfo linux_glibc2brand = { | ||||
.brand = ELFOSABI_LINUX, | .brand = ELFOSABI_LINUX, | ||||
.machine = EM_AARCH64, | .machine = EM_AARCH64, | ||||
.compat_3_brand = "Linux", | .compat_3_brand = "Linux", | ||||
.emul_path = linux_emul_path, | |||||
.interp_path = "/lib64/ld-linux-x86-64.so.2", | .interp_path = "/lib64/ld-linux-x86-64.so.2", | ||||
.sysvec = &elf_linux_sysvec, | .sysvec = &elf_linux_sysvec, | ||||
.interp_newpath = NULL, | .interp_newpath = NULL, | ||||
.brand_note = &linux64_brandnote, | .brand_note = &linux64_brandnote, | ||||
.flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE | ||||
}; | }; | ||||
Elf64_Brandinfo *linux_brandlist[] = { | Elf64_Brandinfo *linux_brandlist[] = { | ||||
▲ Show 20 Lines • Show All 60 Lines • Show Last 20 Lines |