Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
pgalloc_64.h File Reference
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/mm.h>
#include <linux/slab.h>
#include <asm/spitfire.h>
#include <asm/cpudata.h>
#include <asm/cacheflush.h>
#include <asm/page.h>

Go to the source code of this file.


#define pud_populate(MM, PUD, PMD)   pud_set(PUD, PMD)
#define pmd_populate_kernel(MM, PMD, PTE)   pmd_set(MM, PMD, PTE)
#define pmd_populate(MM, PMD, PTE)   pmd_set(MM, PMD, PTE)
#define pmd_pgtable(PMD)   ((pte_t *)__pmd_page(PMD))
#define check_pgt_cache()   do { } while (0)
#define __pmd_free_tlb(tlb, pmd, addr)   pgtable_free_tlb(tlb, pmd, false)


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 pte_free_kernel (struct mm_struct *mm, pte_t *pte)
void pte_free (struct mm_struct *mm, pgtable_t ptepage)
void pgtable_free (void *table, bool is_page)


struct kmem_cachepgtable_cache

Macro Definition Documentation

#define __pmd_free_tlb (   tlb,
)    pgtable_free_tlb(tlb, pmd, false)

Definition at line 91 of file pgalloc_64.h.

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

Definition at line 52 of file pgalloc_64.h.

#define pmd_pgtable (   PMD)    ((pte_t *)__pmd_page(PMD))

Definition at line 50 of file pgalloc_64.h.

#define pmd_populate (   MM,
)    pmd_set(MM, PMD, PTE)

Definition at line 49 of file pgalloc_64.h.

#define pmd_populate_kernel (   MM,
)    pmd_set(MM, PMD, PTE)

Definition at line 48 of file pgalloc_64.h.

#define pud_populate (   MM,
)    pud_set(PUD, PMD)

Definition at line 28 of file pgalloc_64.h.

Function Documentation

void pgtable_free ( void table,
bool  is_page 

Definition at line 2573 of file init_64.c.

pgtable_t pte_alloc_one ( struct mm_struct mm,
unsigned long  address 

Definition at line 31 of file pgalloc.c.

pte_t* pte_alloc_one_kernel ( struct mm_struct mm,
unsigned long  address 

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 23 of file pgalloc.c.

void pte_free ( struct mm_struct mm,
pgtable_t  ptepage 

Definition at line 2568 of file init_64.c.

void pte_free_kernel ( struct mm_struct mm,
pte_t pte 

Definition at line 7 of file mcf_pgalloc.h.

Variable Documentation

struct kmem_cache* pgtable_cache

Definition at line 94 of file init_64.c.