Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
pgtable.h File Reference
#include <asm/proc-fns.h>
#include <asm/memory.h>
#include <asm/pgtable-hwdef.h>
#include <asm-generic/pgtable.h>

Go to the source code of this file.

Macros

#define PTE_VALID   (_AT(pteval_t, 1) << 0) /* pte_present() check */
 
#define PTE_FILE   (_AT(pteval_t, 1) << 2) /* only when !pte_present() */
 
#define PTE_DIRTY   (_AT(pteval_t, 1) << 55)
 
#define PTE_SPECIAL   (_AT(pteval_t, 1) << 56)
 
#define VMALLOC_START   UL(0xffffff8000000000)
 
#define VMALLOC_END   (PAGE_OFFSET - UL(0x400000000) - SZ_64K)
 
#define vmemmap   ((struct page *)(VMALLOC_END + SZ_64K))
 
#define FIRST_USER_ADDRESS   0
 
#define pte_ERROR(pte)   __pte_error(__FILE__, __LINE__, pte_val(pte))
 
#define pmd_ERROR(pmd)   __pmd_error(__FILE__, __LINE__, pmd_val(pmd))
 
#define pgd_ERROR(pgd)   __pgd_error(__FILE__, __LINE__, pgd_val(pgd))
 
#define _PAGE_DEFAULT   PTE_TYPE_PAGE | PTE_AF
 
#define _MOD_PROT(p, b)   __pgprot(pgprot_val(p) | (b))
 
#define PAGE_NONE   _MOD_PROT(pgprot_default, PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)
 
#define PAGE_SHARED   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN)
 
#define PAGE_SHARED_EXEC   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN)
 
#define PAGE_COPY   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)
 
#define PAGE_COPY_EXEC   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)
 
#define PAGE_READONLY   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)
 
#define PAGE_READONLY_EXEC   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)
 
#define PAGE_KERNEL   _MOD_PROT(pgprot_default, PTE_PXN | PTE_UXN | PTE_DIRTY)
 
#define PAGE_KERNEL_EXEC   _MOD_PROT(pgprot_default, PTE_UXN | PTE_DIRTY)
 
#define __PAGE_NONE   __pgprot(_PAGE_DEFAULT | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)
 
#define __PAGE_SHARED   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN)
 
#define __PAGE_SHARED_EXEC   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN)
 
#define __PAGE_COPY   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)
 
#define __PAGE_COPY_EXEC   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)
 
#define __PAGE_READONLY   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)
 
#define __PAGE_READONLY_EXEC   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)
 
#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 ZERO_PAGE(vaddr)   (empty_zero_page)
 
#define pte_pfn(pte)   ((pte_val(pte) & PHYS_MASK) >> PAGE_SHIFT)
 
#define pfn_pte(pfn, prot)   (__pte(((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)))
 
#define pte_none(pte)   (!pte_val(pte))
 
#define pte_clear(mm, addr, ptep)   set_pte(ptep, __pte(0))
 
#define pte_page(pte)   (pfn_to_page(pte_pfn(pte)))
 
#define pte_offset_kernel(dir, addr)   (pmd_page_vaddr(*(dir)) + __pte_index(addr))
 
#define pte_offset_map(dir, addr)   pte_offset_kernel((dir), (addr))
 
#define pte_offset_map_nested(dir, addr)   pte_offset_kernel((dir), (addr))
 
#define pte_unmap(pte)   do { } while (0)
 
#define pte_unmap_nested(pte)   do { } while (0)
 
#define pte_present(pte)   (pte_val(pte) & PTE_VALID)
 
#define pte_dirty(pte)   (pte_val(pte) & PTE_DIRTY)
 
#define pte_young(pte)   (pte_val(pte) & PTE_AF)
 
#define pte_special(pte)   (pte_val(pte) & PTE_SPECIAL)
 
#define pte_write(pte)   (!(pte_val(pte) & PTE_RDONLY))
 
