Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
mmu.c File Reference
#include <linux/sched.h>
#include <linux/highmem.h>
#include <linux/debugfs.h>
#include <linux/bug.h>
#include <linux/vmalloc.h>
#include <linux/module.h>
#include <linux/gfp.h>
#include <linux/memblock.h>
#include <linux/seq_file.h>
#include <linux/crash_dump.h>
#include <trace/events/xen.h>
#include <asm/pgtable.h>
#include <asm/tlbflush.h>
#include <asm/fixmap.h>
#include <asm/mmu_context.h>
#include <asm/setup.h>
#include <asm/paravirt.h>
#include <asm/e820.h>
#include <asm/linkage.h>
#include <asm/page.h>
#include <asm/init.h>
#include <asm/pat.h>
#include <asm/smp.h>
#include <asm/xen/hypercall.h>
#include <asm/xen/hypervisor.h>
#include <xen/xen.h>
#include <xen/page.h>
#include <xen/interface/xen.h>
#include <xen/interface/hvm/hvm_op.h>
#include <xen/interface/version.h>
#include <xen/interface/memory.h>
#include <xen/hvc-console.h>
#include "multicalls.h"
#include "mmu.h"
#include "debugfs.h"

Go to the source code of this file.

Data Structures

struct  remap_data
 

Macros

#define USER_LIMIT   ((STACK_TOP_MAX + PGDIR_SIZE - 1) & PGDIR_MASK)
 
#define MAX_CONTIG_ORDER   9 /* 2MB */
 
#define VOID_PTE   (mfn_pte(0, __pgprot(0)))
 
#define REMAP_BATCH_SIZE   16
 

Functions

 DEFINE_SPINLOCK (xen_reservation_lock)
 
 DEFINE_PER_CPU (unsigned long, xen_cr3)
 
 DEFINE_PER_CPU (unsigned long, xen_current_cr3)
 
unsigned long arbitrary_virt_to_mfn (void *vaddr)
 
xmaddr_t arbitrary_virt_to_machine (void *vaddr)
 
 EXPORT_SYMBOL_GPL (arbitrary_virt_to_machine)
 
void make_lowmem_page_readonly (void *vaddr)
 
void make_lowmem_page_readwrite (void *vaddr)
 
void xen_set_domain_pte (pte_t *ptep, pte_t pteval, unsigned domid)
 
 EXPORT_SYMBOL_GPL (xen_set_domain_pte)
 
void set_pte_mfn (unsigned long vaddr, unsigned long mfn, pgprot_t flags)
 
pte_t xen_ptep_modify_prot_start (struct mm_struct *mm, unsigned long addr, pte_t *ptep)
 
void xen_ptep_modify_prot_commit (struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte)
 
 PV_CALLEE_SAVE_REGS_THUNK (xen_pte_val)
 
 PV_CALLEE_SAVE_REGS_THUNK (xen_pgd_val)
 
void xen_set_pat (u64 pat)
 
 PV_CALLEE_SAVE_REGS_THUNK (xen_make_pte)
 
 PV_CALLEE_SAVE_REGS_THUNK (xen_make_pgd)
 
 PV_CALLEE_SAVE_REGS_THUNK (xen_pmd_val)
 
 PV_CALLEE_SAVE_REGS_THUNK (xen_make_pmd)
 
void xen_mm_pin_all (void)
 
void xen_mm_unpin_all (void)
 
unsigned long xen_read_cr2_direct (void)
 
void xen_flush_tlb_all (void)
 
void __init xen_reserve_top (void)
 
void __init xen_setup_machphys_mapping (void)
 
void __init xen_setup_kernel_pagetable (pgd_t *pgd, unsigned long max_pfn)
 
void __init xen_init_mmu_ops (void)
 
int xen_create_contiguous_region (unsigned long vstart, unsigned int order, unsigned int address_bits)
 
 EXPORT_SYMBOL_GPL (xen_create_contiguous_region)
 
void xen_destroy_contiguous_region (unsigned long vstart, unsigned int order)
 
 EXPORT_SYMBOL_GPL (xen_destroy_contiguous_region)
 
int xen_remap_domain_mfn_range (struct vm_area_struct *vma, unsigned long addr, unsigned long mfn, int nr, pgprot_t prot, unsigned domid)
 
 EXPORT_SYMBOL_GPL (xen_remap_domain_mfn_range)
 

