Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/linux32/linux32_sysvec.c
Show First 20 Lines • Show All 918 Lines • ▼ Show 20 Lines | linux_exec_sysvec_init(void *param) | ||||
ptrdiff_t tkoff; | ptrdiff_t tkoff; | ||||
sv = param; | sv = param; | ||||
/* Fill timekeep_base */ | /* Fill timekeep_base */ | ||||
exec_sysvec_init(sv); | exec_sysvec_init(sv); | ||||
tkoff = kern_timekeep_base - linux_vdso_base; | tkoff = kern_timekeep_base - linux_vdso_base; | ||||
ktimekeep_base = (l_uintptr_t *)(linux_vdso_mapping + tkoff); | ktimekeep_base = (l_uintptr_t *)(linux_vdso_mapping + tkoff); | ||||
*ktimekeep_base = sv->sv_timekeep_base; | *ktimekeep_base = sv->sv_shared_page_base + sv->sv_timekeep_offset; | ||||
tkoff = kern_tsc_selector - linux_vdso_base; | tkoff = kern_tsc_selector - linux_vdso_base; | ||||
ktsc_selector = (l_uintptr_t *)(linux_vdso_mapping + tkoff); | ktsc_selector = (l_uintptr_t *)(linux_vdso_mapping + tkoff); | ||||
*ktsc_selector = linux_vdso_tsc_selector_idx(); | *ktsc_selector = linux_vdso_tsc_selector_idx(); | ||||
if (bootverbose) | if (bootverbose) | ||||
printf("Linux i386 vDSO tsc_selector: %u\n", *ktsc_selector); | printf("Linux i386 vDSO tsc_selector: %u\n", *ktsc_selector); | ||||
tkoff = kern_cpu_selector - linux_vdso_base; | tkoff = kern_cpu_selector - linux_vdso_base; | ||||
▲ Show 20 Lines • Show All 233 Lines • Show Last 20 Lines |