Lines Matching refs:pte

45 extern void __update_cache(unsigned long address, pte_t pte);
114 # define pte_none(pte) (!(((pte).pte_high) & ~_PAGE_GLOBAL)) argument
116 # define pte_none(pte) (!(((pte).pte_low | (pte).pte_high) & ~_PAGE_GLOBAL)) argument
119 #define pte_present(pte) ((pte).pte_low & _PAGE_PRESENT) argument
120 #define pte_no_exec(pte) ((pte).pte_low & _PAGE_NO_EXEC) argument
122 static inline void set_pte(pte_t *ptep, pte_t pte) argument
124 ptep->pte_high = pte.pte_high;
126 ptep->pte_low = pte.pte_low;
129 if (pte.pte_high & _PAGE_GLOBAL) {
131 if (pte.pte_low & _PAGE_GLOBAL) {
165 #define pte_none(pte) (!(pte_val(pte) & ~_PAGE_GLOBAL)) argument
166 #define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT) argument
167 #define pte_no_exec(pte) (pte_val(pte) & _PAGE_NO_EXEC) argument
185 cmpxchg64(&buddy->pte, 0, _PAGE_GLOBAL);
187 cmpxchg(&buddy->pte, 0, _PAGE_GLOBAL);
252 static inline int pte_special(pte_t pte) argument
254 return pte.pte_low & _PAGE_SPECIAL;
257 static inline pte_t pte_mkspecial(pte_t pte) argument
259 pte.pte_low |= _PAGE_SPECIAL;
260 return pte;
263 static inline int pte_special(pte_t pte) argument
265 return pte_val(pte) & _PAGE_SPECIAL;
268 static inline pte_t pte_mkspecial(pte_t pte) argument
270 pte_val(pte) |= _PAGE_SPECIAL;
271 return pte;
281 static inline int pte_write(pte_t pte) { return pte.pte_low & _PAGE_WRITE; } argument
282 static inline int pte_dirty(pte_t pte) { return pte.pte_low & _PAGE_MODIFIED; } argument
283 static inline int pte_young(pte_t pte) { return pte.pte_low & _PAGE_ACCESSED; } argument
285 static inline pte_t pte_wrprotect(pte_t pte) argument
287 pte.pte_low &= ~_PAGE_WRITE;
289 pte.pte_low &= ~_PAGE_SILENT_WRITE;
290 pte.pte_high &= ~_PAGE_SILENT_WRITE;
291 return pte;
294 static inline pte_t pte_mkclean(pte_t pte) argument
296 pte.pte_low &= ~_PAGE_MODIFIED;
298 pte.pte_low &= ~_PAGE_SILENT_WRITE;
299 pte.pte_high &= ~_PAGE_SILENT_WRITE;
300 return pte;
303 static inline pte_t pte_mkold(pte_t pte) argument
305 pte.pte_low &= ~_PAGE_ACCESSED;
307 pte.pte_low &= ~_PAGE_SILENT_READ;
308 pte.pte_high &= ~_PAGE_SILENT_READ;
309 return pte;
312 static inline pte_t pte_mkwrite(pte_t pte) argument
314 pte.pte_low |= _PAGE_WRITE;
315 if (pte.pte_low & _PAGE_MODIFIED) {
317 pte.pte_low |= _PAGE_SILENT_WRITE;
318 pte.pte_high |= _PAGE_SILENT_WRITE;
320 return pte;
323 static inline pte_t pte_mkdirty(pte_t pte) argument
325 pte.pte_low |= _PAGE_MODIFIED;
326 if (pte.pte_low & _PAGE_WRITE) {
328 pte.pte_low |= _PAGE_SILENT_WRITE;
329 pte.pte_high |= _PAGE_SILENT_WRITE;
331 return pte;
334 static inline pte_t pte_mkyoung(pte_t pte) argument
336 pte.pte_low |= _PAGE_ACCESSED;
337 if (!(pte.pte_low & _PAGE_NO_READ)) {
339 pte.pte_low |= _PAGE_SILENT_READ;
340 pte.pte_high |= _PAGE_SILENT_READ;
342 return pte;
345 static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } argument
346 static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_MODIFIED; } argument
347 static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } argument
349 static inline pte_t pte_wrprotect(pte_t pte) argument
351 pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE);
352 return pte;
355 static inline pte_t pte_mkclean(pte_t pte) argument
357 pte_val(pte) &= ~(_PAGE_MODIFIED | _PAGE_SILENT_WRITE);
358 return pte;
361 static inline pte_t pte_mkold(pte_t pte) argument
363 pte_val(pte) &= ~(_PAGE_ACCESSED | _PAGE_SILENT_READ);
364 return pte;
367 static inline pte_t pte_mkwrite(pte_t pte) argument
369 pte_val(pte) |= _PAGE_WRITE;
370 if (pte_val(pte) & _PAGE_MODIFIED)
371 pte_val(pte) |= _PAGE_SILENT_WRITE;
372 return pte;
375 static inline pte_t pte_mkdirty(pte_t pte) argument
377 pte_val(pte) |= _PAGE_MODIFIED | _PAGE_SOFT_DIRTY;
378 if (pte_val(pte) & _PAGE_WRITE)
379 pte_val(pte) |= _PAGE_SILENT_WRITE;
380 return pte;
383 static inline pte_t pte_mkyoung(pte_t pte) argument
385 pte_val(pte) |= _PAGE_ACCESSED;
386 if (!(pte_val(pte) & _PAGE_NO_READ))
387 pte_val(pte) |= _PAGE_SILENT_READ;
388 return pte;
394 static inline int pte_huge(pte_t pte) { return pte_val(pte) & _PAGE_HUGE; } argument
396 static inline pte_t pte_mkhuge(pte_t pte) argument
398 pte_val(pte) |= _PAGE_HUGE;
399 return pte;
418 static inline bool pte_soft_dirty(pte_t pte) argument
420 return pte_val(pte) & _PAGE_SOFT_DIRTY;
424 static inline pte_t pte_mksoft_dirty(pte_t pte) argument
426 pte_val(pte) |= _PAGE_SOFT_DIRTY;
427 return pte;
431 static inline pte_t pte_clear_soft_dirty(pte_t pte) argument
433 pte_val(pte) &= ~(_PAGE_SOFT_DIRTY);
434 return pte;
503 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) argument
505 pte.pte_low &= (_PAGE_MODIFIED | _PAGE_ACCESSED | _PFNX_MASK);
506 pte.pte_high &= (_PFN_MASK | _CACHE_MASK);
507 pte.pte_low |= pgprot_val(newprot) & ~_PFNX_MASK;
508 pte.pte_high |= pgprot_val(newprot) & ~(_PFN_MASK | _CACHE_MASK);
509 return pte;
512 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) argument
514 pte.pte_low &= _PAGE_CHG_MASK;
515 pte.pte_high &= (_PFN_MASK | _CACHE_MASK);
516 pte.pte_low |= pgprot_val(newprot);
517 pte.pte_high |= pgprot_val(newprot) & ~(_PFN_MASK | _CACHE_MASK);
518 return pte;
521 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) argument
523 pte_val(pte) &= _PAGE_CHG_MASK;
524 pte_val(pte) |= pgprot_val(newprot) & ~_PAGE_CHG_MASK;
525 if ((pte_val(pte) & _PAGE_ACCESSED) && !(pte_val(pte) & _PAGE_NO_READ))
526 pte_val(pte) |= _PAGE_SILENT_READ;
527 return pte;
533 pte_t pte);
538 pte_t pte = *ptep; local
539 __update_tlb(vma, address, pte);
548 pte_t pte = *(pte_t *)pmdp; local
550 __update_tlb(vma, address, pte);