Macro Definition Documentation

#define MAX_CONTIG_ORDER   9 /* 2MB */

Definition at line 2208 of file mmu.c.

#define REMAP_BATCH_SIZE   16

Definition at line 2477 of file mmu.c.

#define USER_LIMIT   ((STACK_TOP_MAX + PGDIR_SIZE - 1) & PGDIR_MASK)

Definition at line 124 of file mmu.c.

#define VOID_PTE   (mfn_pte(0, __pgprot(0)))

Definition at line 2211 of file mmu.c.

Function Documentation

xmaddr_t arbitrary_virt_to_machine ( void vaddr)

Definition at line 133 of file mmu.c.

unsigned long arbitrary_virt_to_mfn ( void vaddr)

Definition at line 126 of file mmu.c.

DEFINE_PER_CPU ( unsigned  long,
xen_cr3   
)
DEFINE_PER_CPU ( unsigned  long,
xen_current_cr3   
)
DEFINE_SPINLOCK ( xen_reservation_lock  )
EXPORT_SYMBOL_GPL ( arbitrary_virt_to_machine  )
EXPORT_SYMBOL_GPL ( xen_set_domain_pte  )
EXPORT_SYMBOL_GPL ( xen_create_contiguous_region  )
EXPORT_SYMBOL_GPL ( xen_destroy_contiguous_region  )
EXPORT_SYMBOL_GPL ( xen_remap_domain_mfn_range  )
void make_lowmem_page_readonly ( void vaddr)

Definition at line 156 of file mmu.c.

void make_lowmem_page_readwrite ( void vaddr)

Definition at line 172 of file mmu.c.

PV_CALLEE_SAVE_REGS_THUNK ( xen_pte_val  )
PV_CALLEE_SAVE_REGS_THUNK ( xen_pgd_val  )
PV_CALLEE_SAVE_REGS_THUNK ( xen_make_pte  )
PV_CALLEE_SAVE_REGS_THUNK ( xen_make_pgd  )
PV_CALLEE_SAVE_REGS_THUNK ( xen_pmd_val  )
PV_CALLEE_SAVE_REGS_THUNK ( xen_make_pmd  )
void set_pte_mfn ( unsigned long  vaddr,
unsigned long  mfn,
pgprot_t  flags 
)

Definition at line 288 of file mmu.c.

int xen_create_contiguous_region ( unsigned long  vstart,
unsigned int  order,
unsigned int  address_bits 
)

Definition at line 2323 of file mmu.c.

void xen_destroy_contiguous_region ( unsigned long  vstart,
unsigned int  order 
)

Definition at line 2367 of file mmu.c.

void xen_flush_tlb_all ( void  )

Definition at line 1291 of file mmu.c.

void __init xen_init_mmu_ops ( void  )

Definition at line 2198 of file mmu.c.

void xen_mm_pin_all ( void  )

Definition at line 939 of file mmu.c.

void xen_mm_unpin_all ( void  )

Definition at line 1053 of file mmu.c.

void xen_ptep_modify_prot_commit ( struct mm_struct mm,
unsigned long  addr,
pte_t ptep,
pte_t  pte 
)

Definition at line 350 of file mmu.c.

pte_t xen_ptep_modify_prot_start ( struct mm_struct mm,
unsigned long  addr,
pte_t ptep 
)

Definition at line 342 of file mmu.c.

unsigned long xen_read_cr2_direct ( void  )

Definition at line 1286 of file mmu.c.

int xen_remap_domain_mfn_range ( struct vm_area_struct vma,
unsigned long  addr,
unsigned long  mfn,
int  nr,
pgprot_t  prot,
unsigned  domid 
)

Definition at line 2498 of file mmu.c.

void __init xen_reserve_top ( void  )

Definition at line 1698 of file mmu.c.

void xen_set_domain_pte ( pte_t ptep,
pte_t  pteval,
unsigned  domid 
)

Definition at line 196 of file mmu.c.

void xen_set_pat ( u64  pat)

Definition at line 475 of file mmu.c.

void __init xen_setup_kernel_pagetable ( pgd_t pgd,
unsigned long  max_pfn 
)

Definition at line 1988 of file mmu.c.

void __init xen_setup_machphys_mapping ( void  )

Definition at line 1802 of file mmu.c.