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

    x86/pgtable: unify pagetable accessors, #1
    
    based on:
    
     Subject: x86/pgtable: unify pagetable accessors
     From: Jeremy Fitzhardinge <[EMAIL PROTECTED]>
    
    Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>
    Signed-off-by: Thomas Gleixner <[EMAIL PROTECTED]>
---
 include/asm-x86/pgtable_64.h |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/include/asm-x86/pgtable_64.h b/include/asm-x86/pgtable_64.h
index 93eb4df..3a05880 100644
--- a/include/asm-x86/pgtable_64.h
+++ b/include/asm-x86/pgtable_64.h
@@ -179,21 +179,27 @@ static inline pte_t pfn_pte(unsigned long page_nr, 
pgprot_t pgprot)
  * 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 pte_t pte_mkclean(pte_t pte)     { set_pte(&pte, 
__pte(pte_val(pte) & ~_PAGE_DIRTY)); return pte; }
-static inline pte_t pte_mkold(pte_t pte)       { set_pte(&pte, 
__pte(pte_val(pte) & ~_PAGE_ACCESSED)); return pte; }
-static inline pte_t pte_wrprotect(pte_t pte)   { set_pte(&pte, 
__pte(pte_val(pte) & ~_PAGE_RW)); return pte; }
-static inline pte_t pte_mkexec(pte_t pte)      { set_pte(&pte, 
__pte(pte_val(pte) & ~_PAGE_NX)); return pte; }
-static inline pte_t pte_mkdirty(pte_t pte)     { set_pte(&pte, 
__pte(pte_val(pte) | _PAGE_DIRTY)); return pte; }
-static inline pte_t pte_mkyoung(pte_t pte)     { set_pte(&pte, 
__pte(pte_val(pte) | _PAGE_ACCESSED)); return pte; }
-static inline pte_t pte_mkwrite(pte_t pte)     { set_pte(&pte, 
__pte(pte_val(pte) | _PAGE_RW)); return pte; }
-static inline pte_t pte_mkhuge(pte_t pte)      { set_pte(&pte, 
__pte(pte_val(pte) | _PAGE_PSE)); return pte; }
-static inline pte_t pte_clrhuge(pte_t pte)     { set_pte(&pte, 
__pte(pte_val(pte) & ~_PAGE_PSE)); return pte; }
+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;
 
-
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