Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
pgtable_types.h File Reference
#include <linux/const.h>
#include <asm/page_types.h>
#include <asm/pgtable_64_types.h>
#include <linux/types.h>
#include <asm-generic/pgtable-nopud.h>
#include <asm-generic/pgtable-nopmd.h>

Go to the source code of this file.

Data Structures

struct  pgprot
 
struct  pgd_t
 

Macros

#define FIRST_USER_ADDRESS   0
 
#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 */
 
#define _PAGE_BIT_PCD   4 /* page cache disabled */
 
#define _PAGE_BIT_ACCESSED   5 /* was accessed (raised by CPU) */
 
#define _PAGE_BIT_DIRTY   6 /* was written to (raised by CPU) */
 
#define _PAGE_BIT_PSE   7 /* 4 MB (or 2MB) page */
 
#define _PAGE_BIT_PAT   7 /* on 4KB pages */
 
#define _PAGE_BIT_GLOBAL   8 /* Global TLB entry PPro+ */
 
#define _PAGE_BIT_UNUSED1   9 /* available for programmer */
 
#define _PAGE_BIT_IOMAP   10 /* flag used to indicate IO mapping */
 
#define _PAGE_BIT_HIDDEN   11 /* hidden by kmemcheck */
 
#define _PAGE_BIT_PAT_LARGE   12 /* On 2MB or 1GB pages */
 
#define _PAGE_BIT_SPECIAL   _PAGE_BIT_UNUSED1
 
#define _PAGE_BIT_CPA_TEST   _PAGE_BIT_UNUSED1
 
#define _PAGE_BIT_SPLITTING   _PAGE_BIT_UNUSED1 /* only valid on a PSE pmd */
 
#define _PAGE_BIT_NX   63 /* No execute: only valid after cpuid check */
 
#define _PAGE_BIT_PROTNONE   _PAGE_BIT_GLOBAL
 
#define _PAGE_BIT_FILE   _PAGE_BIT_DIRTY
 
#define _PAGE_PRESENT   (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT)
 
#define _PAGE_RW   (_AT(pteval_t, 1) << _PAGE_BIT_RW)
 
#define _PAGE_USER   (_AT(pteval_t, 1) << _PAGE_BIT_USER)
 
#define _PAGE_PWT   (_AT(pteval_t, 1) << _PAGE_BIT_PWT)
 
#define _PAGE_PCD   (_AT(pteval_t, 1) << _PAGE_BIT_PCD)
 
#define _PAGE_ACCESSED   (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED)
 
#define _PAGE_DIRTY   (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY)
 
#define _PAGE_PSE   (_AT(pteval_t, 1) << _PAGE_BIT_PSE)
 
#define _PAGE_GLOBAL   (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL)
 
#define _PAGE_UNUSED1   (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED1)
 
#define _PAGE_IOMAP   (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP)
 
#define _PAGE_PAT   (_AT(pteval_t, 1) << _PAGE_BIT_PAT)
 
#define _PAGE_PAT_LARGE   (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)
 
#define _PAGE_SPECIAL   (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL)
 
#define _PAGE_CPA_TEST   (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST)
 
#define _PAGE_SPLITTING   (_AT(pteval_t, 1) << _PAGE_BIT_SPLITTING)
 
#define __HAVE_ARCH_PTE_SPECIAL
 
#define _PAGE_HIDDEN   (_AT(pteval_t, 0))
 
#define _PAGE_NX   (_AT(pteval_t, 0))
 
#define _PAGE_FILE   (_AT(pteval_t, 1) << _PAGE_BIT_FILE)
 
#define _PAGE_PROTNONE   (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
 
#define _PAGE_TABLE
 
#define _KERNPG_TABLE
 
#define _PAGE_CHG_MASK
 
#define _HPAGE_CHG_MASK   (_PAGE_CHG_MASK | _PAGE_PSE)
 
#define _PAGE_CACHE_MASK   (_PAGE_PCD | _PAGE_PWT)
 
#define _PAGE_CACHE_WB   (0)
 
#define _PAGE_CACHE_WC   (_PAGE_PWT)
 
#define _PAGE_CACHE_UC_MINUS   (_PAGE_PCD)
 
#define _PAGE_CACHE_UC   (_PAGE_PCD | _PAGE_PWT)
 
