MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_activate

Function pmap_activate

freebsd/mips/mips/pmap.c:3315–3339  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3313}
3314
3315void
3316pmap_activate(struct thread *td)
3317{
3318 pmap_t pmap, oldpmap;
3319 struct proc *p = td->td_proc;
3320 u_int cpuid;
3321
3322 critical_enter();
3323
3324 pmap = vmspace_pmap(p->p_vmspace);
3325 oldpmap = PCPU_GET(curpmap);
3326 cpuid = PCPU_GET(cpuid);
3327
3328 if (oldpmap)
3329 CPU_CLR_ATOMIC(cpuid, &oldpmap->pm_active);
3330 CPU_SET_ATOMIC(cpuid, &pmap->pm_active);
3331 pmap_asid_alloc(pmap);
3332 if (td == curthread) {
3333 PCPU_SET(segbase, pmap->pm_segtab);
3334 mips_wr_entryhi(pmap->pm_asid[cpuid].asid);
3335 }
3336
3337 PCPU_SET(curpmap, pmap);
3338 critical_exit();
3339}
3340
3341static void
3342pmap_sync_icache_one(void *arg __unused)

Callers 4

vmspace_exitFunction · 0.50
vmspace_switch_aioFunction · 0.50
vmspace_execFunction · 0.50
vmspace_unshareFunction · 0.50

Calls 4

vmspace_pmapFunction · 0.85
pmap_asid_allocFunction · 0.85
critical_enterFunction · 0.50
critical_exitFunction · 0.50

Tested by

no test coverage detected