Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
pgtable.h File Reference
#include <linux/sched.h>
#include <linux/mm_types.h>
#include <asm/bug.h>
#include <asm/page.h>
#include <asm-generic/pgtable.h>

Go to the source code of this file.

Data Structures

struct  gmap
 
struct  gmap_rmap
 
struct  gmap_pgtable
 

Macros

#define update_mmu_cache(vma, address, ptep)   do { } while (0)
 
#define update_mmu_cache_pmd(vma, address, ptep)   do { } while (0)
 
#define ZERO_PAGE(vaddr)
 
#define is_zero_pfn   is_zero_pfn
 
#define my_zero_pfn(addr)   page_to_pfn(ZERO_PAGE(addr))
 
#define PMD_SHIFT   20
 
#define PUD_SHIFT   20
 
#define PGDIR_SHIFT   20
 
#define PMD_SIZE   (1UL << PMD_SHIFT)
 
#define PMD_MASK   (~(PMD_SIZE-1))
 
#define PUD_SIZE   (1UL << PUD_SHIFT)
 
#define PUD_MASK   (~(PUD_SIZE-1))
 
#define PGDIR_SIZE   (1UL << PGDIR_SHIFT)
 
#define PGDIR_MASK   (~(PGDIR_SIZE-1))
 
#define PTRS_PER_PTE   256
 
#define PTRS_PER_PMD   1
 
#define PTRS_PER_PUD   1
 
#define PTRS_PER_PGD   2048
 
#define FIRST_USER_ADDRESS   0
 
#define pte_ERROR(e)   printk("%s:%d: bad pte %p.\n", __FILE__, __LINE__, (void *) pte_val(e))
 
#define pmd_ERROR(e)   printk("%s:%d: bad pmd %p.\n", __FILE__, __LINE__, (void *) pmd_val(e))
 
#define pud_ERROR(e)   printk("%s:%d: bad pud %p.\n", __FILE__, __LINE__, (void *) pud_val(e))
 
#define pgd_ERROR(e)   printk("%s:%d: bad pgd %p.\n", __FILE__, __LINE__, (void *) pgd_val(e))
 
#define VMEM_MAX_PHYS   ((unsigned long) vmemmap)
 
#define _PAGE_CO   0x100 /* HW Change-bit override */
 
#define _PAGE_RO   0x200 /* HW read-only bit */
 
#define _PAGE_INVALID   0x400 /* HW invalid bit */
 
#define _PAGE_SWT   0x001 /* SW pte type bit t */
 
#define _PAGE_SWX   0x002 /* SW pte type bit x */
 
#define _PAGE_SWC   0x004 /* SW pte changed bit (for KVM) */
 
#define _PAGE_SWR   0x008 /* SW pte referenced bit (for KVM) */
 
#define _PAGE_SPECIAL   0x010 /* SW associated with special page */
 
#define __HAVE_ARCH_PTE_SPECIAL
 
#define _PAGE_CHG_MASK   (PAGE_MASK | _PAGE_SPECIAL | _PAGE_SWC | _PAGE_SWR)
 
#define _PAGE_TYPE_EMPTY   0x400
 
#define _PAGE_TYPE_NONE   0x401
 
#define _PAGE_TYPE_SWAP   0x403
 
#define _PAGE_TYPE_FILE   0x601 /* bit 0x002 is used for offset !! */
 
#define _PAGE_TYPE_RO   0x200
 
#define _PAGE_TYPE_RW   0x000
 
#define _HPAGE_TYPE_EMPTY   0x020 /* _SEGMENT_ENTRY_INV */
 
#define _HPAGE_TYPE_NONE   0x220
 
#define _HPAGE_TYPE_RO   0x200 /* _SEGMENT_ENTRY_RO */
 
#define _HPAGE_TYPE_RW   0x000
 
#define _ASCE_SPACE_SWITCH   0x80000000UL /* space switch event */
 
#define _ASCE_ORIGIN_MASK   0x7ffff000UL /* segment table origin */
 
#define _ASCE_PRIVATE_SPACE   0x100 /* private space control */
 
#define _ASCE_ALT_EVENT   0x80 /* storage alteration event control */
 
#define _ASCE_TABLE_LENGTH   0x7f /* 128 x 64 entries = 8k */
 
#define _SEGMENT_ENTRY_ORIGIN   0x7fffffc0UL /* page table origin */
 
#define _SEGMENT_ENTRY_RO   0x200 /* page protection bit */
 
#define _SEGMENT_ENTRY_INV   0x20 /* invalid segment table entry */
 
