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 <hv/hypervisor.h>
#include <linux/bitops.h>
#include <linux/threads.h>
#include <linux/slab.h>
#include <linux/list.h>
#include <linux/spinlock.h>
#include <linux/pfn.h>
#include <asm/processor.h>
#include <asm/fixmap.h>
#include <asm/page.h>
#include <asm/pgtable_32.h>
#include <asm-generic/pgtable.h>

Go to the source code of this file.

Macros

#define ZERO_PAGE(vaddr)   (virt_to_page(empty_zero_page))
 
#define PGD_LIST_OFFSET   ((PTRS_PER_PGD * sizeof(pgd_t)) - sizeof(struct list_head))
 
#define pgd_to_list(pgd)   ((struct list_head *)((char *)(pgd) + PGD_LIST_OFFSET))
 
#define list_to_pgd(list)   ((pgd_t *)((char *)(list) - PGD_LIST_OFFSET))
 
#define FIRST_USER_ADDRESS   0
 
#define _PAGE_PRESENT   HV_PTE_PRESENT
 
#define _PAGE_HUGE_PAGE   HV_PTE_PAGE
 
#define _PAGE_SUPER_PAGE   HV_PTE_SUPER
 
#define _PAGE_READABLE   HV_PTE_READABLE
 
#define _PAGE_WRITABLE   HV_PTE_WRITABLE
 
#define _PAGE_EXECUTABLE   HV_PTE_EXECUTABLE
 
#define _PAGE_ACCESSED   HV_PTE_ACCESSED
 
#define _PAGE_DIRTY   HV_PTE_DIRTY
 
#define _PAGE_GLOBAL   HV_PTE_GLOBAL
 
#define _PAGE_USER   HV_PTE_USER
 
#define _PAGE_ALL
 
#define PAGE_NONE   __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED)
 
#define PAGE_SHARED
 
#define PAGE_SHARED_EXEC
 
#define PAGE_COPY_NOEXEC   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_READABLE)
 
#define PAGE_COPY_EXEC
 
#define PAGE_COPY   PAGE_COPY_NOEXEC
 
#define PAGE_READONLY   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_READABLE)
 
#define PAGE_READONLY_EXEC
 
#define _PAGE_KERNEL_RO   (_PAGE_PRESENT | _PAGE_GLOBAL | _PAGE_READABLE | _PAGE_ACCESSED)
 
#define _PAGE_KERNEL   (_PAGE_KERNEL_RO | _PAGE_WRITABLE | _PAGE_DIRTY)
 
#define _PAGE_KERNEL_EXEC   (_PAGE_KERNEL_RO | _PAGE_EXECUTABLE)
 
#define PAGE_KERNEL   __pgprot(_PAGE_KERNEL)
 
#define PAGE_KERNEL_RO   __pgprot(_PAGE_KERNEL_RO)
 
#define PAGE_KERNEL_EXEC   __pgprot(_PAGE_KERNEL_EXEC)
 
#define page_to_kpgprot(p)   PAGE_KERNEL
 
#define __P000   PAGE_NONE
 
#define __P001   PAGE_READONLY
 
#define __P010   PAGE_COPY /* this is write-only, which we won't support */
 
#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 _PAGE_TABLE   _PAGE_PRESENT
 
#define pgprot_modify(oldprot, newprot)   (pgprot_t) { ((oldprot).val & ~_PAGE_ALL) | (newprot).val }
 
#define pte_pgprot(x)   hv_pte_set_pa((x), 0)
 
#define pte_clear(mm, addr, ptep)   __pte_clear(ptep)
 
#define pte_present   hv_pte_get_present
 
#define pte_mknotpresent   hv_pte_clear_present
 
#define pte_user   hv_pte_get_user
 
#define pte_read   hv_pte_get_readable
 
#define pte_dirty   hv_pte_get_dirty
 
#define pte_young   hv_pte_get_accessed
 
#define pte_write   hv_pte_get_writable
 
#define pte_exec   hv_pte_get_executable
 
#define pte_huge   hv_pte_get_page
 
