_PAGE_WRITE
#define PTE_BITS_RWX (_PAGE_EXECUTE | _PAGE_WRITE | _PAGE_READ)
#define PAGE_U_W_R __pgprot(___DEF | _PAGE_READ | _PAGE_WRITE)
| _PAGE_READ | _PAGE_WRITE | _PAGE_EXECUTE)
| _PAGE_READ | _PAGE_WRITE | _PAGE_EXECUTE)
#define pte_write(pte) (pte_val(pte) & _PAGE_WRITE)
PTE_BIT_FUNC(wrprotect, &= ~(_PAGE_WRITE));
PTE_BIT_FUNC(mkwrite_novma, |= (_PAGE_WRITE));
#define _PAGE_PROT_NONE _PAGE_WRITE
return (pte).pte_low & _PAGE_WRITE;
pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_DIRTY);
pte_val(pte) |= _PAGE_WRITE;
if (pte_val(pte) & _PAGE_WRITE)
#define PAGE_WRITE __pgprot(_PAGE_BASE | _PAGE_READ | _PAGE_WRITE | \
_PAGE_WRITE | _PAGE_DIRTY | _PAGE_MODIFIED | \
_PAGE_WRITE | _PAGE_DIRTY | _PAGE_MODIFIED | \
(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \
#define _PAGE_IOREMAP (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \
_PAGE_EXECUTE | _PAGE_WRITE | _dflt_cache_att)
_PAGE_WRITE | _PAGE_EXECUTE | _dflt_cache_att)
pte_val(pte) &= ~_PAGE_WRITE;
pte_val(pte) |= _PAGE_WRITE;
return pte_val(pte) & _PAGE_WRITE;
_PAGE_WRITE | CACHEDEF),
_PAGE_READ | _PAGE_WRITE |
_PAGE_EXECUTE | _PAGE_WRITE |
_PAGE_WRITE | CACHEDEF)
#define __WRITEABLE (_PAGE_DIRTY | _PAGE_WRITE)
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_WRITE | \
static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; }
if (pte_val(pte) & _PAGE_WRITE)
pte_val(pte) |= _PAGE_WRITE;
pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_DIRTY);
return !!(pmd_val(pmd) & _PAGE_WRITE);
pmd_val(pmd) |= _PAGE_WRITE;
pmd_val(pmd) &= ~(_PAGE_WRITE | _PAGE_DIRTY);
if (pmd_val(pmd) & _PAGE_WRITE)
_PAGE_NO_EXEC | _PAGE_WRITE),
_PAGE_NO_EXEC | _PAGE_WRITE),
_PAGE_WRITE),
_PAGE_WRITE)
return __set_memory(addr, numpages, __pgprot(0), __pgprot(_PAGE_WRITE | _PAGE_DIRTY));
return __set_memory(addr, numpages, __pgprot(_PAGE_WRITE | _PAGE_DIRTY), __pgprot(0));
#define __WRITEABLE (_PAGE_SILENT_WRITE | _PAGE_WRITE | _PAGE_MODIFIED)
static inline int pte_write(pte_t pte) { return pte.pte_low & _PAGE_WRITE; }
pte.pte_low &= ~_PAGE_WRITE;
pte.pte_low |= _PAGE_WRITE;
if (pte.pte_low & _PAGE_WRITE) {
static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; }
pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE);
pte_val(pte) |= _PAGE_WRITE;
if (pte_val(pte) & _PAGE_WRITE)
return !!(pmd_val(pmd) & _PAGE_WRITE);
pmd_val(pmd) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE);
pmd_val(pmd) |= _PAGE_WRITE;
if (pmd_val(pmd) & _PAGE_WRITE)
prot_bits |= _PAGE_WRITE;
protection_map[10] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE |
protection_map[11] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE);
protection_map[14] = PM(_PAGE_PRESENT | _PAGE_WRITE);
protection_map[15] = PM(_PAGE_PRESENT | _PAGE_WRITE);
(_PAGE_PRESENT | _PAGE_WRITE) >> _PAGE_PRESENT_SHIFT);
(_PAGE_PRESENT | _PAGE_WRITE) >> _PAGE_PRESENT_SHIFT);
uasm_il_bbit0(p, r, pte, ilog2(_PAGE_WRITE), lid);
pte_val(pte) &= ~_PAGE_WRITE;
pte_val(pte) |= _PAGE_WRITE;
const unsigned long mask = _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC;
((w) ? _PAGE_WRITE : 0))
_PAGE_WRITE | _PAGE_EXEC | _PAGE_GLOBAL)
_PAGE_WRITE | _PAGE_ACCESSED)
{ return pte_val(pte) & _PAGE_WRITE; }
| _PAGE_WRITE | flags);
(tlbacc & _PAGE_WRITE ? 'w' : '-'),
static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; }
pte_val(pte) &= ~(_PAGE_WRITE);
pte_val(pte) |= _PAGE_WRITE;
#define _PAGE_RW (_PAGE_READ | _PAGE_WRITE)
#define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | _PAGE_DIRTY | _PAGE_ACCESSED)
#define _PAGE_KERNEL_RWX (_PAGE_KERNEL_EXEC | _PAGE_WRITE)
#define _PAGE_KERNEL (_PAGE_KERNEL_RO | _PAGE_WRITE)
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE)
#define PAGE_WRITEONLY __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_WRITE)
#define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)
static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; }
static inline pte_t pte_wrprotect(pte_t pte) { pte_val(pte) &= ~_PAGE_WRITE; return pte; }
static inline pte_t pte_mkwrite_novma(pte_t pte) { pte_val(pte) |= _PAGE_WRITE; return pte; }
pte_update(mm, addr, ptep, _PAGE_WRITE, 0, 0);
return !!(pte_val(pte) & _PAGE_WRITE);
return __pte(pte_val(pte) & ~_PAGE_WRITE);
mask = cpu_to_be64(_PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_READ | _PAGE_WRITE |
pmd_hugepage_update(mm, addr, pmdp, _PAGE_WRITE, 0);
pud_hugepage_update(mm, addr, pudp, _PAGE_WRITE, 0);
if ((!(old_val & _PAGE_WRITE)) && (new_val & _PAGE_WRITE))
return !!(pte_raw(pte) & cpu_to_be64(_PAGE_WRITE));
pte_update(mm, addr, ptep, _PAGE_WRITE, 0, 0);
pte_update(mm, addr, ptep, _PAGE_WRITE, 0, 1);
return __pte_raw(pte_raw(pte) & cpu_to_be64(~_PAGE_WRITE));
pte_update(mm, addr, ptep, _PAGE_WRITE, 0, 1);
pte_update(mm, addr, ptep, _PAGE_WRITE, 0, 0);
return __pte(pte_val(pte) & ~_PAGE_WRITE);
return pte_val(pte) & _PAGE_WRITE;
#define _PAGE_RW (_PAGE_READ | _PAGE_WRITE)
#define _PAGE_RWX (_PAGE_READ | _PAGE_WRITE | _PAGE_BAP_UX)
#define _PAGE_RW (_PAGE_READ | _PAGE_WRITE)
#define _PAGE_RWX (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)
gpte->may_write = !!(pte & _PAGE_WRITE);
#define PTE_BITS_MUST_MATCH (~(_PAGE_WRITE | _PAGE_DIRTY | _PAGE_ACCESSED))
if (pte_val(pte) & _PAGE_WRITE)
pte = __pte(pte_val(pte) & ~(_PAGE_WRITE | _PAGE_DIRTY));
if (!ret && (pte_val(pte) & _PAGE_WRITE))
if (!pte_present(pte) || (writing && !(pte_val(pte) & _PAGE_WRITE))) {
perm |= gpte.may_write ? 0UL : _PAGE_WRITE;
wimgxpp |= (flags & _PAGE_WRITE) ? BPP_RW : BPP_RX;
if (access & _PAGE_WRITE)
if (access & _PAGE_WRITE)
if (access & _PAGE_WRITE)
if (access & _PAGE_WRITE)
spp = ((spp & 2) ? _PAGE_RWX : 0) | ((spp & 1) ? _PAGE_WRITE : 0);
access |= _PAGE_WRITE;
if (!(pteflags & _PAGE_WRITE)) {
if (!((pteflags & _PAGE_WRITE) && (pteflags & _PAGE_DIRTY)))
if ((access & _PAGE_WRITE) && !(old_pte & _PAGE_DIRTY))
if (access & _PAGE_WRITE)
radix__change_memory_range(start, end, _PAGE_WRITE);
radix__change_memory_range(start, end, _PAGE_WRITE);
TLBCAM[index].MAS3 |= (flags & _PAGE_WRITE) ? MAS3_SW : 0;
TLBCAM[index].MAS3 |= (flags & _PAGE_WRITE) ? MAS3_UW : 0;
.mask = _PAGE_WRITE,
.val = _PAGE_WRITE,
.mask = _PAGE_WRITE,
access |= (dsisr & MFC_DSISR_ACCESS_PUT) ? _PAGE_WRITE : 0UL;
_PAGE_WRITE | _PAGE_EXEC | \
_PAGE_WRITE | _PAGE_EXEC | \
#define _PAGE_LEAF (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC)
#define PAGE_WRITE __pgprot(_PAGE_BASE | _PAGE_READ | _PAGE_WRITE)
_PAGE_EXEC | _PAGE_WRITE)
#define PAGE_SHADOWSTACK __pgprot(_PAGE_BASE | _PAGE_WRITE)
| _PAGE_WRITE \
#define PAGE_KERNEL_READ __pgprot(_PAGE_KERNEL & ~_PAGE_WRITE)
#define PAGE_KERNEL_READ_EXEC __pgprot((_PAGE_KERNEL & ~_PAGE_WRITE) \
return pte_val(pte) & _PAGE_WRITE;
return __pte((pte_val(pte) & ~(_PAGE_WRITE)) | (_PAGE_READ));
return __pte(pte_val(pte) | _PAGE_WRITE);
return __pte((pte_val(pte) & ~(_PAGE_LEAF)) | _PAGE_WRITE);
((pte_val(read_pte) & ~(unsigned long)_PAGE_WRITE) | _PAGE_READ));
return __pmd((pmd_val(pte) & ~(_PAGE_LEAF)) | _PAGE_WRITE);
val = pte_val(pte) & ~_PAGE_WRITE;
ret = temp_pgtable_mapping(resume_pg_dir, start, end, __pgprot(_PAGE_WRITE | _PAGE_EXEC));
ret = temp_pgtable_mapping(resume_pg_dir, start, end, __pgprot(_PAGE_WRITE));
(pte_val(*(__ptep)) & (_PAGE_READ | _PAGE_WRITE | _PAGE_EXEC))
set_pte(ptep, __pte(pte_val(ptep_get(ptep)) & ~_PAGE_WRITE));
return __set_memory(addr, numpages, __pgprot(_PAGE_READ | _PAGE_WRITE),
__pgprot(_PAGE_WRITE));
return __set_memory(addr, numpages, __pgprot(_PAGE_READ | _PAGE_WRITE),
.mask = _PAGE_WRITE,
if ((st->current_prot & (_PAGE_WRITE | _PAGE_EXEC)) !=
(_PAGE_WRITE | _PAGE_EXEC))
if ((pte_val(pte) & _PAGE_DIRTY) && (pte_val(pte) & _PAGE_WRITE))
pte = clear_pte_bit(pte, __pgprot(_PAGE_WRITE));
pte = set_pte_bit(pte, __pgprot(_PAGE_WRITE));
if (pte_val(pte) & _PAGE_WRITE)
#define __PAGE_RW (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \
#define __PAGE_RWX (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \
#define __PAGE_SHARED (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \
#define __PAGE_KERNEL (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \
return (pte_val(pte) & _PAGE_WRITE) != 0;
pteval |= move_set_bit(rste, _SEGMENT_ENTRY_WRITE, _PAGE_WRITE);
rste |= move_set_bit(pte_val(pte), _PAGE_WRITE,
pte_prot = _PAGE_BASE | _PAGE_READ | _PAGE_WRITE;
pte_prot = _PAGE_BASE | _PAGE_READ | _PAGE_WRITE | _PAGE_DIRTY;
access |= _PAGE_WRITE;
#define __WRITEABLE (_PAGE_DIRTY | _PAGE_WRITE)