|
@@ -215,11 +215,13 @@ extern unsigned long pg0[];
|
|
|
* The following only work if pte_present() is true.
|
|
|
* Undefined behaviour if not..
|
|
|
*/
|
|
|
+#define __LARGE_PTE (_PAGE_PSE | _PAGE_PRESENT)
|
|
|
static inline int pte_user(pte_t pte) { return (pte).pte_low & _PAGE_USER; }
|
|
|
static inline int pte_read(pte_t pte) { return (pte).pte_low & _PAGE_USER; }
|
|
|
static inline int pte_dirty(pte_t pte) { return (pte).pte_low & _PAGE_DIRTY; }
|
|
|
static inline int pte_young(pte_t pte) { return (pte).pte_low & _PAGE_ACCESSED; }
|
|
|
static inline int pte_write(pte_t pte) { return (pte).pte_low & _PAGE_RW; }
|
|
|
+static inline int pte_huge(pte_t pte) { return ((pte).pte_low & __LARGE_PTE) == __LARGE_PTE; }
|
|
|
|
|
|
/*
|
|
|
* The following only works if pte_present() is not true.
|
|
@@ -236,7 +238,7 @@ static inline pte_t pte_mkexec(pte_t pte) { (pte).pte_low |= _PAGE_USER; return
|
|
|
static inline pte_t pte_mkdirty(pte_t pte) { (pte).pte_low |= _PAGE_DIRTY; return pte; }
|
|
|
static inline pte_t pte_mkyoung(pte_t pte) { (pte).pte_low |= _PAGE_ACCESSED; return pte; }
|
|
|
static inline pte_t pte_mkwrite(pte_t pte) { (pte).pte_low |= _PAGE_RW; return pte; }
|
|
|
-static inline pte_t pte_mkhuge(pte_t pte) { (pte).pte_low |= _PAGE_PRESENT | _PAGE_PSE; return pte; }
|
|
|
+static inline pte_t pte_mkhuge(pte_t pte) { (pte).pte_low |= __LARGE_PTE; return pte; }
|
|
|
|
|
|
#ifdef CONFIG_X86_PAE
|
|
|
# include <asm/pgtable-3level.h>
|