tmpunmap()

tmpunmap()

概要

実装

  901: void
  902: tmpunmap(void *v)
  903: {
  904:         ulong *entry;
  905:         
  906:         if(islo())
  907:                 panic("tmpaddr: islo");
  908:         if(fasttmp && (ulong)v >= KZERO && v != (void*)TMPADDR)
  909:                 return;
  910:         if(v != (void*)TMPADDR)
  911:                 panic("tmpunmap: bad address");
  912:         entry = &vpt[VPTX(TMPADDR)];
  913:         if(!(*entry&PTEVALID) || PPN(*entry) == PPN(PADDR(TMPADDR)))
  914:                 panic("tmpmap: not mapped entry=%#.8lux", *entry);
  915:         *entry = PPN(TMPADDR-KZERO)|PTEWRITE|PTEVALID;
  916:         flushpg(TMPADDR);
  917: }