#define pte_super   hv_pte_get_super
 
#define pte_rdprotect   hv_pte_clear_readable
 
#define pte_exprotect   hv_pte_clear_executable
 
#define pte_mkclean   hv_pte_clear_dirty
 
#define pte_mkold   hv_pte_clear_accessed
 
#define pte_wrprotect   hv_pte_clear_writable
 
#define pte_mksmall   hv_pte_clear_page
 
#define pte_mkread   hv_pte_set_readable
 
#define pte_mkexec   hv_pte_set_executable
 
#define pte_mkdirty   hv_pte_set_dirty
 
#define pte_mkyoung   hv_pte_set_accessed
 
#define pte_mkwrite   hv_pte_set_writable
 
#define pte_mkhuge   hv_pte_set_page
 
#define pte_mksuper   hv_pte_set_super
 
#define pte_special(pte)   0
 
#define pte_mkspecial(pte)   (pte)
 
#define pte_set_forcecache   hv_pte_set_client0
 
#define pte_get_forcecache   hv_pte_get_client0
 
#define pte_clear_forcecache   hv_pte_clear_client0
 
#define pte_set_anyhome   hv_pte_set_client1
 
#define pte_get_anyhome   hv_pte_get_client1
 
#define pte_clear_anyhome   hv_pte_clear_client1
 
#define pte_migrating   hv_pte_get_migrating
 
#define pte_mkmigrate(x)   hv_pte_set_migrating(hv_pte_clear_present(x))
 
#define pte_donemigrate(x)   hv_pte_set_present(hv_pte_clear_migrating(x))
 
#define pte_ERROR(e)   pr_err("%s:%d: bad pte 0x%016llx.\n", __FILE__, __LINE__, pte_val(e))
 
#define pgd_ERROR(e)   pr_err("%s:%d: bad pgd 0x%016llx.\n", __FILE__, __LINE__, pgd_val(e))
 
#define set_pte_at(mm, addr, ptep, pteval)   set_pte(ptep, pteval)
 
#define set_pte_atomic(pteptr, pteval)   set_pte(pteptr, pteval)
 
#define pte_page(x)   pfn_to_page(pte_pfn(x))
 
#define _PAGE_FILE   HV_PTE_CLIENT1
 
#define PTE_FILE_MAX_BITS   32
 
#define pte_file(pte)   (hv_pte_get_client1(pte) && !hv_pte_get_client0(pte))
 
#define pte_to_pgoff(pte)   ((pte).val >> 32)
 
#define pgoff_to_pte(off)   ((pte_t) { (((long long)(off)) << 32) | _PAGE_FILE })
 
#define __swp_type(swp)   ((swp).val & 0x1f)
 
#define __swp_offset(swp)   ((swp).val >> 5)
 
#define __swp_entry(type, off)   ((swp_entry_t) { (type) | ((off) << 5) })
 
#define __pte_to_swp_entry(pte)   ((swp_entry_t) { (pte).val >> 32 })
 
#define __swp_entry_to_pte(swp)   ((pte_t) { (((long long) ((swp).val)) << 32) })
 
#define mk_pte(page, pgprot)   pfn_pte(page_to_pfn(page), (pgprot))
 
#define pgd_index(address)   (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD - 1))
 
#define pgd_offset(mm, address)   ((mm)->pgd + pgd_index(address))
 
#define pgd_offset_k(address)   pgd_offset(&init_mm, address)
 
#define pte_offset_map(dir, address)   pte_offset_kernel(dir, address)
 
#define pte_unmap(pte)   do { } while (0)
 
#define kpte_clear_flush(ptep, vaddr)
 
#define update_mmu_cache(vma, address, pte)   do { } while (0)
 
#define io_remap_pfn_range(vma, vaddr, pfn, size, prot)   remap_pfn_range(vma, vaddr, pfn, size, prot)
 
#define __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG
 
#define __HAVE_ARCH_PMDP_SET_WRPROTECT
 
#define __HAVE_ARCH_PMDP_GET_AND_CLEAR
 