#define pte_exec(pte)   (!(pte_val(pte) & PTE_UXN))
 
#define pte_present_exec_user(pte)
 
#define PTE_BIT_FUNC(fn, op)   static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }
 
#define pte_huge(pte)   ((pte_val(pte) & PTE_TYPE_MASK) == PTE_TYPE_HUGEPAGE)
 
#define pte_mkhuge(pte)   (__pte((pte_val(pte) & ~PTE_TYPE_MASK) | PTE_TYPE_HUGEPAGE))
 
#define __pgprot_modify(prot, mask, bits)   __pgprot((pgprot_val(prot) & ~(mask)) | (bits))
 
#define __HAVE_ARCH_PTE_SPECIAL
 
#define pgprot_noncached(prot)   __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_nGnRnE))
 
#define pgprot_writecombine(prot)   __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_GRE))
 
#define pgprot_dmacoherent(prot)   __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC))
 
#define __HAVE_PHYS_MEM_ACCESS_PROT
 
#define pmd_none(pmd)   (!pmd_val(pmd))
 
#define pmd_present(pmd)   (pmd_val(pmd))
 
#define pmd_bad(pmd)   (!(pmd_val(pmd) & 2))
 
#define pmd_page(pmd)   pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))
 
#define mk_pte(page, prot)   pfn_pte(page_to_pfn(page),prot)
 
#define pud_none(pud)   (!pud_val(pud))
 
#define pud_bad(pud)   (!(pud_val(pud) & 2))
 
#define pud_present(pud)   (pud_val(pud))
 
#define pgd_index(addr)   (((addr) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1))
 
#define pgd_offset(mm, addr)   ((mm)->pgd+pgd_index(addr))
 
#define pgd_offset_k(addr)   pgd_offset(&init_mm, addr)
 
#define pmd_index(addr)   (((addr) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))
 
#define __pte_index(addr)   (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
 
#define SWAPPER_DIR_SIZE   (3 * PAGE_SIZE)
 
#define IDMAP_DIR_SIZE   (2 * PAGE_SIZE)
 
#define __SWP_TYPE_SHIFT   3
 
#define __SWP_TYPE_BITS   6
 
#define __SWP_TYPE_MASK   ((1 << __SWP_TYPE_BITS) - 1)
 
#define __SWP_OFFSET_SHIFT   (__SWP_TYPE_BITS + __SWP_TYPE_SHIFT)
 
#define __swp_type(x)   (((x).val >> __SWP_TYPE_SHIFT) & __SWP_TYPE_MASK)
 
#define __swp_offset(x)   ((x).val >> __SWP_OFFSET_SHIFT)
 
#define __swp_entry(type, offset)   ((swp_entry_t) { ((type) << __SWP_TYPE_SHIFT) | ((offset) << __SWP_OFFSET_SHIFT) })
 
#define __pte_to_swp_entry(pte)   ((swp_entry_t) { pte_val(pte) })
 
#define __swp_entry_to_pte(swp)   ((pte_t) { (swp).val })
 
#define MAX_SWAPFILES_CHECK()   BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)
 
#define pte_file(pte)   (pte_val(pte) & PTE_FILE)
 
#define pte_to_pgoff(x)   (pte_val(x) >> 3)
 
#define pgoff_to_pte(x)   __pte(((x) << 3) | PTE_FILE)
 
#define PTE_FILE_MAX_BITS   61
 
#define io_remap_pfn_range(vma, from, pfn, size, prot)   remap_pfn_range(vma, from, pfn, size, prot)
 
#define pgtable_cache_init()   do { } while (0)
 

Functions

void __pte_error (const char *file, int line, unsigned long val)
 
void __pmd_error (const char *file, int line, unsigned long val)
 
