Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
pgtable_32.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/mm.h>
#include <linux/vmalloc.h>
#include <linux/init.h>
#include <linux/highmem.h>
#include <linux/memblock.h>
#include <linux/slab.h>
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
#include <asm/fixmap.h>
#include <asm/io.h>
#include <asm/setup.h>
#include "mmu_decl.h"

Go to the source code of this file.

Macros

#define v_mapped_by_bats(x)   (0UL)
 
#define p_mapped_by_bats(x)   (0UL)
 
#define v_mapped_by_tlbcam(x)   (0UL)
 
#define p_mapped_by_tlbcam(x)   (0UL)
 
#define PGDIR_ORDER   (32 + PGD_T_LOG2 - PGDIR_SHIFT)
 

Functions

 EXPORT_SYMBOL (ioremap_bot)
 
pgd_tpgd_alloc (struct mm_struct *mm)
 
void pgd_free (struct mm_struct *mm, pgd_t *pgd)
 
__init_refok pte_tpte_alloc_one_kernel (struct mm_struct *mm, unsigned long address)
 
pgtable_t pte_alloc_one (struct mm_struct *mm, unsigned long address)
 
void __iomemioremap (phys_addr_t addr, unsigned long size)
 
 EXPORT_SYMBOL (ioremap)
 
void __iomemioremap_wc (phys_addr_t addr, unsigned long size)
 
 EXPORT_SYMBOL (ioremap_wc)
 
void __iomemioremap_prot (phys_addr_t addr, unsigned long size, unsigned long flags)
 
 EXPORT_SYMBOL (ioremap_prot)
 
void __iomem__ioremap (phys_addr_t addr, unsigned long size, unsigned long flags)
 
void __iomem__ioremap_caller (phys_addr_t addr, unsigned long size, unsigned long flags, void *caller)
 
 EXPORT_SYMBOL (__ioremap)
 
void iounmap (volatile void __iomem *addr)
 
 EXPORT_SYMBOL (iounmap)
 
int map_page (unsigned long va, phys_addr_t pa, int flags)
 
void __init __mapin_ram_chunk (unsigned long offset, unsigned long top)
 
void __init mapin_ram (void)
 
int get_pteptr (struct mm_struct *mm, unsigned long addr, pte_t **ptep, pmd_t **pmdp)
 
void __set_fixmap (enum fixed_addresses idx, phys_addr_t phys, pgprot_t flags)
 
void __this_fixmap_does_not_exist (void)
 

Variables

unsigned long ioremap_base
 
unsigned long ioremap_bot
 
char etext []
 
char _stext []
 

Macro Definition Documentation

#define p_mapped_by_bats (   x)    (0UL)

Definition at line 62 of file pgtable_32.c.

#define p_mapped_by_tlbcam (   x)    (0UL)

Definition at line 71 of file pgtable_32.c.

#define PGDIR_ORDER   (32 + PGD_T_LOG2 - PGDIR_SHIFT)

Definition at line 74 of file pgtable_32.c.

#define v_mapped_by_bats (   x)    (0UL)

Definition at line 61 of file pgtable_32.c.

#define v_mapped_by_tlbcam (   x)    (0UL)

Definition at line 70 of file pgtable_32.c.

Function Documentation

void __iomem* __ioremap ( phys_addr_t  addr,
unsigned long  size,
unsigned long  flags 
)

Definition at line 167 of file pgtable_32.c.

void __iomem* __ioremap_caller ( phys_addr_t  addr,
unsigned long  size,
unsigned long  flags,
void caller 
)

Definition at line 173 of file pgtable_32.c.

void __init __mapin_ram_chunk ( unsigned long  offset,
unsigned long  top 
)

Definition at line 305 of file pgtable_32.c.

void __set_fixmap ( enum fixed_addresses  idx,
phys_addr_t  phys,
pgprot_t  flags 
)

Definition at line 440 of file pgtable_32.c.

void __this_fixmap_does_not_exist ( void  )

Definition at line 453 of file pgtable_32.c.

EXPORT_SYMBOL ( ioremap_bot  )
EXPORT_SYMBOL ( ioremap  )
EXPORT_SYMBOL ( ioremap_wc  )
EXPORT_SYMBOL ( ioremap_prot  )
EXPORT_SYMBOL ( __ioremap  )
EXPORT_SYMBOL ( iounmap  )
int get_pteptr ( struct mm_struct mm,
unsigned long  addr,
pte_t **  ptep,
pmd_t **  pmdp 
)

Definition at line 357 of file pgtable_32.c.

void __iomem* ioremap ( phys_addr_t  addr,
unsigned long  size 
)

Definition at line 129 of file pgtable_32.c.

void __iomem* ioremap_prot ( phys_addr_t  addr,
unsigned long  size,
unsigned long  flags 
)

Definition at line 145 of file pgtable_32.c.

void __iomem* ioremap_wc ( phys_addr_t  addr,
unsigned long  size 
)

Definition at line 137 of file pgtable_32.c.

void iounmap ( volatile void __iomem addr)

Definition at line 266 of file pgtable_32.c.

int map_page ( unsigned long  va,
phys_addr_t  pa,
int  flags 
)

Definition at line 279 of file pgtable_32.c.

void __init mapin_ram ( void  )

Definition at line 327 of file pgtable_32.c.

pgd_t* pgd_alloc ( struct mm_struct mm)

Definition at line 76 of file pgtable_32.c.

void pgd_free ( struct mm_struct mm,
pgd_t pgd 
)

Definition at line 90 of file pgtable_32.c.

pgtable_t pte_alloc_one ( struct mm_struct mm,
unsigned long  address 
)
read

Definition at line 115 of file pgtable_32.c.

__init_refok pte_t* pte_alloc_one_kernel ( struct mm_struct mm,
unsigned long  address 
)
inline

OK, this one's a bit tricky... ioremap can get called before memory is initialized (early serial console does this) and will want to alloc a page for its mapping. No userspace pages will ever get allocated before memory is initialized so this applies only to kernel pages. In the event that this is called before memory is initialized we allocate the page using the memblock infrastructure.

Definition at line 99 of file pgtable_32.c.

Variable Documentation

char _stext[]
char etext[]
unsigned long ioremap_base

Definition at line 40 of file pgtable_32.c.

unsigned long ioremap_bot

Definition at line 41 of file pgtable_32.c.