Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4614139c6a74fe02c85f702ba9c0e57f8e38647e
Commit:     4614139c6a74fe02c85f702ba9c0e57f8e38647e
Parent:     e8a4852453c5af27d2a9c606e76809afa3dedb64
Author:     Jeremy Fitzhardinge <[EMAIL PROTECTED]>
AuthorDate: Wed Jan 30 13:32:56 2008 +0100
Committer:  Ingo Molnar <[EMAIL PROTECTED]>
CommitDate: Wed Jan 30 13:32:56 2008 +0100

    x86/pgtable: unify pagetable accessors, #6
    
    Unify functions to test and set bits in pagetable entries.
    
    NOP: only moves existing code around, without any change to it.
    
    Signed-off-by: Jeremy Fitzhardinge <[EMAIL PROTECTED]>
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
---
 include/asm-x86/pgtable.h    |   28 ++++++++++++++++++++++++++++
 include/asm-x86/pgtable_32.h |   28 ----------------------------
 include/asm-x86/pgtable_64.h |   32 --------------------------------
 3 files changed, 28 insertions(+), 60 deletions(-)

diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index 73e2b47..4c03ff2 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -115,6 +115,34 @@ extern unsigned long long __PAGE_KERNEL, 
__PAGE_KERNEL_EXEC;
 #define __S110 PAGE_SHARED_EXEC
 #define __S111 PAGE_SHARED_EXEC
 
+#ifndef __ASSEMBLY__
+/*
+ * The following only work if pte_present() is true.
+ * Undefined behaviour if not..
+ */
+static inline int pte_dirty(pte_t pte)         { return pte_val(pte) & 
_PAGE_DIRTY; }
+static inline int pte_young(pte_t pte)         { return pte_val(pte) & 
_PAGE_ACCESSED; }
+static inline int pte_write(pte_t pte)         { return pte_val(pte) & 
_PAGE_RW; }
+static inline int pte_file(pte_t pte)          { return pte_val(pte) & 
_PAGE_FILE; }
+static inline int pte_huge(pte_t pte)          { return pte_val(pte) & 
_PAGE_PSE; }
+
+static inline int pmd_large(pmd_t pte) {
+       return (pmd_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) ==
+               (_PAGE_PSE|_PAGE_PRESENT);
+}
+
+static inline pte_t pte_mkclean(pte_t pte)     { return __pte(pte_val(pte) & 
~_PAGE_DIRTY); }
+static inline pte_t pte_mkold(pte_t pte)       { return __pte(pte_val(pte) & 
~_PAGE_ACCESSED); }
+static inline pte_t pte_wrprotect(pte_t pte)   { return __pte(pte_val(pte) & 
~_PAGE_RW); }
+static inline pte_t pte_mkexec(pte_t pte)      { return __pte(pte_val(pte) & 
~_PAGE_NX); }
+static inline pte_t pte_mkdirty(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_DIRTY); }
+static inline pte_t pte_mkyoung(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_ACCESSED); }
+static inline pte_t pte_mkwrite(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_RW); }
+static inline pte_t pte_mkhuge(pte_t pte)      { return __pte(pte_val(pte) | 
_PAGE_PSE); }
+static inline pte_t pte_clrhuge(pte_t pte)     { return __pte(pte_val(pte) & 
~_PAGE_PSE); }
+
+#endif /* __ASSEMBLY__ */
+
 #ifdef CONFIG_X86_32
 # include "pgtable_32.h"
 #else
diff --git a/include/asm-x86/pgtable_32.h b/include/asm-x86/pgtable_32.h
index 1c43c30..0aaefdd 100644
--- a/include/asm-x86/pgtable_32.h
+++ b/include/asm-x86/pgtable_32.h
@@ -101,31 +101,6 @@ extern unsigned long pg0[];
 
 #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
 
