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 <linux/swap.h>
#include <asm/page.h>
#include <asm-generic/pgtable-nopmd.h>
#include <asm/vm_mmu.h>
#include <asm-generic/pgtable.h>

Go to the source code of this file.

Macros

#define _PAGE_READ   __HVM_PTE_R
 
#define _PAGE_WRITE   __HVM_PTE_W
 
#define _PAGE_EXECUTE   __HVM_PTE_X
 
#define _PAGE_USER   __HVM_PTE_U
 
#define _PAGE_PRESENT   (1<<0)
 
#define _PAGE_DIRTY   (1<<1)
 
#define _PAGE_ACCESSED   (1<<2)
 
#define _PAGE_FILE   _PAGE_DIRTY /* set: pagecache, unset = swap */
 
#define _PAGE_VALID   _PAGE_PRESENT
 
#define PGDIR_SHIFT   22
 
#define PTRS_PER_PGD   1024
 
#define PGDIR_SIZE   (1UL << PGDIR_SHIFT)
 
#define PGDIR_MASK   (~(PGDIR_SIZE-1))
 
#define pgd_ERROR(e)
 
#define PAGE_NONE
 
#define PAGE_READONLY
 
#define PAGE_COPY   PAGE_READONLY
 
#define PAGE_EXEC
 
#define PAGE_COPY_EXEC   PAGE_EXEC
 
#define PAGE_SHARED
 
#define PAGE_KERNEL
 
#define CACHEDEF   (CACHE_DEFAULT << 6)
 
#define __P000   __pgprot(_PAGE_PRESENT | _PAGE_USER | CACHEDEF)
 
#define __P001   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | CACHEDEF)
 
#define __P010   __P000 /* Write-only copy-on-write */
 
#define __P011   __P001 /* Read/Write copy-on-write */
 
#define __P100
 
#define __P101
 
#define __P110   __P100 /* Write/execute copy-on-write */
 
#define __P111   __P101 /* Read/Write/Execute, copy-on-write */
 
#define __S000   __P000
 
#define __S001   __P001
 
#define __S010
 
#define __S011
 
#define __S100
 
#define __S101   __P101
 
#define __S110
 
#define __S111
 
#define FIRST_USER_ADDRESS   0
 
#define pte_special(pte)   0
 
#define pte_mkspecial(pte)   (pte)
 
#define pte_present_exec_user(pte)
 
#define _NULL_PMD   0x7
 
#define _NULL_PTE   0x0
 
#define pgd_index(address)   (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
 
#define pgd_offset(mm, addr)   ((mm)->pgd + pgd_index(addr))
 
#define pgd_offset_k(address)   pgd_offset(&init_mm, address)
 
#define pmd_page(pmd)   (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
 
#define pmd_pgtable(pmd)   pmd_page(pmd)
 
#define mk_pte(page, pgprot)   pfn_pte(page_to_pfn(page), (pgprot))
 
#define pte_page(x)   pfn_to_page(pte_pfn(x))
 
#define __pte_to_swp_entry(pte)   ((swp_entry_t) { pte_val(pte) })
 
#define __swp_entry_to_pte(x)   ((pte_t) { (x).val })
 
#define pfn_pte(pfn, pgprot)   __pte((pfn << PAGE_SHIFT) | pgprot_val(pgprot))
 
#define pte_pfn(pte)   (pte_val(pte) >> PAGE_SHIFT)
 
#define set_pmd(pmdptr, pmdval)   (*(pmdptr) = (pmdval))
 
#define set_pte_at(mm, addr, ptep, pte)   set_pte(ptep, pte)
 
#define pte_unmap(pte)   do { } while (0)
 
#define pte_unmap_nested(pte)   do { } while (0)
 
#define pte_offset_map(dir, address)   ((pte_t *)page_address(pmd_page(*(dir))) + __pte_offset(address))
 
#define pte_offset_map_nested(pmd, addr)   pte_offset_map(pmd, addr)
 
#define pte_offset_kernel(dir, address)
 
#define ZERO_PAGE(vaddr)   (virt_to_page(&empty_zero_page))
 
#define __pte_offset(address)   (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
 
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot)   remap_pfn_range(vma, vaddr, pfn, size, prot)
 
#define pgtable_cache_init()   do { } while (0)
 
#define PTE_FILE_MAX_BITS   27
 
#define __swp_type(swp_pte)   (((swp_pte).val >> 2) & 0x1f)
 