void __pgd_error (const char *file, int line, unsigned long val)
 
 PTE_BIT_FUNC (wrprotect,|=PTE_RDONLY)
 
 PTE_BIT_FUNC (mkwrite,&=~PTE_RDONLY)
 
 PTE_BIT_FUNC (mkclean,&=~PTE_DIRTY)
 
 PTE_BIT_FUNC (mkdirty,|=PTE_DIRTY)
 
 PTE_BIT_FUNC (mkold,&=~PTE_AF)
 
 PTE_BIT_FUNC (mkyoung,|=PTE_AF)
 
 PTE_BIT_FUNC (mkspecial,|=PTE_SPECIAL)
 
void __sync_icache_dcache (pte_t pteval, unsigned long addr)
 
pgprot_t phys_mem_access_prot (struct file *file, unsigned long pfn, unsigned long size, pgprot_t vma_prot)
 
int kern_addr_valid (unsigned long addr)
 

Variables

pgprot_t pgprot_default
 
struct pageempty_zero_page
 
pgd_t swapper_pg_dir [PTRS_PER_PGD]
 
pgd_t idmap_pg_dir [PTRS_PER_PGD]
 

Macro Definition Documentation

#define __HAVE_ARCH_PTE_SPECIAL

Definition at line 174 of file pgtable.h.

#define __HAVE_PHYS_MEM_ACCESS_PROT

Definition at line 185 of file pgtable.h.

#define __P000   __PAGE_NONE

Definition at line 85 of file pgtable.h.

#define __P001   __PAGE_READONLY

Definition at line 86 of file pgtable.h.

#define __P010   __PAGE_COPY

Definition at line 87 of file pgtable.h.

#define __P011   __PAGE_COPY

Definition at line 88 of file pgtable.h.

#define __P100   __PAGE_READONLY_EXEC

Definition at line 89 of file pgtable.h.

#define __P101   __PAGE_READONLY_EXEC

Definition at line 90 of file pgtable.h.

#define __P110   __PAGE_COPY_EXEC

Definition at line 91 of file pgtable.h.

#define __P111   __PAGE_COPY_EXEC

Definition at line 92 of file pgtable.h.

#define __PAGE_COPY   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)

Definition at line 78 of file pgtable.h.

#define __PAGE_COPY_EXEC   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)

Definition at line 79 of file pgtable.h.

#define __PAGE_NONE   __pgprot(_PAGE_DEFAULT | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)

Definition at line 75 of file pgtable.h.

#define __PAGE_READONLY   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)

Definition at line 80 of file pgtable.h.

#define __PAGE_READONLY_EXEC   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)

Definition at line 81 of file pgtable.h.

#define __PAGE_SHARED   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN | PTE_UXN)

Definition at line 76 of file pgtable.h.

#define __PAGE_SHARED_EXEC   __pgprot(_PAGE_DEFAULT | PTE_USER | PTE_NG | PTE_PXN)

Definition at line 77 of file pgtable.h.

#define __pgprot_modify (   prot,
  mask,
  bits 
)    __pgprot((pgprot_val(prot) & ~(mask)) | (bits))

Definition at line 171 of file pgtable.h.

#define __pte_index (   addr)    (((addr) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))

Definition at line 261 of file pgtable.h.

#define __pte_to_swp_entry (   pte)    ((swp_entry_t) { pte_val(pte) })

Definition at line 292 of file pgtable.h.

#define __S000   __PAGE_NONE

Definition at line 94 of file pgtable.h.

#define __S001   __PAGE_READONLY

Definition at line 95 of file pgtable.h.

#define __S010   __PAGE_SHARED

Definition at line 96 of file pgtable.h.

#define __S011   __PAGE_SHARED

Definition at line 97 of file pgtable.h.

#define __S100   __PAGE_READONLY_EXEC

Definition at line 98 of file pgtable.h.

#define __S101   __PAGE_READONLY_EXEC

Definition at line 99 of file pgtable.h.

#define __S110   __PAGE_SHARED_EXEC

Definition at line 100 of file pgtable.h.

#define __S111   __PAGE_SHARED_EXEC

Definition at line 101 of file pgtable.h.