#define _SEGMENT_ENTRY_COMMON   0x10 /* common segment bit */
 
#define _SEGMENT_ENTRY_PTL   0x0f /* page table length */
 
#define _SEGMENT_ENTRY   (_SEGMENT_ENTRY_PTL)
 
#define _SEGMENT_ENTRY_EMPTY   (_SEGMENT_ENTRY_INV)
 
#define RCP_ACC_BITS   0xf0000000UL
 
#define RCP_FP_BIT   0x08000000UL
 
#define RCP_PCL_BIT   0x00800000UL
 
#define RCP_HR_BIT   0x00400000UL
 
#define RCP_HC_BIT   0x00200000UL
 
#define RCP_GR_BIT   0x00040000UL
 
#define RCP_GC_BIT   0x00020000UL
 
#define KVM_UR_BIT   0x00008000UL
 
#define KVM_UC_BIT   0x00004000UL
 
#define _ASCE_USER_BITS
 
#define PAGE_NONE   __pgprot(_PAGE_TYPE_NONE)
 
#define PAGE_RO   __pgprot(_PAGE_TYPE_RO)
 
#define PAGE_RW   __pgprot(_PAGE_TYPE_RW)
 
#define PAGE_KERNEL   PAGE_RW
 
#define PAGE_COPY   PAGE_RO
 
#define __P000   PAGE_NONE
 
#define __P001   PAGE_RO
 
#define __P010   PAGE_RO
 
#define __P011   PAGE_RO
 
#define __P100   PAGE_RO
 
#define __P101   PAGE_RO
 
#define __P110   PAGE_RO
 
#define __P111   PAGE_RO
 
#define __S000   PAGE_NONE
 
#define __S001   PAGE_RO
 
#define __S010   PAGE_RW
 
#define __S011   PAGE_RW
 
#define __S100   PAGE_RO
 
#define __S101   PAGE_RO
 
#define __S110   PAGE_RW
 
#define __S111   PAGE_RW
 
#define __HAVE_ARCH_PMDP_SPLITTING_FLUSH
 
#define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS
 
#define __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH
 
#define __HAVE_ARCH_PMD_WRITE
 
#define __HAVE_ARCH_PTE_SAME
 
#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
 
#define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
 
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
 
#define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION
 
#define __HAVE_ARCH_PTEP_CLEAR_FLUSH
 
#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
 
#define __HAVE_ARCH_PTEP_SET_WRPROTECT
 
#define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
 
#define pgd_index(address)   (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
 
#define pud_index(address)   (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1))
 
#define pmd_index(address)   (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1))
 
#define pte_index(address)   (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE-1))
 
#define pgd_offset(mm, address)   ((mm)->pgd + pgd_index(address))
 
#define pgd_offset_k(address)   pgd_offset(&init_mm, address)
 
#define pmd_deref(pmd)   (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN)
 
#define pud_deref(pmd)   ({ BUG(); 0UL; })
 
#define pgd_deref(pmd)   ({ BUG(); 0UL; })
 
#define pud_offset(pgd, address)   ((pud_t *) pgd)
 
#define pmd_offset(pud, address)   ((pmd_t *) pud + pmd_index(address))
 
#define pfn_pte(pfn, pgprot)   mk_pte_phys(__pa((pfn) << PAGE_SHIFT),(pgprot))
 
#define pte_pfn(x)   (pte_val(x) >> PAGE_SHIFT)
 
#define pte_page(x)   pfn_to_page(pte_pfn(x))
 
#define pmd_page(pmd)   pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)
 
#define pte_offset(pmd, addr)   ((pte_t *) pmd_deref(*(pmd)) + pte_index(addr))
 
#define pte_offset_kernel(pmd, address)   pte_offset(pmd,address)
 
#define pte_offset_map(pmd, address)   pte_offset_kernel(pmd, address)
 
#define pte_unmap(pte)   do { } while (0)
 
#define __SWP_OFFSET_MASK   (~0UL >> 12)
 
#define __swp_type(entry)   (((entry).val >> 2) & 0x1f)
 
#define __swp_offset(entry)   (((entry).val >> 11) | (((entry).val >> 7) & 1))
 
#define __swp_entry(type, offset)   ((swp_entry_t) { pte_val(mk_swap_pte((type),(offset))) })
 
#define __pte_to_swp_entry(pte)   ((swp_entry_t) { pte_val(pte) })
 
#define __swp_entry_to_pte(x)   ((pte_t) { (x).val })
 