-/*
- * The following only work if pte_present() is true.
- * Undefined behaviour if not..
- */
-static inline int pte_dirty(pte_t pte)         { return pte_val(pte) & 
_PAGE_DIRTY; }
-static inline int pte_young(pte_t pte)         { return pte_val(pte) & 
_PAGE_ACCESSED; }
-static inline int pte_write(pte_t pte)         { return pte_val(pte) & 
_PAGE_RW; }
-static inline int pte_file(pte_t pte)          { return pte_val(pte) & 
_PAGE_FILE; }
-static inline int pte_huge(pte_t pte)          { return pte_val(pte) & 
_PAGE_PSE; }
-
-static inline int pmd_large(pmd_t pte) {
-       return (pmd_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) ==
-               (_PAGE_PSE|_PAGE_PRESENT);
-}
-
-static inline pte_t pte_mkclean(pte_t pte)     { return __pte(pte_val(pte) & 
~_PAGE_DIRTY); }
-static inline pte_t pte_mkold(pte_t pte)       { return __pte(pte_val(pte) & 
~_PAGE_ACCESSED); }
-static inline pte_t pte_wrprotect(pte_t pte)   { return __pte(pte_val(pte) & 
~_PAGE_RW); }
-static inline pte_t pte_mkexec(pte_t pte)      { return __pte(pte_val(pte) & 
~_PAGE_NX); }
-static inline pte_t pte_mkdirty(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_DIRTY); }
-static inline pte_t pte_mkyoung(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_ACCESSED); }
-static inline pte_t pte_mkwrite(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_RW); }
-static inline pte_t pte_mkhuge(pte_t pte)      { return __pte(pte_val(pte) | 
_PAGE_PSE); }
-static inline pte_t pte_clrhuge(pte_t pte)     { return __pte(pte_val(pte) & 
~_PAGE_PSE); }
-
 #ifdef CONFIG_X86_PAE
 # include <asm/pgtable-3level.h>
 #else
@@ -276,9 +251,6 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
        return pte;
 }
 
-#define pmd_large(pmd) \
-((pmd_val(pmd) & (_PAGE_PSE|_PAGE_PRESENT)) == (_PAGE_PSE|_PAGE_PRESENT))
-
 /*
  * the pgd page can be thought of an array like this: pgd_t[PTRS_PER_PGD]
  *
diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h
index 3a05880..84f47f9 100644
--- a/include/asm-x86/pgtable_64.h
+++ b/include/asm-x86/pgtable_64.h
@@ -173,34 +173,6 @@ static inline pte_t pfn_pte(unsigned long page_nr, 
pgprot_t pgprot)
        pte_val(pte) &= __supported_pte_mask;
        return pte;
 }
-
-/*
- * The following only work if pte_present() is true.
- * Undefined behaviour if not..
- */
-#define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT)
-
-static inline int pte_dirty(pte_t pte)         { return pte_val(pte) & 
_PAGE_DIRTY; }
-static inline int pte_young(pte_t pte)         { return pte_val(pte) & 
_PAGE_ACCESSED; }
-static inline int pte_write(pte_t pte)         { return pte_val(pte) & 
_PAGE_RW; }
-static inline int pte_file(pte_t pte)          { return pte_val(pte) & 
_PAGE_FILE; }
-static inline int pte_huge(pte_t pte)          { return pte_val(pte) & 
_PAGE_PSE; }
-
-static inline int pmd_large(pmd_t pte) {
-       return (pmd_val(pte) & (_PAGE_PSE|_PAGE_PRESENT)) ==
-               (_PAGE_PSE|_PAGE_PRESENT);
-}
-
-static inline pte_t pte_mkclean(pte_t pte)     { return __pte(pte_val(pte) & 
~_PAGE_DIRTY); }
-static inline pte_t pte_mkold(pte_t pte)       { return __pte(pte_val(pte) & 
~_PAGE_ACCESSED); }
-static inline pte_t pte_wrprotect(pte_t pte)   { return __pte(pte_val(pte) & 
~_PAGE_RW); }
-static inline pte_t pte_mkexec(pte_t pte)      { return __pte(pte_val(pte) & 
~_PAGE_NX); }
-static inline pte_t pte_mkdirty(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_DIRTY); }
-static inline pte_t pte_mkyoung(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_ACCESSED); }
-static inline pte_t pte_mkwrite(pte_t pte)     { return __pte(pte_val(pte) | 
_PAGE_RW); }
-static inline pte_t pte_mkhuge(pte_t pte)      { return __pte(pte_val(pte) | 
_PAGE_PSE); }
-static inline pte_t pte_clrhuge(pte_t pte)     { return __pte(pte_val(pte) & 
~_PAGE_PSE); }
-
 struct vm_area_struct;
 
 static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, 
unsigned long addr, pte_t *ptep)
@@ -220,10 +192,6 @@ static inline void ptep_set_wrprotect(struct mm_struct 
*mm, unsigned long addr,
  */
 #define pgprot_noncached(prot) (__pgprot(pgprot_val(prot) | _PAGE_PCD | 
_PAGE_PWT))
 
-static inline int pmd_large(pmd_t pte) { 
-       return (pmd_val(pte) & __LARGE_PTE) == __LARGE_PTE; 
-}      
-
 
 /*
  * Conversion functions: convert a page and protection to a page entry,
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to