#define __swp_entry (   type,
  offset 
)    ((swp_entry_t) { ((type) << __SWP_TYPE_SHIFT) | ((offset) << __SWP_OFFSET_SHIFT) })

Definition at line 290 of file pgtable.h.

#define __swp_entry_to_pte (   swp)    ((pte_t) { (swp).val })

Definition at line 293 of file pgtable.h.

#define __swp_offset (   x)    ((x).val >> __SWP_OFFSET_SHIFT)

Definition at line 289 of file pgtable.h.

#define __SWP_OFFSET_SHIFT   (__SWP_TYPE_BITS + __SWP_TYPE_SHIFT)

Definition at line 286 of file pgtable.h.

#define __swp_type (   x)    (((x).val >> __SWP_TYPE_SHIFT) & __SWP_TYPE_MASK)

Definition at line 288 of file pgtable.h.

#define __SWP_TYPE_BITS   6

Definition at line 284 of file pgtable.h.

#define __SWP_TYPE_MASK   ((1 << __SWP_TYPE_BITS) - 1)

Definition at line 285 of file pgtable.h.

#define __SWP_TYPE_SHIFT   3

Definition at line 283 of file pgtable.h.

#define _MOD_PROT (   p,
  b 
)    __pgprot(pgprot_val(p) | (b))

Definition at line 63 of file pgtable.h.

#define _PAGE_DEFAULT   PTE_TYPE_PAGE | PTE_AF

Definition at line 59 of file pgtable.h.

#define FIRST_USER_ADDRESS   0

Definition at line 40 of file pgtable.h.

#define IDMAP_DIR_SIZE   (2 * PAGE_SIZE)

Definition at line 274 of file pgtable.h.

#define io_remap_pfn_range (   vma,
  from,
  pfn,
  size,
  prot 
)    remap_pfn_range(vma, from, pfn, size, prot)

Definition at line 321 of file pgtable.h.

#define MAX_SWAPFILES_CHECK ( )    BUILD_BUG_ON(MAX_SWAPFILES_SHIFT > __SWP_TYPE_BITS)

Definition at line 299 of file pgtable.h.

#define mk_pte (   page,
  prot 
)    pfn_pte(page_to_pfn(page),prot)

Definition at line 217 of file pgtable.h.

#define PAGE_COPY   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)

Definition at line 68 of file pgtable.h.

#define PAGE_COPY_EXEC   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)

Definition at line 69 of file pgtable.h.

#define PAGE_KERNEL   _MOD_PROT(pgprot_default, PTE_PXN | PTE_UXN | PTE_DIRTY)

Definition at line 72 of file pgtable.h.

#define PAGE_KERNEL_EXEC   _MOD_PROT(pgprot_default, PTE_UXN | PTE_DIRTY)

Definition at line 73 of file pgtable.h.

#define PAGE_NONE   _MOD_PROT(pgprot_default, PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)

Definition at line 65 of file pgtable.h.

#define PAGE_READONLY   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN | PTE_RDONLY)

Definition at line 70 of file pgtable.h.

#define PAGE_READONLY_EXEC   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_RDONLY)

Definition at line 71 of file pgtable.h.

#define PAGE_SHARED   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN | PTE_UXN)

Definition at line 66 of file pgtable.h.

#define PAGE_SHARED_EXEC   _MOD_PROT(pgprot_default, PTE_USER | PTE_NG | PTE_PXN)

Definition at line 67 of file pgtable.h.

#define pfn_pte (   pfn,
  prot 
)    (__pte(((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)))

Definition at line 113 of file pgtable.h.

#define pgd_ERROR (   pgd)    __pgd_error(__FILE__, __LINE__, pgd_val(pgd))

Definition at line 51 of file pgtable.h.

#define pgd_index (   addr)    (((addr) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1))

Definition at line 244 of file pgtable.h.

#define pgd_offset (   mm,
  addr 
)    ((mm)->pgd+pgd_index(addr))

Definition at line 246 of file pgtable.h.

#define pgd_offset_k (   addr)    pgd_offset(&init_mm, addr)

