_PAGE_USER
#define PAGE_NONE __pgprot(_PAGE_PRESENT | _PAGE_USER | \
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | \
#define PAGE_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | \
((pte_val(pte) & (_PAGE_EXECUTE | _PAGE_USER)) == \
(_PAGE_EXECUTE | _PAGE_USER))
[VM_NONE] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_WRITE] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_WRITE | VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_EXEC] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_EXEC | VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_EXEC | VM_WRITE] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_EXEC | VM_WRITE | VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED | VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED | VM_WRITE] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED | VM_WRITE | VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED | VM_EXEC] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED | VM_EXEC | VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED | VM_EXEC | VM_WRITE] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
[VM_SHARED | VM_EXEC | VM_WRITE | VM_READ] = __pgprot(_PAGE_PRESENT | _PAGE_USER |
_PAGE_USER | _CACHE_CC)
_PAGE_USER | _CACHE_CC)
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _CACHE_CC)
[VM_NONE] = __pgprot(_CACHE_CC | _PAGE_USER |
_PAGE_USER | _PAGE_PRESENT |
_PAGE_USER | _PAGE_PRESENT |
_PAGE_USER | _PAGE_PRESENT |
_PAGE_USER | _PAGE_PRESENT),
_PAGE_USER | _PAGE_PRESENT),
_PAGE_USER | _PAGE_PRESENT),
_PAGE_USER | _PAGE_PRESENT),
[VM_SHARED] = __pgprot(_CACHE_CC | _PAGE_USER |
_PAGE_USER | _PAGE_PRESENT |
_PAGE_USER | _PAGE_PRESENT |
_PAGE_USER | _PAGE_PRESENT |
_PAGE_USER | _PAGE_PRESENT),
_PAGE_USER | _PAGE_PRESENT),
_PAGE_USER | _PAGE_PRESENT |
_PAGE_USER | _PAGE_PRESENT |
#define PAGE_READONLY __pgprot(_PAGE_BASE | _PAGE_USER)
#define PAGE_READONLY_X __pgprot(_PAGE_BASE | _PAGE_USER | _PAGE_EXEC)
#define PAGE_SHARED __pgprot(_PAGE_BASE | _PAGE_USER | _PAGE_RW)
__pgprot(_PAGE_BASE | _PAGE_USER | _PAGE_RW | _PAGE_EXEC)
#define PAGE_COPY __pgprot(_PAGE_BASE | _PAGE_USER)
#define PAGE_COPY_X __pgprot(_PAGE_BASE | _PAGE_USER | _PAGE_EXEC)
static inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_USER; }
{ pte_val(pte) &= ~_PAGE_USER; return pte; }
{ pte_val(pte) |= _PAGE_USER; return pte; }
{ pte_val(pte) |= _PAGE_USER | _PAGE_EXEC; return pte; }
f |= _PAGE_USER;
#define PAGE_NONE __pgprot(_PAGE_PRESENT | _PAGE_USER)
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE)
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ)
#define PAGE_WRITEONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_WRITE)
#define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC)
#define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)
#define PAGE_GATEWAY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_GATEWAY| _PAGE_READ)
#define pte_user(x) (pte_val(x) & _PAGE_USER)
_PAGE_USER | _PAGE_GLOBAL))
_PAGE_USER | _PAGE_GLOBAL | \
return pud_val(pud) & _PAGE_USER;
_PAGE_USER : 0)
#define _PAGE_BASE (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_USER)
return pte_val(pte) & _PAGE_USER;
.mask = _PAGE_USER,
u64 prot = _PAGE_PRESENT | _PAGE_USER;
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | \
#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_CACHABLE | \
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_CACHABLE | \
#define _PAGE_SWP_EXCLUSIVE _PAGE_USER
#define _PAGE_PR_MASK (_PAGE_RW | _PAGE_USER)
return (pgprot_val(prot) & _PAGE_USER) == 0;
#define pud_bad(x) ((pud_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
#define p4d_bad(x) ((p4d_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
pte_set_bits(pte, _PAGE_USER);
#define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED | _PAGE_DIRTY)
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED)
#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
#define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
set_pgd(pgd, __pgd(pgd_val(*pgd) | _PAGE_USER));
set_p4d(p4d, __p4d(p4d_val(*p4d) | _PAGE_USER));
set_pud(pud, __pud(pud_val(*pud) | _PAGE_USER));
set_pmd(pmd, __pmd(pmd_val(*pmd) | _PAGE_USER));
return (pmd_flags(pmd) & ~(_PAGE_USER | _PAGE_ACCESSED)) !=
return (pud_flags(pud) & ~(_KERNPG_TABLE | _PAGE_USER)) != 0;
unsigned long ignore_flags = _KERNPG_TABLE | _PAGE_USER;
unsigned long ignore_flags = _PAGE_USER;
unsigned long need_pte_bits = _PAGE_PRESENT|_PAGE_USER;
return (pte_val(pte) & _PAGE_PRESENT) && (pte_val(pte) & _PAGE_USER);
return pmd_leaf(pmd) && (pmd_val(pmd) & _PAGE_PRESENT) && (pmd_val(pmd) & _PAGE_USER);
return pud_leaf(pud) && (pud_val(pud) & _PAGE_PRESENT) && (pud_val(pud) & _PAGE_USER);
#define _PAGE_SWP_UFFD_WP _PAGE_USER
#define _USR _PAGE_USER
const pteval_t flush_on_change = _PAGE_RW | _PAGE_USER | _PAGE_PWT |
tmp = (i << 22) + (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER |
if (pr & _PAGE_USER)
effective = (higher_prot & prot & (_PAGE_USER | _PAGE_RW)) |
(pgd_flags(*pgd) & _PAGE_USER) &&
_PAGE_USER));
_PAGE_USER));
_PAGE_USER));
if ((pgd.pgd & (_PAGE_USER|_PAGE_PRESENT)) == (_PAGE_USER|_PAGE_PRESENT) &&
if (pte_flags(*pte) & _PAGE_USER) {
#define PAGE_NONE __pgprot(_PAGE_NONE | _PAGE_USER)
#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_USER)
#define PAGE_COPY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_HW_EXEC)
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_USER)
#define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_HW_EXEC)
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_WRITABLE)
__pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_WRITABLE | _PAGE_HW_EXEC)
# define pte_none(pte) (pte_val(pte) == (_PAGE_CA_INVALID | _PAGE_USER))
do { update_pte(ptep, __pte(_PAGE_CA_INVALID | _PAGE_USER)); } while (0)
_PAGE_CA_INVALID | _PAGE_USER})
prot_bits = _PAGE_PRESENT | __READABLE | __WRITEABLE | _CACHE_CC | _PAGE_USER;