Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/kern_sharedpage.c
Show First 20 Lines • Show All 282 Lines • ▼ Show 20 Lines | #endif | ||||
host_svtk = alloc_sv_tk(); | host_svtk = alloc_sv_tk(); | ||||
sv->sv_timekeep_base = sv->sv_shared_page_base + | sv->sv_timekeep_base = sv->sv_shared_page_base + | ||||
host_svtk->sv_timekeep_off; | host_svtk->sv_timekeep_off; | ||||
#ifdef COMPAT_FREEBSD32 | #ifdef COMPAT_FREEBSD32 | ||||
} | } | ||||
#endif | #endif | ||||
} | } | ||||
} | } | ||||
void | |||||
exec_sysvec_init_secondary(struct sysentvec *sv, struct sysentvec *sv2) | |||||
{ | |||||
MPASS((sv2->sv_flags & SV_ABI_MASK) == (sv->sv_flags & SV_ABI_MASK)); | |||||
MPASS((sv2->sv_flags & SV_TIMEKEEP) == (sv->sv_flags & SV_TIMEKEEP)); | |||||
MPASS((sv2->sv_flags & SV_SHP) != 0 && (sv->sv_flags & SV_SHP) != 0); | |||||
sv2->sv_shared_page_obj = sv->sv_shared_page_obj; | |||||
sv2->sv_sigcode_base = sv2->sv_shared_page_base + | |||||
(sv->sv_sigcode_base - sv->sv_shared_page_base); | |||||
if ((sv2->sv_flags & SV_ABI_MASK) != SV_ABI_FREEBSD) | |||||
return; | |||||
if ((sv2->sv_flags & SV_TIMEKEEP) != 0) { | |||||
sv2->sv_timekeep_base = sv2->sv_shared_page_base + | |||||
(sv->sv_timekeep_base - sv->sv_shared_page_base); | |||||
} | |||||
} |