|
@@ -247,6 +247,7 @@ static inline pte_t pfn_pte(unsigned long page_nr, pgprot_t pgprot)
|
|
* The following only work if pte_present() is true.
|
|
* The following only work if pte_present() is true.
|
|
* Undefined behaviour if not..
|
|
* Undefined behaviour if not..
|
|
*/
|
|
*/
|
|
|
|
+#define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT)
|
|
static inline int pte_user(pte_t pte) { return pte_val(pte) & _PAGE_USER; }
|
|
static inline int pte_user(pte_t pte) { return pte_val(pte) & _PAGE_USER; }
|
|
extern inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_USER; }
|
|
extern inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_USER; }
|
|
extern inline int pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_USER; }
|
|
extern inline int pte_exec(pte_t pte) { return pte_val(pte) & _PAGE_USER; }
|
|
@@ -254,8 +255,8 @@ extern inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; }
|
|
extern inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
|
|
extern inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
|
|
extern inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_RW; }
|
|
extern 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_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; }
|
|
|
|
+static inline int pte_huge(pte_t pte) { return (pte_val(pte) & __LARGE_PTE) == __LARGE_PTE; }
|
|
|
|
|
|
-#define __LARGE_PTE (_PAGE_PSE|_PAGE_PRESENT)
|
|
|
|
extern inline pte_t pte_rdprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_USER)); return pte; }
|
|
extern inline pte_t pte_rdprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_USER)); return pte; }
|
|
extern inline pte_t pte_exprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_USER)); return pte; }
|
|
extern inline pte_t pte_exprotect(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_USER)); return pte; }
|
|
extern inline pte_t pte_mkclean(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); return pte; }
|
|
extern inline pte_t pte_mkclean(pte_t pte) { set_pte(&pte, __pte(pte_val(pte) & ~_PAGE_DIRTY)); return pte; }
|