#define PAGE_NONE   __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
 
#define PAGE_SHARED
 
#define PAGE_SHARED_EXEC
 
#define PAGE_COPY_NOEXEC
 
#define PAGE_COPY_EXEC
 
#define PAGE_COPY   PAGE_COPY_NOEXEC
 
#define PAGE_READONLY
 
#define PAGE_READONLY_EXEC
 
#define __PAGE_KERNEL_EXEC   (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
 
#define __PAGE_KERNEL   (__PAGE_KERNEL_EXEC | _PAGE_NX)
 
#define __PAGE_KERNEL_RO   (__PAGE_KERNEL & ~_PAGE_RW)
 
#define __PAGE_KERNEL_RX   (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
 
#define __PAGE_KERNEL_EXEC_NOCACHE   (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)
 
#define __PAGE_KERNEL_WC   (__PAGE_KERNEL | _PAGE_CACHE_WC)
 
#define __PAGE_KERNEL_NOCACHE   (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)
 
#define __PAGE_KERNEL_UC_MINUS   (__PAGE_KERNEL | _PAGE_PCD)
 
#define __PAGE_KERNEL_VSYSCALL   (__PAGE_KERNEL_RX | _PAGE_USER)
 
#define __PAGE_KERNEL_VVAR   (__PAGE_KERNEL_RO | _PAGE_USER)
 
#define __PAGE_KERNEL_VVAR_NOCACHE   (__PAGE_KERNEL_VVAR | _PAGE_PCD | _PAGE_PWT)
 
#define __PAGE_KERNEL_LARGE   (__PAGE_KERNEL | _PAGE_PSE)
 
#define __PAGE_KERNEL_LARGE_NOCACHE   (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE)
 
#define __PAGE_KERNEL_LARGE_EXEC   (__PAGE_KERNEL_EXEC | _PAGE_PSE)
 
#define __PAGE_KERNEL_IO   (__PAGE_KERNEL | _PAGE_IOMAP)
 
#define __PAGE_KERNEL_IO_NOCACHE   (__PAGE_KERNEL_NOCACHE | _PAGE_IOMAP)
 
#define __PAGE_KERNEL_IO_UC_MINUS   (__PAGE_KERNEL_UC_MINUS | _PAGE_IOMAP)
 
#define __PAGE_KERNEL_IO_WC   (__PAGE_KERNEL_WC | _PAGE_IOMAP)
 
#define PAGE_KERNEL   __pgprot(__PAGE_KERNEL)
 
#define PAGE_KERNEL_RO   __pgprot(__PAGE_KERNEL_RO)
 
#define PAGE_KERNEL_EXEC   __pgprot(__PAGE_KERNEL_EXEC)
 
#define PAGE_KERNEL_RX   __pgprot(__PAGE_KERNEL_RX)
 
#define PAGE_KERNEL_WC   __pgprot(__PAGE_KERNEL_WC)
 
#define PAGE_KERNEL_NOCACHE   __pgprot(__PAGE_KERNEL_NOCACHE)
 
#define PAGE_KERNEL_UC_MINUS   __pgprot(__PAGE_KERNEL_UC_MINUS)
 
#define PAGE_KERNEL_EXEC_NOCACHE   __pgprot(__PAGE_KERNEL_EXEC_NOCACHE)
 
#define PAGE_KERNEL_LARGE   __pgprot(__PAGE_KERNEL_LARGE)
 
#define PAGE_KERNEL_LARGE_NOCACHE   __pgprot(__PAGE_KERNEL_LARGE_NOCACHE)
 
#define PAGE_KERNEL_LARGE_EXEC   __pgprot(__PAGE_KERNEL_LARGE_EXEC)
 
#define PAGE_KERNEL_VSYSCALL   __pgprot(__PAGE_KERNEL_VSYSCALL)
 
#define PAGE_KERNEL_VVAR   __pgprot(__PAGE_KERNEL_VVAR)
 
#define PAGE_KERNEL_VVAR_NOCACHE   __pgprot(__PAGE_KERNEL_VVAR_NOCACHE)
 
#define PAGE_KERNEL_IO   __pgprot(__PAGE_KERNEL_IO)
 
#define PAGE_KERNEL_IO_NOCACHE   __pgprot(__PAGE_KERNEL_IO_NOCACHE)
 