#define set_pmd_at(mm, addr, pmdp, pmdval)   __set_pmd(pmdp, pmdval)
 
#define pmd_ptfn(pmd)   hv_pte_get_ptfn(pmd_pte(pmd))
 
#define pmd_page(pmd)   pfn_to_page(PFN_DOWN(HV_PTFN_TO_CPA(pmd_ptfn(pmd))))
 
#define pmd_mknotpresent(pmd)   pte_pmd(pte_mknotpresent(pmd_pte(pmd)))
 
#define pmd_young(pmd)   pte_young(pmd_pte(pmd))
 
#define pmd_mkyoung(pmd)   pte_pmd(pte_mkyoung(pmd_pte(pmd)))
 
#define pmd_mkold(pmd)   pte_pmd(pte_mkold(pmd_pte(pmd)))
 
#define pmd_mkwrite(pmd)   pte_pmd(pte_mkwrite(pmd_pte(pmd)))
 
#define pmd_write(pmd)   pte_write(pmd_pte(pmd))
 
#define pmd_wrprotect(pmd)   pte_pmd(pte_wrprotect(pmd_pte(pmd)))
 
#define pmd_mkdirty(pmd)   pte_pmd(pte_mkdirty(pmd_pte(pmd)))
 
#define pmd_huge_page(pmd)   pte_huge(pmd_pte(pmd))
 
#define pmd_mkhuge(pmd)   pte_pmd(pte_mkhuge(pmd_pte(pmd)))
 
#define __HAVE_ARCH_PMD_WRITE
 
#define pfn_pmd(pfn, pgprot)   pte_pmd(pfn_pte((pfn), (pgprot)))
 
#define pmd_pfn(pmd)   pte_pfn(pmd_pte(pmd))
 
#define mk_pmd(page, pgprot)   pfn_pmd(page_to_pfn(page), (pgprot))
 

Functions

void pgtable_cache_init (void)
 
void paging_init (void)
 
void set_page_homes (void)
 
int va_to_cpa_and_pte (void *va, phys_addr_t *cpa, pte_t *pte)
 
void __set_pte (pte_t *ptep, pte_t pte)
 
void set_pte (pte_t *ptep, pte_t pte)
 
pgprot_t set_remote_cache_cpu (pgprot_t prot, int cpu)
 
int get_remote_cache_cpu (pgprot_t prot)
 
void start_mm_caching (struct mm_struct *mm)
 
void check_mm_caching (struct mm_struct *prev, struct mm_struct *next)
 
void vmalloc_sync_all (void)
 
int arch_proc_pgtable_show (struct seq_file *m, struct mm_struct *mm, unsigned long vaddr, unsigned long pagesize, pte_t *ptep, void **datap)
 

Variables

unsigned long empty_zero_page [PAGE_SIZE/sizeof(unsigned long)]
 
pgd_t swapper_pg_dir []
 
pgprot_t swapper_pgprot
 
struct kmem_cachepgd_cache
 
spinlock_t pgd_lock
 
struct list_head pgd_list
 

Macro Definition Documentation

#define __HAVE_ARCH_PMD_WRITE

Definition at line 492 of file pgtable.h.

#define __HAVE_ARCH_PMDP_GET_AND_CLEAR

Definition at line 431 of file pgtable.h.

#define __HAVE_ARCH_PMDP_SET_WRPROTECT

Definition at line 423 of file pgtable.h.

#define __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG

Definition at line 415 of file pgtable.h.

#define __P000   PAGE_NONE

Definition at line 139 of file pgtable.h.

#define __P001   PAGE_READONLY

Definition at line 140 of file pgtable.h.

#define __P010   PAGE_COPY /* this is write-only, which we won't support */

Definition at line 141 of file pgtable.h.

#define __P011   PAGE_COPY

Definition at line 142 of file pgtable.h.

#define __P100   PAGE_READONLY_EXEC

Definition at line 143 of file pgtable.h.

#define __P101   PAGE_READONLY_EXEC

Definition at line 144 of file pgtable.h.

