= Linux source tree
{c}
In `v4.2`, look under `arch/x86/`:
* `include/asm/pgtable*`
* `include/asm/page*`
* `mm/pgtable*`
* `mm/page*`
There seems to be no structs defined to represent the pages, only macros: `include/asm/page_types.h` is specially interesting. Excerpt:
``
#define _PAGE_BIT_PRESENT 0 /* is present */
#define _PAGE_BIT_RW 1 /* writeable */
#define _PAGE_BIT_USER 2 /* userspace addressable */
#define _PAGE_BIT_PWT 3 /* page write through */
``
`arch/x86/include/uapi/asm/processor-flags.h` defines `CR0`, and in particular the `PG` bit position:
``
#define X86_CR0_PG_BIT 31 /* Paging */
``
Back to article page