#define PAGE_KERNEL_IO_UC_MINUS   __pgprot(__PAGE_KERNEL_IO_UC_MINUS)
 
#define PAGE_KERNEL_IO_WC   __pgprot(__PAGE_KERNEL_IO_WC)
 
#define __P000   PAGE_NONE
 
#define __P001   PAGE_READONLY
 
#define __P010   PAGE_COPY
 
#define __P011   PAGE_COPY
 
#define __P100   PAGE_READONLY_EXEC
 
#define __P101   PAGE_READONLY_EXEC
 
#define __P110   PAGE_COPY_EXEC
 
#define __P111   PAGE_COPY_EXEC
 
#define __S000   PAGE_NONE
 
#define __S001   PAGE_READONLY
 
#define __S010   PAGE_SHARED
 
#define __S011   PAGE_SHARED
 
#define __S100   PAGE_READONLY_EXEC
 
#define __S101   PAGE_READONLY_EXEC
 
#define __S110   PAGE_SHARED_EXEC
 
#define __S111   PAGE_SHARED_EXEC
 
#define PTE_IDENT_ATTR   0x003 /* PRESENT+RW */
 
#define PDE_IDENT_ATTR   0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */
 
#define PGD_IDENT_ATTR   0x001 /* PRESENT (no other attributes) */
 
#define PTE_PFN_MASK   ((pteval_t)PHYSICAL_PAGE_MASK)
 
#define PTE_FLAGS_MASK   (~PTE_PFN_MASK)
 
#define pgprot_val(x)   ((x).pgprot)
 
#define __pgprot(x)   ((pgprot_t) { (x) } )
 
#define pgprot_writecombine   pgprot_writecombine
 
#define __HAVE_PFNMAP_TRACKING
 
#define __HAVE_PHYS_MEM_ACCESS_PROT
 
#define native_pagetable_init   paging_init
 

Typedefs

typedef struct pgprot pgprot_t
 
typedef struct pagepgtable_t
 

Enumerations

enum  {
  PG_LEVEL_NONE, PG_LEVEL_4K, PG_LEVEL_2M, PG_LEVEL_1G,
  PG_LEVEL_NUM
}
 

Functions

void set_nx (void)
 
pgprot_t pgprot_writecombine (pgprot_t prot)
 
pgprot_t phys_mem_access_prot (struct file *file, unsigned long pfn, unsigned long size, pgprot_t vma_prot)
 
int phys_mem_access_prot_allowed (struct file *file, unsigned long pfn, unsigned long size, pgprot_t *vma_prot)
 
void set_pte_vaddr (unsigned long vaddr, pte_t pte)
 
void native_pagetable_reserve (u64 start, u64 end)
 
void arch_report_meminfo (struct seq_file *m)
 
pte_tlookup_address (unsigned long address, unsigned int *level)
 

Variables

pteval_t __supported_pte_mask
 
int nx_enabled
 

Macro Definition Documentation

#define __HAVE_ARCH_PTE_SPECIAL

Definition at line 50 of file pgtable_types.h.

#define __HAVE_PFNMAP_TRACKING

Definition at line 292 of file pgtable_types.h.

#define __HAVE_PHYS_MEM_ACCESS_PROT

Definition at line 294 of file pgtable_types.h.

#define __P000   PAGE_NONE

Definition at line 142 of file pgtable_types.h.

#define __P001   PAGE_READONLY

Definition at line 143 of file pgtable_types.h.

#define __P010   PAGE_COPY

Definition at line 144 of file pgtable_types.h.

#define __P011   PAGE_COPY

Definition at line 145 of file pgtable_types.h.

#define __P100   PAGE_READONLY_EXEC

Definition at line 146 of file pgtable_types.h.

#define __P101   PAGE_READONLY_EXEC

Definition at line 147 of file pgtable_types.h.

#define __P110   PAGE_COPY_EXEC

Definition at line 148 of file pgtable_types.h.

#define __P111   PAGE_COPY_EXEC

Definition at line 149 of file pgtable_types.h.

#define __PAGE_KERNEL   (__PAGE_KERNEL_EXEC | _PAGE_NX)

Definition at line 101 of file pgtable_types.h.

#define __PAGE_KERNEL_EXEC   (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)

Definition at line 99 of file pgtable_types.h.