#define PTE_FILE_MAX_BITS   26
 
#define pte_to_pgoff(__pte)   ((((__pte).pte >> 12) << 7) + (((__pte).pte >> 1) & 0x7f))
 
#define pgoff_to_pte(__off)
 
#define kern_addr_valid(addr)   (1)
 
#define pgtable_cache_init()   do { } while (0)
 

Functions

pgd_t swapper_pg_dir[] __attribute__ ((aligned(4096)))
 
void paging_init (void)
 
void vmem_map_init (void)
 
void fault_init (void)
 
void pmdp_splitting_flush (struct vm_area_struct *vma, unsigned long addr, pmd_t *pmdp)
 
int pmdp_set_access_flags (struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty)
 
int pmdp_clear_flush_young (struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp)
 
struct gmapgmap_alloc (struct mm_struct *mm)
 
void gmap_free (struct gmap *gmap)
 
void gmap_enable (struct gmap *gmap)
 
void gmap_disable (struct gmap *gmap)
 
int gmap_map_segment (struct gmap *gmap, unsigned long from, unsigned long to, unsigned long length)
 
int gmap_unmap_segment (struct gmap *gmap, unsigned long to, unsigned long len)
 
unsigned long __gmap_fault (unsigned long address, struct gmap *)
 
unsigned long gmap_fault (unsigned long address, struct gmap *)
 
void gmap_discard (unsigned long from, unsigned long to, struct gmap *)
 
int vmem_add_mapping (unsigned long start, unsigned long size)
 
int vmem_remove_mapping (unsigned long start, unsigned long size)
 
int s390_enable_sie (void)
 

Variables

unsigned long empty_zero_page
 
unsigned long zero_page_mask
 
unsigned long VMALLOC_START
 
unsigned long VMALLOC_END
 
struct pagevmemmap
 

Macro Definition Documentation

#define __HAVE_ARCH_PMD_WRITE

Definition at line 548 of file pgtable.h.

#define __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH

Definition at line 544 of file pgtable.h.

#define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS

Definition at line 539 of file pgtable.h.

#define __HAVE_ARCH_PMDP_SPLITTING_FLUSH

Definition at line 535 of file pgtable.h.

#define __HAVE_ARCH_PTE_SAME

Definition at line 583 of file pgtable.h.

#define __HAVE_ARCH_PTE_SPECIAL

Definition at line 237 of file pgtable.h.

#define __HAVE_ARCH_PTEP_CLEAR_FLUSH

Definition at line 1048 of file pgtable.h.

#define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH

Definition at line 958 of file pgtable.h.

#define __HAVE_ARCH_PTEP_GET_AND_CLEAR

Definition at line 999 of file pgtable.h.

#define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL

Definition at line 1076 of file pgtable.h.

#define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION

Definition at line 1022 of file pgtable.h.

#define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS

Definition at line 1121 of file pgtable.h.

#define __HAVE_ARCH_PTEP_SET_WRPROTECT

Definition at line 1099 of file pgtable.h.

#define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG

Definition at line 940 of file pgtable.h.

#define __P000   PAGE_NONE

Definition at line 404 of file pgtable.h.

#define __P001   PAGE_RO

Definition at line 405 of file pgtable.h.

#define __P010   PAGE_RO

Definition at line 406 of file pgtable.h.

#define __P011   PAGE_RO

Definition at line 407 of file pgtable.h.

#define __P100   PAGE_RO

Definition at line 408 of file pgtable.h.

#define __P101   PAGE_RO

Definition at line 409 of file pgtable.h.

#define __P110   PAGE_RO

Definition at line 410 of file pgtable.h.

#define __P111   PAGE_RO

Definition at line 411 of file pgtable.h.

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

Definition at line 1450 of file pgtable.h.

#define __S000   PAGE_NONE

Definition at line 413 of file pgtable.h.

#define __S001   PAGE_RO

Definition at line 414 of file pgtable.h.

#define __S010   PAGE_RW

Definition at line 415 of file pgtable.h.

#define __S011   PAGE_RW

Definition at line 416 of file pgtable.h.

#define __S100   PAGE_RO

Definition at line 417 of file pgtable.h.

#define __S101   PAGE_RO

Definition at line 418 of file pgtable.h.

#define __S110   PAGE_RW

Definition at line 419 of file pgtable.h.

#define __S111   PAGE_RW

Definition at line 420 of file pgtable.h.

#define __swp_entry (   type,
  offset 
)    ((swp_entry_t) { pte_val(mk_swap_pte((type),(offset))) })

