Linux Kernel Architecture

(Jacob Rumans) #1

Chapter3:MemoryManagement


Table 3-2: Functions for Analyzing Page Table Entries.


Function Description

pgd_val
pud_val
pmd_val
pte_val
pgprot_val

Convert a variable of typepte_tand so on to anunsigned longnumber.

__pgd
__pud
__pmd
__pte
__pgprot

Do the reverse ofpdg_valand so on: They convert anunsigned longnumber into
avariableoftypepdg_tand so on.

pgd_index
pud_index
pmd_index
pte_index

Yield the address of the next-level table starting from a memory pointer and a
page table entry.

pgd_present
pud_present
pmd_present
pte_present

Check whether the_PRESENTbit of the corresponding entry is set. This is the case
when the page or page table addressed is in RAM memory.

pgd_none
pud_none
pmd_none
pte_none

Do the logical reverse of thexxx_presentfunctions. If they return a true value,
the searched page isnotin RAM.

pgd_clear
pud_clear
pmd_clear
pte_clear

Delete the passed page table entry. This is usually done by setting it to zero.

pgd_bad
pud_bad
pmd_bad

Check whether entries of the page middle, upper, and global directories are
invalid. They are used for safety purposes in functions that receive input param-
eters from the outside where it cannot be assumed that the parameters are valid.

pmd_page
pud_page
pte_page

Return the address of thepagestructure holding the data on the page or the
entries of the page middle directories.

How do theoffsetfunctions work? Let us considerpmd_offsetas an example. It requires as parameter
an entry from the page global directory (src_pgd)andanaddressin memory. It returns an element from
one of the page middle directories.


src_pmd = pmd_offset(src_pgd, address);
Free download pdf