#define __P110   PAGE_COPY_EXEC

Definition at line 145 of file pgtable.h.

#define __P111   PAGE_COPY_EXEC

Definition at line 146 of file pgtable.h.

#define __pte_to_swp_entry (   pte)    ((swp_entry_t) { (pte).val >> 32 })

Definition at line 306 of file pgtable.h.

#define __S000   PAGE_NONE

Definition at line 148 of file pgtable.h.

#define __S001   PAGE_READONLY

Definition at line 149 of file pgtable.h.

#define __S010   PAGE_SHARED

Definition at line 150 of file pgtable.h.

#define __S011   PAGE_SHARED

Definition at line 151 of file pgtable.h.

#define __S100   PAGE_READONLY_EXEC

Definition at line 152 of file pgtable.h.

#define __S101   PAGE_READONLY_EXEC

Definition at line 153 of file pgtable.h.

#define __S110   PAGE_SHARED_EXEC

Definition at line 154 of file pgtable.h.

#define __S111   PAGE_SHARED_EXEC

Definition at line 155 of file pgtable.h.

#define __swp_entry (   type,
  off 
)    ((swp_entry_t) { (type) | ((off) << 5) })

Definition at line 305 of file pgtable.h.

#define __swp_entry_to_pte (   swp)    ((pte_t) { (((long long) ((swp).val)) << 32) })

Definition at line 307 of file pgtable.h.

#define __swp_offset (   swp)    ((swp).val >> 5)

Definition at line 304 of file pgtable.h.

#define __swp_type (   swp)    ((swp).val & 0x1f)

Definition at line 303 of file pgtable.h.

#define _PAGE_ACCESSED   HV_PTE_ACCESSED

Definition at line 78 of file pgtable.h.

#define _PAGE_ALL
Value:
(\
_PAGE_PRESENT | \
_PAGE_HUGE_PAGE | \
_PAGE_SUPER_PAGE | \
_PAGE_READABLE | \
_PAGE_WRITABLE | \
_PAGE_EXECUTABLE | \
_PAGE_ACCESSED | \
_PAGE_DIRTY | \
_PAGE_GLOBAL | \
_PAGE_USER \
)

Definition at line 88 of file pgtable.h.

#define _PAGE_DIRTY   HV_PTE_DIRTY

Definition at line 79 of file pgtable.h.

#define _PAGE_EXECUTABLE   HV_PTE_EXECUTABLE

Definition at line 77 of file pgtable.h.

#define _PAGE_FILE   HV_PTE_CLIENT1

Definition at line 292 of file pgtable.h.

#define _PAGE_GLOBAL   HV_PTE_GLOBAL

Definition at line 80 of file pgtable.h.

#define _PAGE_HUGE_PAGE   HV_PTE_PAGE

Definition at line 73 of file pgtable.h.

#define _PAGE_KERNEL   (_PAGE_KERNEL_RO | _PAGE_WRITABLE | _PAGE_DIRTY)

Definition at line 125 of file pgtable.h.

#define _PAGE_KERNEL_EXEC   (_PAGE_KERNEL_RO | _PAGE_EXECUTABLE)

Definition at line 127 of file pgtable.h.

#define _PAGE_KERNEL_RO   (_PAGE_PRESENT | _PAGE_GLOBAL | _PAGE_READABLE | _PAGE_ACCESSED)

Definition at line 123 of file pgtable.h.

#define _PAGE_PRESENT   HV_PTE_PRESENT

Definition at line 72 of file pgtable.h.

#define _PAGE_READABLE   HV_PTE_READABLE

Definition at line 75 of file pgtable.h.

#define _PAGE_SUPER_PAGE   HV_PTE_SUPER

Definition at line 74 of file pgtable.h.

#define _PAGE_TABLE   _PAGE_PRESENT

Definition at line 162 of file pgtable.h.

#define _PAGE_USER   HV_PTE_USER

Definition at line 81 of file pgtable.h.

#define _PAGE_WRITABLE   HV_PTE_WRITABLE

