Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/linux/linux_sysvec.c
Show First 20 Lines • Show All 59 Lines • ▼ Show 20 Lines | |||||
#include <machine/md_var.h> | #include <machine/md_var.h> | ||||
#ifdef VFP | #ifdef VFP | ||||
#include <machine/vfp.h> | #include <machine/vfp.h> | ||||
#endif | #endif | ||||
MODULE_VERSION(linux64elf, 1); | MODULE_VERSION(linux64elf, 1); | ||||
const char *linux_kplatform; | |||||
static int linux_szsigcode; | static int linux_szsigcode; | ||||
static vm_object_t linux_shared_page_obj; | static vm_object_t linux_shared_page_obj; | ||||
static char *linux_shared_page_mapping; | static char *linux_shared_page_mapping; | ||||
extern char _binary_linux_locore_o_start; | extern char _binary_linux_locore_o_start; | ||||
extern char _binary_linux_locore_o_end; | extern char _binary_linux_locore_o_end; | ||||
extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL]; | extern struct sysent linux_sysent[LINUX_SYS_MAXSYSCALL]; | ||||
▲ Show 20 Lines • Show All 385 Lines • ▼ Show 20 Lines | linux_vdso_install(const void *param) | ||||
linux_shared_page_obj = __elfN(linux_shared_page_init) | linux_shared_page_obj = __elfN(linux_shared_page_init) | ||||
(&linux_shared_page_mapping); | (&linux_shared_page_mapping); | ||||
__elfN(linux_vdso_reloc)(&elf_linux_sysvec); | __elfN(linux_vdso_reloc)(&elf_linux_sysvec); | ||||
memcpy(linux_shared_page_mapping, elf_linux_sysvec.sv_sigcode, | memcpy(linux_shared_page_mapping, elf_linux_sysvec.sv_sigcode, | ||||
linux_szsigcode); | linux_szsigcode); | ||||
elf_linux_sysvec.sv_shared_page_obj = linux_shared_page_obj; | elf_linux_sysvec.sv_shared_page_obj = linux_shared_page_obj; | ||||
linux_kplatform = linux_shared_page_mapping + | |||||
(linux_platform - (caddr_t)elf_linux_sysvec.sv_shared_page_base); | |||||
} | } | ||||
SYSINIT(elf_linux_vdso_init, SI_SUB_EXEC, SI_ORDER_ANY, | SYSINIT(elf_linux_vdso_init, SI_SUB_EXEC, SI_ORDER_ANY, | ||||
linux_vdso_install, NULL); | linux_vdso_install, NULL); | ||||
static void | static void | ||||
linux_vdso_deinstall(const void *param) | linux_vdso_deinstall(const void *param) | ||||
{ | { | ||||
▲ Show 20 Lines • Show All 110 Lines • Show Last 20 Lines |