[BACK]Return to pmap.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / amd64 / include

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

Diff for /src/sys/arch/amd64/include/pmap.h between version 1.10 and 1.10.4.5

version 1.10, 2007/02/21 22:59:37 version 1.10.4.5, 2007/10/09 15:22:03
Line 79 
Line 79 
 #include "opt_largepages.h"  #include "opt_largepages.h"
 #endif  #endif
   
 #include <machine/cpufunc.h>  
 #include <machine/pte.h>  #include <machine/pte.h>
 #include <machine/segments.h>  #include <machine/segments.h>
   #include <machine/atomic.h>
   #ifdef _KERNEL
   #include <machine/cpufunc.h>
   #endif
   
 #include <uvm/uvm_object.h>  #include <uvm/uvm_object.h>
 #endif  #endif
   
Line 339  struct pv_entry {                       
Line 343  struct pv_entry {                       
         struct pmap *pv_pmap;           /* the pmap */          struct pmap *pv_pmap;           /* the pmap */
         vaddr_t pv_va;                  /* the virtual address */          vaddr_t pv_va;                  /* the virtual address */
         struct vm_page *pv_ptp;         /* the vm_page of the PTP */          struct vm_page *pv_ptp;         /* the vm_page of the PTP */
           struct pmap_cpu *pv_alloc_cpu;  /* CPU allocated from */
 };  };
   
 /*  /*
Line 404  extern long nkptp[], nbpd[], nkptpmax[];
Line 409  extern long nkptp[], nbpd[], nkptpmax[];
 #define pmap_kernel()                   (&kernel_pmap_store)  #define pmap_kernel()                   (&kernel_pmap_store)
 #define pmap_resident_count(pmap)       ((pmap)->pm_stats.resident_count)  #define pmap_resident_count(pmap)       ((pmap)->pm_stats.resident_count)
 #define pmap_wired_count(pmap)          ((pmap)->pm_stats.wired_count)  #define pmap_wired_count(pmap)          ((pmap)->pm_stats.wired_count)
 #define pmap_update(pmap)               /* nothing (yet) */  
   
 #define pmap_clear_modify(pg)           pmap_clear_attrs(pg, PG_M)  #define pmap_clear_modify(pg)           pmap_clear_attrs(pg, PG_M)
 #define pmap_clear_reference(pg)        pmap_clear_attrs(pg, PG_U)  #define pmap_clear_reference(pg)        pmap_clear_attrs(pg, PG_U)
Line 438  void  pmap_changeprot_local(vaddr_t, vm_
Line 442  void  pmap_changeprot_local(vaddr_t, vm_
   
 vaddr_t reserve_dumppages __P((vaddr_t)); /* XXX: not a pmap fn */  vaddr_t reserve_dumppages __P((vaddr_t)); /* XXX: not a pmap fn */
   
 void    pmap_tlb_shootdown __P((pmap_t, vaddr_t, pt_entry_t, int32_t *));  void    pmap_tlb_shootdown __P((pmap_t, vaddr_t, vaddr_t, pt_entry_t));
 void    pmap_tlb_shootnow __P((int32_t));  void    pmap_tlb_shootwait __P((void));
 void    pmap_do_tlb_shootdown __P((struct cpu_info *));  
 void    pmap_prealloc_lowmem_ptps __P((void));  void    pmap_prealloc_lowmem_ptps __P((void));
   
 #define PMAP_GROWKERNEL         /* turn on pmap_growkernel interface */  #define PMAP_GROWKERNEL         /* turn on pmap_growkernel interface */
Line 569  kvtopte(vaddr_t va)
Line 572  kvtopte(vaddr_t va)
 }  }
   
 #define pmap_pte_set(p, n)              x86_atomic_testset_u64(p, n)  #define pmap_pte_set(p, n)              x86_atomic_testset_u64(p, n)
   #define pmap_pte_setbits(p, b)          x86_atomic_setbits_u64(p, b)
 #define pmap_pte_clearbits(p, b)        x86_atomic_clearbits_u64(p, b)  #define pmap_pte_clearbits(p, b)        x86_atomic_clearbits_u64(p, b)
 #define pmap_cpu_has_pg_n()             (1)  #define pmap_cpu_has_pg_n()             (1)
 #define pmap_cpu_has_invlpg             (1)  #define pmap_cpu_has_invlpg             (1)
   
 paddr_t vtophys __P((vaddr_t));  paddr_t vtophys __P((vaddr_t));
 vaddr_t pmap_map __P((vaddr_t, paddr_t, paddr_t, vm_prot_t));  vaddr_t pmap_map __P((vaddr_t, paddr_t, paddr_t, vm_prot_t));
   void    pmap_cpu_init_early(struct cpu_info *);
   void    pmap_cpu_init_late(struct cpu_info *);
   void    sse2_zero_page(void *);
   void    sse2_copy_page(void *, void *);
   
 #if 0   /* XXXfvdl was USER_LDT, need to check if that can be supported */  #if 0   /* XXXfvdl was USER_LDT, need to check if that can be supported */
 void    pmap_ldt_cleanup __P((struct lwp *));  void    pmap_ldt_cleanup __P((struct lwp *));
 #define PMAP_FORK  #define PMAP_FORK
 #endif /* USER_LDT */  #endif /* USER_LDT */
   
   /*
    * TLB shootdown mailbox.
    */
   
   struct pmap_mbox {
           volatile void           *mb_pointer;
           volatile uintptr_t      mb_addr1;
           volatile uintptr_t      mb_addr2;
           volatile uintptr_t      mb_head;
           volatile uintptr_t      mb_tail;
           volatile uintptr_t      mb_global;
   };
   
 /*  /*
  * Hooks for the pool allocator.   * Hooks for the pool allocator.
  */   */
 #define POOL_VTOPHYS(va)        vtophys((vaddr_t) (va))  #define POOL_VTOPHYS(va)        vtophys((vaddr_t) (va))
   
   /*
    * TLB shootdown mailbox.
    */
   
   struct pmap_mbox {
           volatile void           *mb_pointer;
           volatile uintptr_t      mb_addr1;
           volatile uintptr_t      mb_addr2;
           volatile uintptr_t      mb_head;
           volatile uintptr_t      mb_tail;
           volatile uintptr_t      mb_global;
   };
   
 #endif /* _KERNEL && !_LOCORE */  #endif /* _KERNEL && !_LOCORE */
 #endif  /* _AMD64_PMAP_H_ */  #endif  /* _AMD64_PMAP_H_ */

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.10.4.5

CVSweb <webmaster@jp.NetBSD.org>