#include <linux/mm.h>
#include <linux/gfp.h>
#include <asm/pgalloc.h>
#include <asm/pgtable.h>
#include <asm/tlb.h>
#include <asm/fixmap.h>
Go to the source code of this file.
|
pte_t * | pte_alloc_one_kernel (struct mm_struct *mm, unsigned long address) |
|
pgtable_t | pte_alloc_one (struct mm_struct *mm, unsigned long address) |
|
| early_param ("userpte", setup_userpte) |
|
void | ___pte_free_tlb (struct mmu_gather *tlb, struct page *pte) |
|
struct mm_struct * | pgd_page_get_mm (struct page *page) |
|
pgd_t * | pgd_alloc (struct mm_struct *mm) |
|
void | pgd_free (struct mm_struct *mm, pgd_t *pgd) |
|
int | ptep_set_access_flags (struct vm_area_struct *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty) |
|
int | ptep_test_and_clear_young (struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) |
|
int | ptep_clear_flush_young (struct vm_area_struct *vma, unsigned long address, pte_t *ptep) |
|
void __init | reserve_top_address (unsigned long reserve) |
|
void | __native_set_fixmap (enum fixed_addresses idx, pte_t pte) |
|
void | native_set_fixmap (enum fixed_addresses idx, phys_addr_t phys, pgprot_t flags) |
|
#define PGALLOC_USER_GFP 0 |
#define PREALLOCATED_PMDS 0 |
early_param |
( |
"userpte" |
, |
|
|
setup_userpte |
|
|
) |
| |
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 18 of file pgtable.c.
reserve_top_address - reserves a hole in the top of kernel address space - size of hole to reserve
Can be used to relocate the fixmap area and poke a hole in the top of kernel address space to make room for a hypervisor.
Definition at line 419 of file pgtable.c.