Definition at line 249 of file pgtable.h.

#define pgoff_to_pte (   x)    __pte(((x) << 3) | PTE_FILE)

Definition at line 309 of file pgtable.h.

#define pgprot_dmacoherent (   prot)    __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_NORMAL_NC))

Definition at line 183 of file pgtable.h.

#define pgprot_noncached (   prot)    __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_nGnRnE))

Definition at line 179 of file pgtable.h.

#define pgprot_writecombine (   prot)    __pgprot_modify(prot, PTE_ATTRINDX_MASK, PTE_ATTRINDX(MT_DEVICE_GRE))

Definition at line 181 of file pgtable.h.

#define pgtable_cache_init (   void)    do { } while (0)

Definition at line 324 of file pgtable.h.

#define pmd_bad (   pmd)    (!(pmd_val(pmd) & 2))

Definition at line 193 of file pgtable.h.

#define pmd_ERROR (   pmd)    __pmd_error(__FILE__, __LINE__, pmd_val(pmd))

Definition at line 49 of file pgtable.h.

#define pmd_index (   addr)    (((addr) >> PMD_SHIFT) & (PTRS_PER_PMD - 1))

Definition at line 253 of file pgtable.h.

#define pmd_none (   pmd)    (!pmd_val(pmd))

Definition at line 190 of file pgtable.h.

#define pmd_page (   pmd)    pfn_to_page(__phys_to_pfn(pmd_val(pmd) & PHYS_MASK))

Definition at line 211 of file pgtable.h.

#define pmd_present (   pmd)    (pmd_val(pmd))

Definition at line 191 of file pgtable.h.

#define PTE_BIT_FUNC (   fn,
  op 
)    static inline pte_t pte_##fn(pte_t pte) { pte_val(pte) op; return pte; }

Definition at line 139 of file pgtable.h.

#define pte_clear (   mm,
  addr,
  ptep 
)    set_pte(ptep, __pte(0))

Definition at line 116 of file pgtable.h.

#define PTE_DIRTY   (_AT(pteval_t, 1) << 55)

Definition at line 29 of file pgtable.h.

#define pte_dirty (   pte)    (pte_val(pte) & PTE_DIRTY)

Definition at line 129 of file pgtable.h.

#define pte_ERROR (   pte)    __pte_error(__FILE__, __LINE__, pte_val(pte))

Definition at line 47 of file pgtable.h.

#define pte_exec (   pte)    (!(pte_val(pte) & PTE_UXN))

Definition at line 133 of file pgtable.h.

#define PTE_FILE   (_AT(pteval_t, 1) << 2) /* only when !pte_present() */

Definition at line 28 of file pgtable.h.

#define pte_file (   pte)    (pte_val(pte) & PTE_FILE)

Definition at line 307 of file pgtable.h.

#define PTE_FILE_MAX_BITS   61

Definition at line 311 of file pgtable.h.

#define pte_huge (   pte)    ((pte_val(pte) & PTE_TYPE_MASK) == PTE_TYPE_HUGEPAGE)

Definition at line 168 of file pgtable.h.

#define pte_mkhuge (   pte)    (__pte((pte_val(pte) & ~PTE_TYPE_MASK) | PTE_TYPE_HUGEPAGE))

Definition at line 169 of file pgtable.h.

#define pte_none (   pte)    (!pte_val(pte))

Definition at line 115 of file pgtable.h.

#define pte_offset_kernel (   dir,
  addr 
)    (pmd_page_vaddr(*(dir)) + __pte_index(addr))

Definition at line 118 of file pgtable.h.

#define pte_offset_map (   dir,
  addr 
)    pte_offset_kernel((dir), (addr))

Definition at line 120 of file pgtable.h.

#define pte_offset_map_nested (   dir,
  addr 
)    pte_offset_kernel((dir), (addr))

Definition at line 121 of file pgtable.h.

#define pte_page (   pte)    (pfn_to_page(pte_pfn(pte)))

