Lines Matching refs:p4d
27 /* p4d is folded into pgd in case of 4-level page table */
48 unsigned long p4d;
51 #define p4d_val(x) ((x).p4d)
272 pr_err("%s:%d: bad p4d %016lx.\n", __FILE__, __LINE__, p4d_val(e))
274 static inline void set_p4d(p4d_t *p4dp, p4d_t p4d)
277 *p4dp = p4d;
279 set_pud((pud_t *)p4dp, (pud_t){ p4d_val(p4d) });
282 static inline int p4d_none(p4d_t p4d)
285 return (p4d_val(p4d) == 0);
290 static inline int p4d_present(p4d_t p4d)
293 return (p4d_val(p4d) & _PAGE_PRESENT);
298 static inline int p4d_bad(p4d_t p4d)
301 return !p4d_present(p4d);
306 static inline void p4d_clear(p4d_t *p4d)
309 set_p4d(p4d, __p4d(0));
317 static inline unsigned long _p4d_pfn(p4d_t p4d)
319 return __page_val_to_pfn(p4d_val(p4d));
322 static inline pud_t *p4d_pgtable(p4d_t p4d)
325 return (pud_t *)pfn_to_virt(__page_val_to_pfn(p4d_val(p4d)));
327 return (pud_t *)pud_pgtable((pud_t) { p4d_val(p4d) });
329 #define p4d_page_vaddr(p4d) ((unsigned long)p4d_pgtable(p4d))
331 static inline struct page *p4d_page(p4d_t p4d)
333 return pfn_to_page(__page_val_to_pfn(p4d_val(p4d)));
339 static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
342 return p4d_pgtable(*p4d) + pud_index(address);
344 return (pud_t *)p4d;