arch/um/include/asm/pgtable-4level.h

Source file repositories/reference/linux-study-clean/arch/um/include/asm/pgtable-4level.h

File Facts

System
Linux kernel
Corpus path
arch/um/include/asm/pgtable-4level.h
Extension
.h
Size
2981 bytes
Lines
111
Domain
Architecture Layer
Bucket
arch/um
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

static inline void pgd_mkuptodate(pgd_t pgd) { pgd_val(pgd) &= ~_PAGE_NEEDSYNC; }

#define set_pmd(pmdptr, pmdval) (*(pmdptr) = (pmdval))

static inline void pud_clear (pud_t *pud)
{
	set_pud(pud, __pud(_PAGE_NEEDSYNC));
}

static inline void p4d_clear (p4d_t *p4d)
{
	set_p4d(p4d, __p4d(_PAGE_NEEDSYNC));
}

#define pud_page(pud) phys_to_page(pud_val(pud) & PAGE_MASK)
#define pud_pgtable(pud) ((pmd_t *) __va(pud_val(pud) & PAGE_MASK))

#define p4d_page(p4d) phys_to_page(p4d_val(p4d) & PAGE_MASK)
#define p4d_pgtable(p4d) ((pud_t *) __va(p4d_val(p4d) & PAGE_MASK))

static inline unsigned long pte_pfn(pte_t pte)
{
	return phys_to_pfn(pte_val(pte));
}

static inline pmd_t pfn_pmd(unsigned long page_nr, pgprot_t pgprot)
{
	return __pmd((page_nr << PAGE_SHIFT) | pgprot_val(pgprot));
}

#endif

Annotation

Implementation Notes