| 3313 | } |
| 3314 | |
| 3315 | void |
| 3316 | pmap_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 | |
| 3341 | static void |
| 3342 | pmap_sync_icache_one(void *arg __unused) |
no test coverage detected