#define __swp_offset(swp_pte)   ((((swp_pte).val >> 7) & 0x7) | (((swp_pte).val >> 10) & 0x003ffff8))
 
#define __swp_entry(type, offset)
 
#define pte_file(pte)   ((pte_val(pte) & (_PAGE_FILE | _PAGE_PRESENT)) == _PAGE_FILE)
 
#define pte_to_pgoff(pte)   (((pte_val(pte) >> 2) & 0xff) | ((pte_val(pte) >> 5) & 0x07ffff00))
 
#define pgoff_to_pte(off)
 

Functions

void sync_icache_dcache (pte_t pte)
 

Variables

unsigned long empty_zero_page
 
unsigned long zero_page_mask
 
unsigned long _dflt_cache_att
 
pgd_t swapper_pg_dir [PTRS_PER_PGD]
 

Macro Definition Documentation

#define __P000   __pgprot(_PAGE_PRESENT | _PAGE_USER | CACHEDEF)

Definition at line 152 of file pgtable.h.

#define __P001   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | CACHEDEF)

Definition at line 153 of file pgtable.h.

#define __P010   __P000 /* Write-only copy-on-write */

Definition at line 154 of file pgtable.h.

#define __P011   __P001 /* Read/Write copy-on-write */

Definition at line 155 of file pgtable.h.

#define __P100
Value:

Definition at line 156 of file pgtable.h.

#define __P101
Value:

Definition at line 158 of file pgtable.h.

#define __P110   __P100 /* Write/execute copy-on-write */

Definition at line 160 of file pgtable.h.

#define __P111   __P101 /* Read/Write/Execute, copy-on-write */

Definition at line 161 of file pgtable.h.

#define __pte_offset (   address)    (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))

Definition at line 453 of file pgtable.h.

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

Definition at line 410 of file pgtable.h.

#define __S000   __P000

Definition at line 164 of file pgtable.h.

#define __S001   __P001

Definition at line 165 of file pgtable.h.

#define __S010
Value:

Definition at line 166 of file pgtable.h.

#define __S011
Value:

Definition at line 168 of file pgtable.h.

#define __S100
Value:

Definition at line 170 of file pgtable.h.

#define __S101   __P101

Definition at line 172 of file pgtable.h.

#define __S110
Value:

Definition at line 173 of file pgtable.h.

#define __S111
Value:

Definition at line 175 of file pgtable.h.

#define __swp_entry (   type,
  offset 
)
Value:
((type << 2) | \
((offset & 0x3ffff8) << 10) | ((offset & 0x7) << 7)) })

Definition at line 499 of file pgtable.h.

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

Definition at line 413 of file pgtable.h.

#define __swp_offset (   swp_pte)    ((((swp_pte).val >> 7) & 0x7) | (((swp_pte).val >> 10) & 0x003ffff8))

Definition at line 496 of file pgtable.h.

#define __swp_type (   swp_pte)    (((swp_pte).val >> 2) & 0x1f)

Definition at line 494 of file pgtable.h.

#define _NULL_PMD   0x7

Definition at line 216 of file pgtable.h.

#define _NULL_PTE   0x0

Definition at line 217 of file pgtable.h.

#define _PAGE_ACCESSED   (1<<2)

Definition at line 62 of file pgtable.h.

#define _PAGE_DIRTY   (1<<1)

Definition at line 61 of file pgtable.h.

#define _PAGE_EXECUTE   __HVM_PTE_X

Definition at line 50 of file pgtable.h.

#define _PAGE_FILE   _PAGE_DIRTY /* set: pagecache, unset = swap */

Definition at line 69 of file pgtable.h.

#define _PAGE_PRESENT   (1<<0)

Definition at line 60 of file pgtable.h.

#define _PAGE_READ   __HVM_PTE_R

Definition at line 48 of file pgtable.h.

#define _PAGE_USER   __HVM_PTE_U

Definition at line 51 of file pgtable.h.

#define _PAGE_VALID   _PAGE_PRESENT

Definition at line 76 of file pgtable.h.

#define _PAGE_WRITE   __HVM_PTE_W

Definition at line 49 of file pgtable.h.

#define CACHEDEF   (CACHE_DEFAULT << 6)

Definition at line 149 of file pgtable.h.

#define FIRST_USER_ADDRESS   0

Definition at line 181 of file pgtable.h.

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

Definition at line 456 of file pgtable.h.

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

Definition at line 316 of file pgtable.h.

