include/asm-generic/pgtable.h
changeset 2 d1f6d8b6f81c
parent 0 aa628870c1d3
equal deleted inserted replaced
1:0056487c491e 2:d1f6d8b6f81c
   125 #define pgd_offset_gate(mm, addr)	pgd_offset(mm, addr)
   125 #define pgd_offset_gate(mm, addr)	pgd_offset(mm, addr)
   126 #endif
   126 #endif
   127 
   127 
   128 #ifndef __HAVE_ARCH_MOVE_PTE
   128 #ifndef __HAVE_ARCH_MOVE_PTE
   129 #define move_pte(pte, prot, old_addr, new_addr)	(pte)
   129 #define move_pte(pte, prot, old_addr, new_addr)	(pte)
       
   130 #endif
       
   131 
       
   132 #ifndef pgprot_writecombine
       
   133 #define pgprot_writecombine pgprot_noncached
   130 #endif
   134 #endif
   131 
   135 
   132 /*
   136 /*
   133  * When walking page tables, get the address of the next boundary,
   137  * When walking page tables, get the address of the next boundary,
   134  * or the end address of the range if that comes earlier.  Although no
   138  * or the end address of the range if that comes earlier.  Although no
   287 #define arch_enter_lazy_cpu_mode()	do {} while (0)
   291 #define arch_enter_lazy_cpu_mode()	do {} while (0)
   288 #define arch_leave_lazy_cpu_mode()	do {} while (0)
   292 #define arch_leave_lazy_cpu_mode()	do {} while (0)
   289 #define arch_flush_lazy_cpu_mode()	do {} while (0)
   293 #define arch_flush_lazy_cpu_mode()	do {} while (0)
   290 #endif
   294 #endif
   291 
   295 
       
   296 #ifndef __HAVE_PFNMAP_TRACKING
       
   297 /*
       
   298  * Interface that can be used by architecture code to keep track of
       
   299  * memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
       
   300  *
       
   301  * track_pfn_vma_new is called when a _new_ pfn mapping is being established
       
   302  * for physical range indicated by pfn and size.
       
   303  */
       
   304 static inline int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot,
       
   305 					unsigned long pfn, unsigned long size)
       
   306 {
       
   307 	return 0;
       
   308 }
       
   309 
       
   310 /*
       
   311  * Interface that can be used by architecture code to keep track of
       
   312  * memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
       
   313  *
       
   314  * track_pfn_vma_copy is called when vma that is covering the pfnmap gets
       
   315  * copied through copy_page_range().
       
   316  */
       
   317 static inline int track_pfn_vma_copy(struct vm_area_struct *vma)
       
   318 {
       
   319 	return 0;
       
   320 }
       
   321 
       
   322 /*
       
   323  * Interface that can be used by architecture code to keep track of
       
   324  * memory type of pfn mappings (remap_pfn_range, vm_insert_pfn)
       
   325  *
       
   326  * untrack_pfn_vma is called while unmapping a pfnmap for a region.
       
   327  * untrack can be called for a specific region indicated by pfn and size or
       
   328  * can be for the entire vma (in which case size can be zero).
       
   329  */
       
   330 static inline void untrack_pfn_vma(struct vm_area_struct *vma,
       
   331 					unsigned long pfn, unsigned long size)
       
   332 {
       
   333 }
       
   334 #else
       
   335 extern int track_pfn_vma_new(struct vm_area_struct *vma, pgprot_t *prot,
       
   336 				unsigned long pfn, unsigned long size);
       
   337 extern int track_pfn_vma_copy(struct vm_area_struct *vma);
       
   338 extern void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
       
   339 				unsigned long size);
       
   340 #endif
       
   341 
   292 #endif /* !__ASSEMBLY__ */
   342 #endif /* !__ASSEMBLY__ */
   293 
   343 
   294 #endif /* _ASM_GENERIC_PGTABLE_H */
   344 #endif /* _ASM_GENERIC_PGTABLE_H */