Definition at line 1448 of file pgtable.h.

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

Definition at line 1451 of file pgtable.h.

#define __swp_offset (   entry)    (((entry).val >> 11) | (((entry).val >> 7) & 1))

Definition at line 1447 of file pgtable.h.

#define __SWP_OFFSET_MASK   (~0UL >> 12)

Definition at line 1433 of file pgtable.h.

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

Definition at line 1446 of file pgtable.h.

#define _ASCE_ALT_EVENT   0x80 /* storage alteration event control */

Definition at line 291 of file pgtable.h.

#define _ASCE_ORIGIN_MASK   0x7ffff000UL /* segment table origin */

Definition at line 289 of file pgtable.h.

#define _ASCE_PRIVATE_SPACE   0x100 /* private space control */

Definition at line 290 of file pgtable.h.

#define _ASCE_SPACE_SWITCH   0x80000000UL /* space switch event */

Definition at line 288 of file pgtable.h.

#define _ASCE_TABLE_LENGTH   0x7f /* 128 x 64 entries = 8k */

Definition at line 292 of file pgtable.h.

#define _ASCE_USER_BITS
Value:
_ASCE_ALT_EVENT)

Definition at line 385 of file pgtable.h.

#define _HPAGE_TYPE_EMPTY   0x020 /* _SEGMENT_ENTRY_INV */

Definition at line 254 of file pgtable.h.

#define _HPAGE_TYPE_NONE   0x220

Definition at line 255 of file pgtable.h.

#define _HPAGE_TYPE_RO   0x200 /* _SEGMENT_ENTRY_RO */

Definition at line 256 of file pgtable.h.

#define _HPAGE_TYPE_RW   0x000

Definition at line 257 of file pgtable.h.

#define _PAGE_CHG_MASK   (PAGE_MASK | _PAGE_SPECIAL | _PAGE_SWC | _PAGE_SWR)

Definition at line 240 of file pgtable.h.

#define _PAGE_CO   0x100 /* HW Change-bit override */

Definition at line 227 of file pgtable.h.

#define _PAGE_INVALID   0x400 /* HW invalid bit */

Definition at line 229 of file pgtable.h.

#define _PAGE_RO   0x200 /* HW read-only bit */

Definition at line 228 of file pgtable.h.

#define _PAGE_SPECIAL   0x010 /* SW associated with special page */

Definition at line 236 of file pgtable.h.

#define _PAGE_SWC   0x004 /* SW pte changed bit (for KVM) */

Definition at line 234 of file pgtable.h.

#define _PAGE_SWR   0x008 /* SW pte referenced bit (for KVM) */

Definition at line 235 of file pgtable.h.

#define _PAGE_SWT   0x001 /* SW pte type bit t */

Definition at line 232 of file pgtable.h.

#define _PAGE_SWX   0x002 /* SW pte type bit x */

Definition at line 233 of file pgtable.h.

#define _PAGE_TYPE_EMPTY   0x400

Definition at line 243 of file pgtable.h.

#define _PAGE_TYPE_FILE   0x601 /* bit 0x002 is used for offset !! */

Definition at line 246 of file pgtable.h.

#define _PAGE_TYPE_NONE   0x401

Definition at line 244 of file pgtable.h.

#define _PAGE_TYPE_RO   0x200

Definition at line 247 of file pgtable.h.

#define _PAGE_TYPE_RW   0x000

Definition at line 248 of file pgtable.h.

#define _PAGE_TYPE_SWAP   0x403

Definition at line 245 of file pgtable.h.

#define _SEGMENT_ENTRY   (_SEGMENT_ENTRY_PTL)

Definition at line 301 of file pgtable.h.

#define _SEGMENT_ENTRY_COMMON   0x10 /* common segment bit */

Definition at line 298 of file pgtable.h.

#define _SEGMENT_ENTRY_EMPTY   (_SEGMENT_ENTRY_INV)

Definition at line 302 of file pgtable.h.

#define _SEGMENT_ENTRY_INV   0x20 /* invalid segment table entry */

Definition at line 297 of file pgtable.h.

#define _SEGMENT_ENTRY_ORIGIN   0x7fffffc0UL /* page table origin */

Definition at line 295 of file pgtable.h.

#define _SEGMENT_ENTRY_PTL   0x0f /* page table length */

Definition at line 299 of file pgtable.h.

#define _SEGMENT_ENTRY_RO   0x200 /* page protection bit */

Definition at line 296 of file pgtable.h.

