L_PTE_RDONLY
#define FIXMAP_PAGE_RO (FIXMAP_PAGE_NORMAL | L_PTE_RDONLY)
#define L_PTE_SWP_EXCLUSIVE L_PTE_RDONLY
#define __PAGE_NONE __pgprot(_L_PTE_DEFAULT | L_PTE_RDONLY | L_PTE_XN | L_PTE_NONE)
#define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
#define __PAGE_COPY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY)
#define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
#define __PAGE_READONLY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_RDONLY)
#define pte_write(pte) (pte_isclear((pte), L_PTE_RDONLY))
mask |= L_PTE_RDONLY;
return set_pte_bit(pte, __pgprot(L_PTE_RDONLY));
return clear_pte_bit(pte, __pgprot(L_PTE_RDONLY));
const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER |
#define PAGE_NONE _MOD_PROT(pgprot_user, L_PTE_XN | L_PTE_RDONLY | L_PTE_NONE)
#define PAGE_COPY _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
#define PAGE_COPY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
#define PAGE_READONLY _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY | L_PTE_XN)
#define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
pte = set_pte_bit(pte, __pgprot(L_PTE_RDONLY));
.mask = L_PTE_RDONLY,
.val = L_PTE_RDONLY,
| L_PTE_RDONLY)));
L_PTE_RDONLY,
L_PTE_USER | L_PTE_RDONLY,
L_PTE_XN | L_PTE_RDONLY,
__pgprot(L_PTE_RDONLY),
__pgprot(L_PTE_RDONLY));
(L_PTE_XN+L_PTE_USER+L_PTE_RDONLY+L_PTE_DIRTY+L_PTE_YOUNG+\