#define PAGE_COPY   PAGE_READONLY

Definition at line 132 of file pgtable.h.

#define PAGE_COPY_EXEC   PAGE_EXEC

Definition at line 135 of file pgtable.h.

#define PAGE_EXEC
Value:

Definition at line 133 of file pgtable.h.

#define PAGE_KERNEL
#define PAGE_NONE
Value:

Definition at line 128 of file pgtable.h.

#define PAGE_READONLY
Value:

Definition at line 130 of file pgtable.h.

#define PAGE_SHARED
#define pfn_pte (   pfn,
  pgprot 
)    __pte((pfn << PAGE_SHIFT) | pgprot_val(pgprot))

Definition at line 416 of file pgtable.h.

#define pgd_ERROR (   e)
Value:
printk(KERN_ERR "%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__,\

Definition at line 119 of file pgtable.h.

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

pgd_index - returns the index of the entry in the PGD page which would control the given virtual address

This returns the index for the address in the pgd_t

Definition at line 248 of file pgtable.h.

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

Definition at line 253 of file pgtable.h.

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

Definition at line 258 of file pgtable.h.

#define PGDIR_MASK   (~(PGDIR_SIZE-1))

Definition at line 96 of file pgtable.h.

#define PGDIR_SHIFT   22

Definition at line 92 of file pgtable.h.

#define PGDIR_SIZE   (1UL << PGDIR_SHIFT)

Definition at line 95 of file pgtable.h.

#define pgoff_to_pte (   off)
Value:
((pte_t) { ((((off) & 0x7ffff00) << 5) | (((off) & 0xff) << 2)\
| _PAGE_FILE) })

Definition at line 511 of file pgtable.h.

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

Definition at line 460 of file pgtable.h.

#define pmd_page (   pmd)    (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))

Definition at line 295 of file pgtable.h.

#define pmd_pgtable (   pmd)    pmd_page(pmd)

Definition at line 296 of file pgtable.h.

#define pte_file (   pte)    ((pte_val(pte) & (_PAGE_FILE | _PAGE_PRESENT)) == _PAGE_FILE)

Definition at line 505 of file pgtable.h.

#define PTE_FILE_MAX_BITS   27

Definition at line 491 of file pgtable.h.

#define pte_mkspecial (   pte)    (pte)

Definition at line 183 of file pgtable.h.

#define pte_offset_kernel (   dir,
  address 
)
Value:
((pte_t *) (unsigned long) __va(pmd_val(*dir) & PAGE_MASK) \

Definition at line 446 of file pgtable.h.

#define pte_offset_map (   dir,
  address 
)    ((pte_t *)page_address(pmd_page(*(dir))) + __pte_offset(address))

Definition at line 440 of file pgtable.h.

#define pte_offset_map_nested (   pmd,
  addr 
)    pte_offset_map(pmd, addr)

Definition at line 443 of file pgtable.h.

#define pte_page (   x)    pfn_to_page(pte_pfn(x))

Definition at line 319 of file pgtable.h.

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

Definition at line 419 of file pgtable.h.

#define pte_present_exec_user (   pte)
Value:

Definition at line 196 of file pgtable.h.

#define pte_special (   pte)    0

Definition at line 182 of file pgtable.h.

#define pte_to_pgoff (   pte)    (((pte_val(pte) >> 2) & 0xff) | ((pte_val(pte) >> 5) & 0x07ffff00))

Definition at line 508 of file pgtable.h.

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

Definition at line 433 of file pgtable.h.

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

Definition at line 434 of file pgtable.h.

#define PTRS_PER_PGD   1024

Definition at line 93 of file pgtable.h.

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

Definition at line 420 of file pgtable.h.

#define set_pte_at (   mm,
  addr,
  ptep,
  pte 
)    set_pte(ptep, pte)

Definition at line 428 of file pgtable.h.

#define ZERO_PAGE (   vaddr)    (virt_to_page(&empty_zero_page))

Definition at line 451 of file pgtable.h.

Function Documentation

void sync_icache_dcache ( pte_t  pte)

Definition at line 115 of file init.c.

Variable Documentation

unsigned long _dflt_cache_att

Definition at line 51 of file init.c.

unsigned long empty_zero_page

Definition at line 42 of file mmu.c.

pgd_t swapper_pg_dir[PTRS_PER_PGD]

Definition at line 36 of file init.c.

unsigned long zero_page_mask

Definition at line 42 of file init.c.