Definition at line 76 of file pgtable.h.

#define FIRST_USER_ADDRESS   0

Definition at line 70 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 365 of file pgtable.h.

#define kpte_clear_flush (   ptep,
  vaddr 
)
Value:
do { \
pte_clear(&init_mm, (vaddr), (ptep)); \
local_flush_tlb_page(FLUSH_NONEXEC, (vaddr), PAGE_SIZE); \
} while (0)

Definition at line 349 of file pgtable.h.

#define list_to_pgd (   list)    ((pgd_t *)((char *)(list) - PGD_LIST_OFFSET))

Definition at line 63 of file pgtable.h.

#define mk_pmd (   page,
  pgprot 
)    pfn_pmd(page_to_pfn(page), (pgprot))

Definition at line 496 of file pgtable.h.

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

Definition at line 314 of file pgtable.h.

#define PAGE_COPY   PAGE_COPY_NOEXEC

Definition at line 115 of file pgtable.h.

#define PAGE_COPY_EXEC
#define PAGE_COPY_NOEXEC   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_READABLE)

Definition at line 110 of file pgtable.h.

#define PAGE_KERNEL   __pgprot(_PAGE_KERNEL)

Definition at line 129 of file pgtable.h.

#define PAGE_KERNEL_EXEC   __pgprot(_PAGE_KERNEL_EXEC)

Definition at line 131 of file pgtable.h.

#define PAGE_KERNEL_RO   __pgprot(_PAGE_KERNEL_RO)

Definition at line 130 of file pgtable.h.

#define PAGE_NONE   __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED)

Definition at line 101 of file pgtable.h.

#define PAGE_READONLY   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_READABLE)

Definition at line 117 of file pgtable.h.

#define PAGE_READONLY_EXEC
#define PAGE_SHARED
#define PAGE_SHARED_EXEC
#define page_to_kpgprot (   p)    PAGE_KERNEL

Definition at line 133 of file pgtable.h.

#define pfn_pmd (   pfn,
  pgprot 
)    pte_pmd(pfn_pte((pfn), (pgprot)))

Definition at line 494 of file pgtable.h.

#define pgd_ERROR (   e)    pr_err("%s:%d: bad pgd 0x%016llx.\n", __FILE__, __LINE__, pgd_val(e))

Definition at line 239 of file pgtable.h.

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

Definition at line 331 of file pgtable.h.

#define PGD_LIST_OFFSET   ((PTRS_PER_PGD * sizeof(pgd_t)) - sizeof(struct list_head))

Definition at line 59 of file pgtable.h.

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

Definition at line 337 of file pgtable.h.

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

Definition at line 343 of file pgtable.h.

#define pgd_to_list (   pgd)    ((struct list_head *)((char *)(pgd) + PGD_LIST_OFFSET))

Definition at line 61 of file pgtable.h.

#define pgoff_to_pte (   off)    ((pte_t) { (((long long)(off)) << 32) | _PAGE_FILE })

Definition at line 296 of file pgtable.h.

#define pgprot_modify (   oldprot,
  newprot 
)    (pgprot_t) { ((oldprot).val & ~_PAGE_ALL) | (newprot).val }

Definition at line 165 of file pgtable.h.

#define pmd_huge_page (   pmd)    pte_huge(pmd_pte(pmd))

Definition at line 490 of file pgtable.h.

#define pmd_mkdirty (   pmd)    pte_pmd(pte_mkdirty(pmd_pte(pmd)))

Definition at line 489 of file pgtable.h.

#define pmd_mkhuge (   pmd)    pte_pmd(pte_mkhuge(pmd_pte(pmd)))

Definition at line 491 of file pgtable.h.

#define pmd_mknotpresent (   pmd)    pte_pmd(pte_mknotpresent(pmd_pte(pmd)))

Definition at line 482 of file pgtable.h.

#define pmd_mkold (   pmd)    pte_pmd(pte_mkold(pmd_pte(pmd)))

Definition at line 485 of file pgtable.h.

#define pmd_mkwrite (   pmd)    pte_pmd(pte_mkwrite(pmd_pte(pmd)))