#define __PAGE_KERNEL_EXEC_NOCACHE   (__PAGE_KERNEL_EXEC | _PAGE_PCD | _PAGE_PWT)

Definition at line 105 of file pgtable_types.h.

#define __PAGE_KERNEL_IO   (__PAGE_KERNEL | _PAGE_IOMAP)

Definition at line 116 of file pgtable_types.h.

#define __PAGE_KERNEL_IO_NOCACHE   (__PAGE_KERNEL_NOCACHE | _PAGE_IOMAP)

Definition at line 117 of file pgtable_types.h.

#define __PAGE_KERNEL_IO_UC_MINUS   (__PAGE_KERNEL_UC_MINUS | _PAGE_IOMAP)

Definition at line 118 of file pgtable_types.h.

#define __PAGE_KERNEL_IO_WC   (__PAGE_KERNEL_WC | _PAGE_IOMAP)

Definition at line 119 of file pgtable_types.h.

#define __PAGE_KERNEL_LARGE   (__PAGE_KERNEL | _PAGE_PSE)

Definition at line 112 of file pgtable_types.h.

#define __PAGE_KERNEL_LARGE_EXEC   (__PAGE_KERNEL_EXEC | _PAGE_PSE)

Definition at line 114 of file pgtable_types.h.

#define __PAGE_KERNEL_LARGE_NOCACHE   (__PAGE_KERNEL | _PAGE_CACHE_UC | _PAGE_PSE)

Definition at line 113 of file pgtable_types.h.

#define __PAGE_KERNEL_NOCACHE   (__PAGE_KERNEL | _PAGE_PCD | _PAGE_PWT)

Definition at line 107 of file pgtable_types.h.

#define __PAGE_KERNEL_RO   (__PAGE_KERNEL & ~_PAGE_RW)

Definition at line 103 of file pgtable_types.h.

#define __PAGE_KERNEL_RX   (__PAGE_KERNEL_EXEC & ~_PAGE_RW)

Definition at line 104 of file pgtable_types.h.

#define __PAGE_KERNEL_UC_MINUS   (__PAGE_KERNEL | _PAGE_PCD)

Definition at line 108 of file pgtable_types.h.

#define __PAGE_KERNEL_VSYSCALL   (__PAGE_KERNEL_RX | _PAGE_USER)

Definition at line 109 of file pgtable_types.h.

#define __PAGE_KERNEL_VVAR   (__PAGE_KERNEL_RO | _PAGE_USER)

Definition at line 110 of file pgtable_types.h.

#define __PAGE_KERNEL_VVAR_NOCACHE   (__PAGE_KERNEL_VVAR | _PAGE_PCD | _PAGE_PWT)

Definition at line 111 of file pgtable_types.h.

#define __PAGE_KERNEL_WC   (__PAGE_KERNEL | _PAGE_CACHE_WC)

Definition at line 106 of file pgtable_types.h.

#define __pgprot (   x)    ((pgprot_t) { (x) } )

Definition at line 279 of file pgtable_types.h.

#define __S000   PAGE_NONE

Definition at line 151 of file pgtable_types.h.

#define __S001   PAGE_READONLY

Definition at line 152 of file pgtable_types.h.

#define __S010   PAGE_SHARED

Definition at line 153 of file pgtable_types.h.

#define __S011   PAGE_SHARED

Definition at line 154 of file pgtable_types.h.

#define __S100   PAGE_READONLY_EXEC

Definition at line 155 of file pgtable_types.h.

#define __S101   PAGE_READONLY_EXEC

Definition at line 156 of file pgtable_types.h.

#define __S110   PAGE_SHARED_EXEC

Definition at line 157 of file pgtable_types.h.

#define __S111   PAGE_SHARED_EXEC

Definition at line 158 of file pgtable_types.h.

#define _HPAGE_CHG_MASK   (_PAGE_CHG_MASK | _PAGE_PSE)

Definition at line 75 of file pgtable_types.h.

#define _KERNPG_TABLE
Value:
_PAGE_DIRTY)

Definition at line 69 of file pgtable_types.h.

#define _PAGE_ACCESSED   (_AT(pteval_t, 1) << _PAGE_BIT_ACCESSED)

Definition at line 39 of file pgtable_types.h.

