Exemplo n.º 1
0
/*
 * Shoot down everything.
 */
void
vm_tlbshootdown_all(void)
{
	spinlock_acquire(&coremap_spinlock);
	ct_shootdown_interrupts++;
	tlb_clear();
	ct_shootdowns_done += NUM_TLB;
	wchan_wakeall(coremap_shootchan);
	spinlock_release(&coremap_spinlock);
}
Exemplo n.º 2
0
/*
 * mmu_setas: Set current address space in MMU.
 *
 * Synchronization: takes coremap_spinlock. Does not block.
 */
void
mmu_setas(struct addrspace *as)
{
	spinlock_acquire(&coremap_spinlock);
	if (as != curcpu->c_vm.cvm_lastas) {
		curcpu->c_vm.cvm_lastas = as;
		tlb_clear();
	}
	spinlock_release(&coremap_spinlock);
}
Exemplo n.º 3
0
void TLBclear(){
//	cprintf("%d | [%s] Clearing TLB (probably because of a context switch) \n",proc->pid, __FUNCTION__);
	tlb_clear();
}