[BACK]Return to pmap.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / sun2 / sun2

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/sun2/sun2/pmap.c between version 1.43 and 1.43.10.1

version 1.43, 2009/12/11 13:56:16 version 1.43.10.1, 2011/06/23 14:19:44
Line 94  __KERNEL_RCSID(0, "$NetBSD$");
Line 94  __KERNEL_RCSID(0, "$NetBSD$");
 #include <sys/pool.h>  #include <sys/pool.h>
 #include <sys/queue.h>  #include <sys/queue.h>
 #include <sys/kcore.h>  #include <sys/kcore.h>
   #include <sys/atomic.h>
   
 #include <uvm/uvm.h>  #include <uvm/uvm.h>
   
Line 242  struct pmap_stats {
Line 243  struct pmap_stats {
         int     ps_vac_recached;        /* re-cached when bad alias gone */          int     ps_vac_recached;        /* re-cached when bad alias gone */
 } pmap_stats;  } pmap_stats;
   
 #define pmap_lock(pmap) simple_lock(&pmap->pm_lock)  
 #define pmap_unlock(pmap) simple_unlock(&pmap->pm_lock)  
 #define pmap_add_ref(pmap) ++pmap->pm_refcount  
 #define pmap_del_ref(pmap) --pmap->pm_refcount  
 #define pmap_refcount(pmap) pmap->pm_refcount  
   
 #ifdef  PMAP_DEBUG  #ifdef  PMAP_DEBUG
 #define CHECK_SPL() do { \  #define CHECK_SPL() do { \
         if ((getsr() & PSL_IPL) < PSL_IPL4) \          if ((getsr() & PSL_IPL) < PSL_IPL4) \
Line 1486  pmap_common_init(pmap_t pmap)
Line 1481  pmap_common_init(pmap_t pmap)
         pmap->pm_refcount = 1;          pmap->pm_refcount = 1;
         pmap->pm_version = pmap_version++;          pmap->pm_version = pmap_version++;
         pmap->pm_ctxnum = EMPTY_CONTEXT;          pmap->pm_ctxnum = EMPTY_CONTEXT;
         simple_lock_init(&pmap->pm_lock);  
 }  }
   
 /*  /*
Line 1900  pmap_destroy(pmap_t pmap)
Line 1894  pmap_destroy(pmap_t pmap)
 #endif  #endif
         if (pmap == kernel_pmap)          if (pmap == kernel_pmap)
                 panic("pmap_destroy: kernel_pmap!");                  panic("pmap_destroy: kernel_pmap!");
         pmap_lock(pmap);          count = atomic_dec_uint_nv(&pmap->pm_refcount);
         count = pmap_del_ref(pmap);  
         pmap_unlock(pmap);  
         if (count == 0) {          if (count == 0) {
                 pmap_release(pmap);                  pmap_release(pmap);
                 pool_put(&pmap_pmap_pool, pmap);                  pool_put(&pmap_pmap_pool, pmap);
Line 1915  pmap_destroy(pmap_t pmap)
Line 1907  pmap_destroy(pmap_t pmap)
 void  void
 pmap_reference(pmap_t pmap)  pmap_reference(pmap_t pmap)
 {  {
         pmap_lock(pmap);  
         pmap_add_ref(pmap);          atomic_inc_uint(&pmap->pm_refcount);
         pmap_unlock(pmap);  
 }  }
   
   

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.43.10.1

CVSweb <webmaster@jp.NetBSD.org>