#define _PAGE_BIT_ACCESSED   5 /* was accessed (raised by CPU) */

Definition at line 14 of file pgtable_types.h.

#define _PAGE_BIT_CPA_TEST   _PAGE_BIT_UNUSED1

Definition at line 24 of file pgtable_types.h.

#define _PAGE_BIT_DIRTY   6 /* was written to (raised by CPU) */

Definition at line 15 of file pgtable_types.h.

#define _PAGE_BIT_FILE   _PAGE_BIT_DIRTY

Definition at line 32 of file pgtable_types.h.

#define _PAGE_BIT_GLOBAL   8 /* Global TLB entry PPro+ */

Definition at line 18 of file pgtable_types.h.

#define _PAGE_BIT_HIDDEN   11 /* hidden by kmemcheck */

Definition at line 21 of file pgtable_types.h.

#define _PAGE_BIT_IOMAP   10 /* flag used to indicate IO mapping */

Definition at line 20 of file pgtable_types.h.

#define _PAGE_BIT_NX   63 /* No execute: only valid after cpuid check */

Definition at line 26 of file pgtable_types.h.

#define _PAGE_BIT_PAT   7 /* on 4KB pages */

Definition at line 17 of file pgtable_types.h.

#define _PAGE_BIT_PAT_LARGE   12 /* On 2MB or 1GB pages */

Definition at line 22 of file pgtable_types.h.

#define _PAGE_BIT_PCD   4 /* page cache disabled */

Definition at line 13 of file pgtable_types.h.

#define _PAGE_BIT_PRESENT   0 /* is present */

Definition at line 9 of file pgtable_types.h.

#define _PAGE_BIT_PROTNONE   _PAGE_BIT_GLOBAL

Definition at line 30 of file pgtable_types.h.

#define _PAGE_BIT_PSE   7 /* 4 MB (or 2MB) page */

Definition at line 16 of file pgtable_types.h.

#define _PAGE_BIT_PWT   3 /* page write through */

Definition at line 12 of file pgtable_types.h.

#define _PAGE_BIT_RW   1 /* writeable */

Definition at line 10 of file pgtable_types.h.

#define _PAGE_BIT_SPECIAL   _PAGE_BIT_UNUSED1

Definition at line 23 of file pgtable_types.h.

#define _PAGE_BIT_SPLITTING   _PAGE_BIT_UNUSED1 /* only valid on a PSE pmd */

Definition at line 25 of file pgtable_types.h.

#define _PAGE_BIT_UNUSED1   9 /* available for programmer */

Definition at line 19 of file pgtable_types.h.

#define _PAGE_BIT_USER   2 /* userspace addressable */

Definition at line 11 of file pgtable_types.h.

#define _PAGE_CACHE_MASK   (_PAGE_PCD | _PAGE_PWT)

Definition at line 77 of file pgtable_types.h.

#define _PAGE_CACHE_UC   (_PAGE_PCD | _PAGE_PWT)

Definition at line 81 of file pgtable_types.h.

#define _PAGE_CACHE_UC_MINUS   (_PAGE_PCD)

Definition at line 80 of file pgtable_types.h.

#define _PAGE_CACHE_WB   (0)

Definition at line 78 of file pgtable_types.h.

#define _PAGE_CACHE_WC   (_PAGE_PWT)

Definition at line 79 of file pgtable_types.h.

#define _PAGE_CHG_MASK
Value:

Definition at line 73 of file pgtable_types.h.

#define _PAGE_CPA_TEST   (_AT(pteval_t, 1) << _PAGE_BIT_CPA_TEST)

Definition at line 48 of file pgtable_types.h.

#define _PAGE_DIRTY   (_AT(pteval_t, 1) << _PAGE_BIT_DIRTY)

Definition at line 40 of file pgtable_types.h.

#define _PAGE_FILE   (_AT(pteval_t, 1) << _PAGE_BIT_FILE)

Definition at line 64 of file pgtable_types.h.

#define _PAGE_GLOBAL   (_AT(pteval_t, 1) << _PAGE_BIT_GLOBAL)

Definition at line 42 of file pgtable_types.h.

#define _PAGE_HIDDEN   (_AT(pteval_t, 0))

Definition at line 55 of file pgtable_types.h.

#define _PAGE_IOMAP   (_AT(pteval_t, 1) << _PAGE_BIT_IOMAP)

