]> err.no Git - linux-2.6/blobdiff - include/asm-x86/pgtable_64.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[linux-2.6] / include / asm-x86 / pgtable_64.h
index 29fdeb8111bba2d761353e45aa1e945559d7c11e..7fd5e0e2361e001277f32ab9c85d0daf0aa64580 100644 (file)
@@ -21,10 +21,11 @@ extern pgd_t init_level4_pgt[];
 #define swapper_pg_dir init_level4_pgt
 
 extern void paging_init(void);
-extern void clear_kernel_mapping(unsigned long addr, unsigned long size);
 
 #endif /* !__ASSEMBLY__ */
 
+#define SHARED_KERNEL_PMD      1
+
 /*
  * PGDIR_SHIFT determines what a top-level page table entry can map
  */
@@ -76,6 +77,11 @@ static inline void native_set_pte(pte_t *ptep, pte_t pte)
        *ptep = pte;
 }
 
+static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
+{
+       native_set_pte(ptep, pte);
+}
+
 static inline pte_t native_ptep_get_and_clear(pte_t *xp)
 {
 #ifdef CONFIG_SMP
@@ -120,8 +126,6 @@ static inline void native_pgd_clear(pgd_t * pgd)
 
 #define pte_same(a, b)         ((a).pte == (b).pte)
 
-#define pte_pgprot(a)  (__pgprot((a).pte & ~PHYSICAL_PAGE_MASK))
-
 #endif /* !__ASSEMBLY__ */
 
 #define PMD_SIZE       (_AC(1,UL) << PMD_SHIFT)
@@ -194,6 +198,12 @@ static inline unsigned long pmd_bad(pmd_t pmd)
 #define pud_offset(pgd, address) ((pud_t *) pgd_page_vaddr(*(pgd)) + pud_index(address))
 #define pud_present(pud) (pud_val(pud) & _PAGE_PRESENT)
 
+static inline int pud_large(pud_t pte)
+{
+       return (pud_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) ==
+               (_PAGE_PSE|_PAGE_PRESENT);
+}
+
 /* PMD  - Level 2 access */
 #define pmd_page_vaddr(pmd) ((unsigned long) __va(pmd_val(pmd) & PTE_MASK))
 #define pmd_page(pmd)          (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
@@ -235,12 +245,8 @@ static inline unsigned long pmd_bad(pmd_t pmd)
 #define __pte_to_swp_entry(pte)                ((swp_entry_t) { pte_val(pte) })
 #define __swp_entry_to_pte(x)          ((pte_t) { .pte = (x).val })
 
-extern spinlock_t pgd_lock;
-extern struct list_head pgd_list;
-
 extern int kern_addr_valid(unsigned long addr); 
-
-pte_t *lookup_address(unsigned long addr);
+extern void cleanup_highmap(void);
 
 #define io_remap_pfn_range(vma, vaddr, pfn, size, prot)                \
                remap_pfn_range(vma, vaddr, pfn, size, prot)