Lines Matching refs:pte

137 # define pte_none(pte)		(!(((pte).pte_high) & ~_PAGE_GLOBAL))
139 # define pte_none(pte) (!(((pte).pte_low | (pte).pte_high) & ~_PAGE_GLOBAL))
142 #define pte_present(pte) ((pte).pte_low & _PAGE_PRESENT)
143 #define pte_no_exec(pte) ((pte).pte_low & _PAGE_NO_EXEC)
145 static inline void set_pte(pte_t *ptep, pte_t pte)
147 ptep->pte_high = pte.pte_high;
149 ptep->pte_low = pte.pte_low;
152 if (pte.pte_high & _PAGE_GLOBAL) {
154 if (pte.pte_low & _PAGE_GLOBAL) {
188 #define pte_none(pte) (!(pte_val(pte) & ~_PAGE_GLOBAL))
189 #define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT)
190 #define pte_no_exec(pte) (pte_val(pte) & _PAGE_NO_EXEC)
193 * Certain architectures need to do special things when pte's
208 cmpxchg64(&buddy->pte, 0, _PAGE_GLOBAL);
210 cmpxchg(&buddy->pte, 0, _PAGE_GLOBAL);
233 extern void __update_cache(unsigned long address, pte_t pte);
276 static inline int pte_special(pte_t pte)
278 return pte.pte_low & _PAGE_SPECIAL;
281 static inline pte_t pte_mkspecial(pte_t pte)
283 pte.pte_low |= _PAGE_SPECIAL;
284 return pte;
287 static inline int pte_special(pte_t pte)
289 return pte_val(pte) & _PAGE_SPECIAL;
292 static inline pte_t pte_mkspecial(pte_t pte)
294 pte_val(pte) |= _PAGE_SPECIAL;
295 return pte;
305 static inline int pte_write(pte_t pte) { return pte.pte_low & _PAGE_WRITE; }
306 static inline int pte_dirty(pte_t pte) { return pte.pte_low & _PAGE_MODIFIED; }
307 static inline int pte_young(pte_t pte) { return pte.pte_low & _PAGE_ACCESSED; }
309 static inline pte_t pte_wrprotect(pte_t pte)
311 pte.pte_low &= ~_PAGE_WRITE;
313 pte.pte_low &= ~_PAGE_SILENT_WRITE;
314 pte.pte_high &= ~_PAGE_SILENT_WRITE;
315 return pte;
318 static inline pte_t pte_mkclean(pte_t pte)
320 pte.pte_low &= ~_PAGE_MODIFIED;
322 pte.pte_low &= ~_PAGE_SILENT_WRITE;
323 pte.pte_high &= ~_PAGE_SILENT_WRITE;
324 return pte;
327 static inline pte_t pte_mkold(pte_t pte)
329 pte.pte_low &= ~_PAGE_ACCESSED;
331 pte.pte_low &= ~_PAGE_SILENT_READ;
332 pte.pte_high &= ~_PAGE_SILENT_READ;
333 return pte;
336 static inline pte_t pte_mkwrite(pte_t pte)
338 pte.pte_low |= _PAGE_WRITE;
339 if (pte.pte_low & _PAGE_MODIFIED) {
341 pte.pte_low |= _PAGE_SILENT_WRITE;
342 pte.pte_high |= _PAGE_SILENT_WRITE;
344 return pte;
347 static inline pte_t pte_mkdirty(pte_t pte)
349 pte.pte_low |= _PAGE_MODIFIED;
350 if (pte.pte_low & _PAGE_WRITE) {
352 pte.pte_low |= _PAGE_SILENT_WRITE;
353 pte.pte_high |= _PAGE_SILENT_WRITE;
355 return pte;
358 static inline pte_t pte_mkyoung(pte_t pte)
360 pte.pte_low |= _PAGE_ACCESSED;
361 if (!(pte.pte_low & _PAGE_NO_READ)) {
363 pte.pte_low |= _PAGE_SILENT_READ;
364 pte.pte_high |= _PAGE_SILENT_READ;
366 return pte;
369 static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; }
370 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_MODIFIED; }
371 static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
373 static inline pte_t pte_wrprotect(pte_t pte)
375 pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE);
376 return pte;
379 static inline pte_t pte_mkclean(pte_t pte)
381 pte_val(pte) &= ~(_PAGE_MODIFIED | _PAGE_SILENT_WRITE);
382 return pte;
385 static inline pte_t pte_mkold(pte_t pte)
387 pte_val(pte) &= ~(_PAGE_ACCESSED | _PAGE_SILENT_READ);
388 return pte;
391 static inline pte_t pte_mkwrite(pte_t pte)
393 pte_val(pte) |= _PAGE_WRITE;
394 if (pte_val(pte) & _PAGE_MODIFIED)
395 pte_val(pte) |= _PAGE_SILENT_WRITE;
396 return pte;
399 static inline pte_t pte_mkdirty(pte_t pte)
401 pte_val(pte) |= _PAGE_MODIFIED | _PAGE_SOFT_DIRTY;
402 if (pte_val(pte) & _PAGE_WRITE)
403 pte_val(pte) |= _PAGE_SILENT_WRITE;
404 return pte;
407 static inline pte_t pte_mkyoung(pte_t pte)
409 pte_val(pte) |= _PAGE_ACCESSED;
410 if (!(pte_val(pte) & _PAGE_NO_READ))
411 pte_val(pte) |= _PAGE_SILENT_READ;
412 return pte;
418 static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_HUGE; }
420 static inline pte_t pte_mkhuge(pte_t pte)
422 pte_val(pte) |= _PAGE_HUGE;
423 return pte;
428 static inline bool pte_soft_dirty(pte_t pte)
430 return pte_val(pte) & _PAGE_SOFT_DIRTY;
434 static inline pte_t pte_mksoft_dirty(pte_t pte)
436 pte_val(pte) |= _PAGE_SOFT_DIRTY;
437 return pte;
441 static inline pte_t pte_clear_soft_dirty(pte_t pte)
443 pte_val(pte) &= ~(_PAGE_SOFT_DIRTY);
444 return pte;
513 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
515 pte.pte_low &= (_PAGE_MODIFIED | _PAGE_ACCESSED | _PFNX_MASK);
516 pte.pte_high &= (_PFN_MASK | _CACHE_MASK);
517 pte.pte_low |= pgprot_val(newprot) & ~_PFNX_MASK;
518 pte.pte_high |= pgprot_val(newprot) & ~(_PFN_MASK | _CACHE_MASK);
519 return pte;
522 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
524 pte.pte_low &= _PAGE_CHG_MASK;
525 pte.pte_high &= (_PFN_MASK | _CACHE_MASK);
526 pte.pte_low |= pgprot_val(newprot);
527 pte.pte_high |= pgprot_val(newprot) & ~(_PFN_MASK | _CACHE_MASK);
528 return pte;
531 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
533 pte_val(pte) &= _PAGE_CHG_MASK;
534 pte_val(pte) |= pgprot_val(newprot) & ~_PAGE_CHG_MASK;
535 if ((pte_val(pte) & _PAGE_ACCESSED) && !(pte_val(pte) & _PAGE_NO_READ))
536 pte_val(pte) |= _PAGE_SILENT_READ;
537 return pte;
543 pte_t pte);
548 pte_t pte = *ptep;
549 __update_tlb(vma, address, pte);
558 pte_t pte = *(pte_t *)pmdp;
560 __update_tlb(vma, address, pte);