Definition at line 44 of file pgtable_types.h.

#define _PAGE_NX   (_AT(pteval_t, 0))

Definition at line 61 of file pgtable_types.h.

#define _PAGE_PAT   (_AT(pteval_t, 1) << _PAGE_BIT_PAT)

Definition at line 45 of file pgtable_types.h.

#define _PAGE_PAT_LARGE   (_AT(pteval_t, 1) << _PAGE_BIT_PAT_LARGE)

Definition at line 46 of file pgtable_types.h.

#define _PAGE_PCD   (_AT(pteval_t, 1) << _PAGE_BIT_PCD)

Definition at line 38 of file pgtable_types.h.

#define _PAGE_PRESENT   (_AT(pteval_t, 1) << _PAGE_BIT_PRESENT)

Definition at line 34 of file pgtable_types.h.

#define _PAGE_PROTNONE   (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)

Definition at line 65 of file pgtable_types.h.

#define _PAGE_PSE   (_AT(pteval_t, 1) << _PAGE_BIT_PSE)

Definition at line 41 of file pgtable_types.h.

#define _PAGE_PWT   (_AT(pteval_t, 1) << _PAGE_BIT_PWT)

Definition at line 37 of file pgtable_types.h.

#define _PAGE_RW   (_AT(pteval_t, 1) << _PAGE_BIT_RW)

Definition at line 35 of file pgtable_types.h.

#define _PAGE_SPECIAL   (_AT(pteval_t, 1) << _PAGE_BIT_SPECIAL)

Definition at line 47 of file pgtable_types.h.

#define _PAGE_SPLITTING   (_AT(pteval_t, 1) << _PAGE_BIT_SPLITTING)

Definition at line 49 of file pgtable_types.h.

#define _PAGE_TABLE
Value:
_PAGE_ACCESSED | _PAGE_DIRTY)

Definition at line 67 of file pgtable_types.h.

#define _PAGE_UNUSED1   (_AT(pteval_t, 1) << _PAGE_BIT_UNUSED1)

Definition at line 43 of file pgtable_types.h.

#define _PAGE_USER   (_AT(pteval_t, 1) << _PAGE_BIT_USER)

Definition at line 36 of file pgtable_types.h.

#define FIRST_USER_ADDRESS   0

Definition at line 7 of file pgtable_types.h.

#define native_pagetable_init   paging_init

Definition at line 308 of file pgtable_types.h.

#define PAGE_COPY   PAGE_COPY_NOEXEC

Definition at line 93 of file pgtable_types.h.

#define PAGE_COPY_EXEC
Value:

Definition at line 91 of file pgtable_types.h.

#define PAGE_COPY_NOEXEC
Value:

Definition at line 89 of file pgtable_types.h.

#define PAGE_KERNEL   __pgprot(__PAGE_KERNEL)

Definition at line 121 of file pgtable_types.h.

#define PAGE_KERNEL_EXEC   __pgprot(__PAGE_KERNEL_EXEC)

Definition at line 123 of file pgtable_types.h.

#define PAGE_KERNEL_EXEC_NOCACHE   __pgprot(__PAGE_KERNEL_EXEC_NOCACHE)

Definition at line 128 of file pgtable_types.h.

#define PAGE_KERNEL_IO   __pgprot(__PAGE_KERNEL_IO)

Definition at line 136 of file pgtable_types.h.

#define PAGE_KERNEL_IO_NOCACHE   __pgprot(__PAGE_KERNEL_IO_NOCACHE)

Definition at line 137 of file pgtable_types.h.

#define PAGE_KERNEL_IO_UC_MINUS   __pgprot(__PAGE_KERNEL_IO_UC_MINUS)

Definition at line 138 of file pgtable_types.h.

#define PAGE_KERNEL_IO_WC   __pgprot(__PAGE_KERNEL_IO_WC)

Definition at line 139 of file pgtable_types.h.

#define PAGE_KERNEL_LARGE   __pgprot(__PAGE_KERNEL_LARGE)

Definition at line 129 of file pgtable_types.h.

#define PAGE_KERNEL_LARGE_EXEC   __pgprot(__PAGE_KERNEL_LARGE_EXEC)

Definition at line 131 of file pgtable_types.h.