#define FIRST_USER_ADDRESS   0

Definition at line 109 of file pgtable.h.

#define is_zero_pfn   is_zero_pfn

Definition at line 59 of file pgtable.h.

#define kern_addr_valid (   addr)    (1)

Definition at line 1468 of file pgtable.h.

#define KVM_UC_BIT   0x00004000UL

Definition at line 315 of file pgtable.h.

#define KVM_UR_BIT   0x00008000UL

Definition at line 314 of file pgtable.h.

#define my_zero_pfn (   addr)    page_to_pfn(ZERO_PAGE(addr))

Definition at line 67 of file pgtable.h.

#define PAGE_COPY   PAGE_RO

Definition at line 396 of file pgtable.h.

#define PAGE_KERNEL   PAGE_RW

Definition at line 395 of file pgtable.h.

#define PAGE_NONE   __pgprot(_PAGE_TYPE_NONE)

Definition at line 391 of file pgtable.h.

#define PAGE_RO   __pgprot(_PAGE_TYPE_RO)

Definition at line 392 of file pgtable.h.

#define PAGE_RW   __pgprot(_PAGE_TYPE_RW)

Definition at line 393 of file pgtable.h.

#define pfn_pte (   pfn,
  pgprot 
)    mk_pte_phys(__pa((pfn) << PAGE_SHIFT),(pgprot))

Definition at line 1200 of file pgtable.h.

#define pgd_deref (   pmd)    ({ BUG(); 0UL; })

Definition at line 1171 of file pgtable.h.

#define pgd_ERROR (   e)    printk("%s:%d: bad pgd %p.\n", __FILE__, __LINE__, (void *) pgd_val(e))

Definition at line 117 of file pgtable.h.

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

Definition at line 1159 of file pgtable.h.

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

Definition at line 1164 of file pgtable.h.

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

Definition at line 1165 of file pgtable.h.

#define PGDIR_MASK   (~(PGDIR_SIZE-1))

Definition at line 91 of file pgtable.h.

#define PGDIR_SHIFT   20

Definition at line 79 of file pgtable.h.

#define PGDIR_SIZE   (1UL << PGDIR_SHIFT)

Definition at line 90 of file pgtable.h.

#define pgoff_to_pte (   __off)
Value:
((pte_t) { ((((__off) & 0x7f) << 1) + (((__off) >> 7) << 12)) \

Definition at line 1462 of file pgtable.h.

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

Definition at line 1477 of file pgtable.h.

#define pmd_deref (   pmd)    (pmd_val(pmd) & _SEGMENT_ENTRY_ORIGIN)

Definition at line 1169 of file pgtable.h.

#define pmd_ERROR (   e)    printk("%s:%d: bad pmd %p.\n", __FILE__, __LINE__, (void *) pmd_val(e))

Definition at line 113 of file pgtable.h.

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

Definition at line 1161 of file pgtable.h.

#define PMD_MASK   (~(PMD_SIZE-1))

Definition at line 87 of file pgtable.h.

#define pmd_offset (   pud,
  address 
)    ((pmd_t *) pud + pmd_index(address))

Definition at line 1174 of file pgtable.h.

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

Definition at line 1204 of file pgtable.h.

#define PMD_SHIFT   20

Definition at line 77 of file pgtable.h.

#define PMD_SIZE   (1UL << PMD_SHIFT)

Definition at line 86 of file pgtable.h.

#define pte_ERROR (   e)    printk("%s:%d: bad pte %p.\n", __FILE__, __LINE__, (void *) pte_val(e))

Definition at line 111 of file pgtable.h.

#define PTE_FILE_MAX_BITS   26

Definition at line 1454 of file pgtable.h.

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

Definition at line 1162 of file pgtable.h.

#define pte_offset (   pmd,
  addr 
)    ((pte_t *) pmd_deref(*(pmd)) + pte_index(addr))

Definition at line 1207 of file pgtable.h.

#define pte_offset_kernel (   pmd,
  address 
)    pte_offset(pmd,address)

Definition at line 1208 of file pgtable.h.

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

Definition at line 1209 of file pgtable.h.

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

Definition at line 1202 of file pgtable.h.

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

Definition at line 1201 of file pgtable.h.

#define pte_to_pgoff (   __pte)    ((((__pte).pte >> 12) << 7) + (((__pte).pte >> 1) & 0x7f))

Definition at line 1459 of file pgtable.h.

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

Definition at line 1210 of file pgtable.h.

#define PTRS_PER_PGD   2048