Definition at line 486 of file pgtable.h.

#define pmd_mkyoung (   pmd)    pte_pmd(pte_mkyoung(pmd_pte(pmd)))

Definition at line 484 of file pgtable.h.

#define pmd_page (   pmd)    pfn_to_page(PFN_DOWN(HV_PTFN_TO_CPA(pmd_ptfn(pmd))))

Definition at line 475 of file pgtable.h.

#define pmd_pfn (   pmd)    pte_pfn(pmd_pte(pmd))

Definition at line 495 of file pgtable.h.

#define pmd_ptfn (   pmd)    hv_pte_get_ptfn(pmd_pte(pmd))

Definition at line 453 of file pgtable.h.

#define pmd_write (   pmd)    pte_write(pmd_pte(pmd))

Definition at line 487 of file pgtable.h.

#define pmd_wrprotect (   pmd)    pte_pmd(pte_wrprotect(pmd_pte(pmd)))

Definition at line 488 of file pgtable.h.

#define pmd_young (   pmd)    pte_young(pmd_pte(pmd))

Definition at line 483 of file pgtable.h.

#define pte_clear (   mm,
  addr,
  ptep 
)    __pte_clear(ptep)

Definition at line 187 of file pgtable.h.

#define pte_clear_anyhome   hv_pte_clear_client1

Definition at line 228 of file pgtable.h.

#define pte_clear_forcecache   hv_pte_clear_client0

Definition at line 225 of file pgtable.h.

#define pte_dirty   hv_pte_get_dirty

Definition at line 197 of file pgtable.h.

#define pte_donemigrate (   x)    hv_pte_set_present(hv_pte_clear_migrating(x))

Definition at line 235 of file pgtable.h.

#define pte_ERROR (   e)    pr_err("%s:%d: bad pte 0x%016llx.\n", __FILE__, __LINE__, pte_val(e))

Definition at line 237 of file pgtable.h.

#define pte_exec   hv_pte_get_executable

Definition at line 200 of file pgtable.h.

#define pte_exprotect   hv_pte_clear_executable

Definition at line 204 of file pgtable.h.

#define pte_file (   pte)    (hv_pte_get_client1(pte) && !hv_pte_get_client0(pte))

Definition at line 294 of file pgtable.h.

#define PTE_FILE_MAX_BITS   32

Definition at line 293 of file pgtable.h.

#define pte_get_anyhome   hv_pte_get_client1

Definition at line 227 of file pgtable.h.

#define pte_get_forcecache   hv_pte_get_client0

Definition at line 224 of file pgtable.h.

#define pte_huge   hv_pte_get_page

Definition at line 201 of file pgtable.h.

#define pte_migrating   hv_pte_get_migrating

Definition at line 233 of file pgtable.h.

#define pte_mkclean   hv_pte_clear_dirty

Definition at line 205 of file pgtable.h.

#define pte_mkdirty   hv_pte_set_dirty

Definition at line 211 of file pgtable.h.

#define pte_mkexec   hv_pte_set_executable

Definition at line 210 of file pgtable.h.

#define pte_mkhuge   hv_pte_set_page

Definition at line 214 of file pgtable.h.

#define pte_mkmigrate (   x)    hv_pte_set_migrating(hv_pte_clear_present(x))

Definition at line 234 of file pgtable.h.

#define pte_mknotpresent   hv_pte_clear_present

Definition at line 194 of file pgtable.h.

#define pte_mkold   hv_pte_clear_accessed

Definition at line 206 of file pgtable.h.

#define pte_mkread   hv_pte_set_readable

Definition at line 209 of file pgtable.h.

#define pte_mksmall   hv_pte_clear_page

Definition at line 208 of file pgtable.h.

#define pte_mkspecial (   pte)    (pte)

Definition at line 218 of file pgtable.h.

#define pte_mksuper   hv_pte_set_super

Definition at line 215 of file pgtable.h.

#define pte_mkwrite   hv_pte_set_writable