#define PAGE_KERNEL_LARGE_NOCACHE   __pgprot(__PAGE_KERNEL_LARGE_NOCACHE)

Definition at line 130 of file pgtable_types.h.

#define PAGE_KERNEL_NOCACHE   __pgprot(__PAGE_KERNEL_NOCACHE)

Definition at line 126 of file pgtable_types.h.

#define PAGE_KERNEL_RO   __pgprot(__PAGE_KERNEL_RO)

Definition at line 122 of file pgtable_types.h.

#define PAGE_KERNEL_RX   __pgprot(__PAGE_KERNEL_RX)

Definition at line 124 of file pgtable_types.h.

#define PAGE_KERNEL_UC_MINUS   __pgprot(__PAGE_KERNEL_UC_MINUS)

Definition at line 127 of file pgtable_types.h.

#define PAGE_KERNEL_VSYSCALL   __pgprot(__PAGE_KERNEL_VSYSCALL)

Definition at line 132 of file pgtable_types.h.

#define PAGE_KERNEL_VVAR   __pgprot(__PAGE_KERNEL_VVAR)

Definition at line 133 of file pgtable_types.h.

#define PAGE_KERNEL_VVAR_NOCACHE   __pgprot(__PAGE_KERNEL_VVAR_NOCACHE)

Definition at line 134 of file pgtable_types.h.

#define PAGE_KERNEL_WC   __pgprot(__PAGE_KERNEL_WC)

Definition at line 125 of file pgtable_types.h.

#define PAGE_NONE   __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)

Definition at line 83 of file pgtable_types.h.

#define PAGE_READONLY
Value:

Definition at line 94 of file pgtable_types.h.

#define PAGE_READONLY_EXEC
Value:

Definition at line 96 of file pgtable_types.h.

#define PAGE_SHARED
Value:

Definition at line 84 of file pgtable_types.h.

#define PAGE_SHARED_EXEC
Value:

Definition at line 87 of file pgtable_types.h.

#define PDE_IDENT_ATTR   0x067 /* PRESENT+RW+USER+DIRTY+ACCESSED */

Definition at line 172 of file pgtable_types.h.

#define PGD_IDENT_ATTR   0x001 /* PRESENT (no other attributes) */

Definition at line 173 of file pgtable_types.h.

#define pgprot_val (   x)    ((x).pgprot)

Definition at line 278 of file pgtable_types.h.

#define pgprot_writecombine   pgprot_writecombine

Definition at line 288 of file pgtable_types.h.

#define PTE_FLAGS_MASK   (~PTE_PFN_MASK)

Definition at line 190 of file pgtable_types.h.

#define PTE_IDENT_ATTR   0x003 /* PRESENT+RW */

Definition at line 171 of file pgtable_types.h.

#define PTE_PFN_MASK   ((pteval_t)PHYSICAL_PAGE_MASK)

Definition at line 187 of file pgtable_types.h.

Typedef Documentation

typedef struct page* pgtable_t

Definition at line 282 of file pgtable_types.h.

Enumeration Type Documentation

anonymous enum
Enumerator:
PG_LEVEL_NONE 
PG_LEVEL_4K 
PG_LEVEL_2M 
PG_LEVEL_1G 
PG_LEVEL_NUM 

Definition at line 314 of file pgtable_types.h.

Function Documentation

void arch_report_meminfo ( struct seq_file m)
pte_t* lookup_address ( unsigned long  address,
unsigned int level 
)

Definition at line 333 of file pageattr.c.

void native_pagetable_reserve ( u64  start,
u64  end 
)

Definition at line 97 of file init.c.

pgprot_t pgprot_writecombine ( pgprot_t  prot)

Definition at line 784 of file pat.c.

pgprot_t phys_mem_access_prot ( struct file file,
unsigned long  pfn,
unsigned long  size,
pgprot_t  vma_prot 
)

Definition at line 151 of file mmu.c.

int phys_mem_access_prot_allowed ( struct file file,
unsigned long  pfn,
unsigned long  size,
pgprot_t vma_prot 
)

Definition at line 520 of file pat.c.

void set_nx ( void  )
void set_pte_vaddr ( unsigned long  vaddr,
pte_t  pte 
)

Definition at line 214 of file init_64.c.

Variable Documentation

pteval_t __supported_pte_mask
int nx_enabled