mmuswitch()

mmuswitch()

概要

引数

実装

  293: void
  294: mmuswitch(Proc* proc)
  295: {
  296:         ulong *pdb;
  297: 
  298:         if(proc->newtlb){
  299:                 mmuptefree(proc);
  300:                 proc->newtlb = 0;
  301:         }
  302: 
  303:         if(proc->mmupdb){
  304:                 pdb = tmpmap(proc->mmupdb);
  305:                 pdb[PDX(MACHADDR)] = m->pdb[PDX(MACHADDR)];
  306:                 tmpunmap(pdb);
  307:                 taskswitch(proc->mmupdb->pa, (ulong)(proc->kstack+KSTACK));
  308:         }else
  309:                 taskswitch(PADDR(m->pdb), (ulong)(proc->kstack+KSTACK));
  310: }