Definition at line 213 of file pgtable.h.

#define pte_mkyoung   hv_pte_set_accessed

Definition at line 212 of file pgtable.h.

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

Definition at line 345 of file pgtable.h.

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

Definition at line 262 of file pgtable.h.

#define pte_pgprot (   x)    hv_pte_set_pa((x), 0)

Definition at line 169 of file pgtable.h.

#define pte_present   hv_pte_get_present

Definition at line 193 of file pgtable.h.

#define pte_rdprotect   hv_pte_clear_readable

Definition at line 203 of file pgtable.h.

#define pte_read   hv_pte_get_readable

Definition at line 196 of file pgtable.h.

#define pte_set_anyhome   hv_pte_set_client1

Definition at line 226 of file pgtable.h.

#define pte_set_forcecache   hv_pte_set_client0

Definition at line 223 of file pgtable.h.

#define pte_special (   pte)    0

Definition at line 217 of file pgtable.h.

#define pte_super   hv_pte_get_super

Definition at line 202 of file pgtable.h.

#define pte_to_pgoff (   pte)    ((pte).val >> 32)

Definition at line 295 of file pgtable.h.

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

Definition at line 346 of file pgtable.h.

#define pte_user   hv_pte_get_user

Definition at line 195 of file pgtable.h.

#define pte_write   hv_pte_get_writable

Definition at line 199 of file pgtable.h.

#define pte_wrprotect   hv_pte_clear_writable

Definition at line 207 of file pgtable.h.

#define pte_young   hv_pte_get_accessed

Definition at line 198 of file pgtable.h.

#define set_pmd_at (   mm,
  addr,
  pmdp,
  pmdval 
)    __set_pmd(pmdp, pmdval)

Definition at line 444 of file pgtable.h.

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

Definition at line 259 of file pgtable.h.

#define set_pte_atomic (   pteptr,
  pteval 
)    set_pte(pteptr, pteval)

Definition at line 260 of file pgtable.h.

#define update_mmu_cache (   vma,
  address,
  pte 
)    do { } while (0)

Definition at line 359 of file pgtable.h.

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

Definition at line 43 of file pgtable.h.

Function Documentation

void __set_pte ( pte_t ptep,
pte_t  pte 
)

Definition at line 436 of file pgtable.c.

int arch_proc_pgtable_show ( struct seq_file m,
struct mm_struct mm,
unsigned long  vaddr,
unsigned long  pagesize,
pte_t ptep,
void **  datap 
)
void check_mm_caching ( struct mm_struct prev,
struct mm_struct next 
)

Definition at line 519 of file pgtable.c.

int get_remote_cache_cpu ( pgprot_t  prot)

Definition at line 410 of file pgtable.c.

void paging_init ( void  )

paging_init - setup page tables

paging_init() sets up the page tables for each node of the system and frees the bootmem allocator memory for general use.

Definition at line 238 of file init.c.

void pgtable_cache_init ( void  )

Definition at line 145 of file pgalloc.c.

void set_page_homes ( void  )

Definition at line 811 of file init.c.

void set_pte ( pte_t ptep,
pte_t  pte 
)

Definition at line 456 of file pgtable.c.

pgprot_t set_remote_cache_cpu ( pgprot_t  prot,
int  cpu 
)

Definition at line 398 of file pgtable.c.

void start_mm_caching ( struct mm_struct mm)

Definition at line 484 of file pgtable.c.

int va_to_cpa_and_pte ( void va,
phys_addr_t cpa,
pte_t pte 
)
void vmalloc_sync_all ( void  )

Definition at line 868 of file fault.c.

Variable Documentation

unsigned long empty_zero_page[PAGE_SIZE/sizeof(unsigned long)]

Definition at line 42 of file mmu.c.

struct kmem_cache* pgd_cache

Definition at line 940 of file init.c.

struct list_head pgd_list

Definition at line 83 of file pgalloc.c.

spinlock_t pgd_lock
pgd_t swapper_pg_dir[]

Definition at line 36 of file init.c.

pgprot_t swapper_pgprot