Definition at line 107 of file pgtable.h.

#define PTRS_PER_PMD   1

Definition at line 101 of file pgtable.h.

#define PTRS_PER_PTE   256

Definition at line 99 of file pgtable.h.

#define PTRS_PER_PUD   1

Definition at line 102 of file pgtable.h.

#define pud_deref (   pmd)    ({ BUG(); 0UL; })

Definition at line 1170 of file pgtable.h.

#define pud_ERROR (   e)    printk("%s:%d: bad pud %p.\n", __FILE__, __LINE__, (void *) pud_val(e))

Definition at line 115 of file pgtable.h.

#define pud_index (   address)    (((address) >> PUD_SHIFT) & (PTRS_PER_PUD-1))

Definition at line 1160 of file pgtable.h.

#define PUD_MASK   (~(PUD_SIZE-1))

Definition at line 89 of file pgtable.h.

#define pud_offset (   pgd,
  address 
)    ((pud_t *) pgd)

Definition at line 1173 of file pgtable.h.

#define PUD_SHIFT   20

Definition at line 78 of file pgtable.h.

#define PUD_SIZE   (1UL << PUD_SHIFT)

Definition at line 88 of file pgtable.h.

#define RCP_ACC_BITS   0xf0000000UL

Definition at line 305 of file pgtable.h.

#define RCP_FP_BIT   0x08000000UL

Definition at line 306 of file pgtable.h.

#define RCP_GC_BIT   0x00020000UL

Definition at line 311 of file pgtable.h.

#define RCP_GR_BIT   0x00040000UL

Definition at line 310 of file pgtable.h.

#define RCP_HC_BIT   0x00200000UL

Definition at line 309 of file pgtable.h.

#define RCP_HR_BIT   0x00400000UL

Definition at line 308 of file pgtable.h.

#define RCP_PCL_BIT   0x00800000UL

Definition at line 307 of file pgtable.h.

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

Definition at line 44 of file pgtable.h.

#define update_mmu_cache_pmd (   vma,
  address,
  ptep 
)    do { } while (0)

Definition at line 45 of file pgtable.h.

#define VMEM_MAX_PHYS   ((unsigned long) vmemmap)

Definition at line 133 of file pgtable.h.

#define ZERO_PAGE (   vaddr)
Value:
(((unsigned long)(vaddr)) &zero_page_mask))))

Definition at line 55 of file pgtable.h.

Function Documentation

unsigned long __gmap_fault ( unsigned long  address,
struct gmap  
)
void fault_init ( void  )

Definition at line 56 of file fault.c.

struct gmap* gmap_alloc ( struct mm_struct mm)
read
void gmap_disable ( struct gmap gmap)
void gmap_discard ( unsigned long  from,
unsigned long  to,
struct gmap  
)
void gmap_enable ( struct gmap gmap)
unsigned long gmap_fault ( unsigned long  address,
struct gmap  
)
void gmap_free ( struct gmap gmap)
int gmap_map_segment ( struct gmap gmap,
unsigned long  from,
unsigned long  to,
unsigned long  length 
)
int gmap_unmap_segment ( struct gmap gmap,
unsigned long  to,
unsigned long  len 
)
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.

int pmdp_clear_flush_young ( struct vm_area_struct vma,
unsigned long  address,
pmd_t pmdp 
)

Definition at line 69 of file pgtable-generic.c.

int pmdp_set_access_flags ( struct vm_area_struct vma,
unsigned long  address,
pmd_t pmdp,
pmd_t  entry,
int  dirty 
)

Definition at line 37 of file pgtable-generic.c.

void pmdp_splitting_flush ( struct vm_area_struct vma,
unsigned long  addr,
pmd_t pmdp 
)
int s390_enable_sie ( void  )

Definition at line 817 of file pgtable.c.

int vmem_add_mapping ( unsigned long  start,
unsigned long  size 
)

Definition at line 300 of file vmem.c.

void vmem_map_init ( void  )

Definition at line 336 of file vmem.c.

int vmem_remove_mapping ( unsigned long  start,
unsigned long  size 
)

Definition at line 276 of file vmem.c.

Variable Documentation

unsigned long empty_zero_page

Definition at line 42 of file mmu.c.

unsigned long VMALLOC_END

Definition at line 102 of file setup.c.

unsigned long VMALLOC_START

Definition at line 99 of file setup.c.

struct page* vmemmap

Definition at line 105 of file setup.c.

unsigned long zero_page_mask

Definition at line 42 of file init.c.