Definition at line 117 of file pgtable.h.

#define pte_pfn (   pte)    ((pte_val(pte) & PHYS_MASK) >> PAGE_SHIFT)

Definition at line 111 of file pgtable.h.

#define pte_present (   pte)    (pte_val(pte) & PTE_VALID)

Definition at line 128 of file pgtable.h.

#define pte_present_exec_user (   pte)
Value:

Definition at line 135 of file pgtable.h.

#define PTE_SPECIAL   (_AT(pteval_t, 1) << 56)

Definition at line 30 of file pgtable.h.

#define pte_special (   pte)    (pte_val(pte) & PTE_SPECIAL)

Definition at line 131 of file pgtable.h.

#define pte_to_pgoff (   x)    (pte_val(x) >> 3)

Definition at line 308 of file pgtable.h.

#define pte_unmap (   pte)    do { } while (0)

Definition at line 122 of file pgtable.h.

#define pte_unmap_nested (   pte)    do { } while (0)

Definition at line 123 of file pgtable.h.

#define PTE_VALID   (_AT(pteval_t, 1) << 0) /* pte_present() check */

Definition at line 27 of file pgtable.h.

#define pte_write (   pte)    (!(pte_val(pte) & PTE_RDONLY))

Definition at line 132 of file pgtable.h.

#define pte_young (   pte)    (pte_val(pte) & PTE_AF)

Definition at line 130 of file pgtable.h.

#define pud_bad (   pud)    (!(pud_val(pud) & 2))

Definition at line 222 of file pgtable.h.

#define pud_none (   pud)    (!pud_val(pud))

Definition at line 221 of file pgtable.h.

#define pud_present (   pud)    (pud_val(pud))

Definition at line 223 of file pgtable.h.

#define SWAPPER_DIR_SIZE   (3 * PAGE_SIZE)

Definition at line 273 of file pgtable.h.

#define VMALLOC_END   (PAGE_OFFSET - UL(0x400000000) - SZ_64K)

Definition at line 36 of file pgtable.h.

#define VMALLOC_START   UL(0xffffff8000000000)

Definition at line 35 of file pgtable.h.

#define vmemmap   ((struct page *)(VMALLOC_END + SZ_64K))

Definition at line 38 of file pgtable.h.

#define ZERO_PAGE (   vaddr)    (empty_zero_page)

Definition at line 109 of file pgtable.h.

Function Documentation

void __pgd_error ( const char file,
int  line,
unsigned long  val 
)

Definition at line 340 of file traps.c.

void __pmd_error ( const char file,
int  line,
unsigned long  val 
)

Definition at line 335 of file traps.c.

void __pte_error ( const char file,
int  line,
unsigned long  val 
)

Definition at line 330 of file traps.c.

void __sync_icache_dcache ( pte_t  pteval,
unsigned long  addr 
)

Definition at line 87 of file flush.c.

int kern_addr_valid ( unsigned long  addr)

Definition at line 322 of file mmu.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.

PTE_BIT_FUNC ( wrprotect  ,
= PTE_RDONLY 
)
PTE_BIT_FUNC ( mkwrite  ,
= ~PTE_RDONLY 
)
PTE_BIT_FUNC ( mkclean  ,
= ~PTE_DIRTY 
)
PTE_BIT_FUNC ( mkdirty  ,
= PTE_DIRTY 
)
PTE_BIT_FUNC ( mkold  ,
= ~PTE_AF 
)
PTE_BIT_FUNC ( mkyoung  ,
= PTE_AF 
)
PTE_BIT_FUNC ( mkspecial  ,
= PTE_SPECIAL 
)

Variable Documentation

struct page* empty_zero_page

Definition at line 42 of file mmu.c.

pgd_t idmap_pg_dir[PTRS_PER_PGD]
pgprot_t pgprot_default

Definition at line 45 of file mmu.c.

pgd_t swapper_pg_dir[PTRS_PER_PGD]

Definition at line 36 of file init.c.