Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
hugetlbpage.c File Reference
#include <linux/mm.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/hugetlb.h>
#include <linux/export.h>
#include <linux/of_fdt.h>
#include <linux/memblock.h>
#include <linux/bootmem.h>
#include <linux/moduleparam.h>
#include <asm/pgtable.h>
#include <asm/pgalloc.h>
#include <asm/tlb.h>
#include <asm/setup.h>

Go to the source code of this file.

Macros

#define PAGE_SHIFT_64K   16
 
#define PAGE_SHIFT_16M   24
 
#define PAGE_SHIFT_16G   34
 
#define MAX_NUMBER_GPAGES   1024
 
#define hugepd_none(hpd)   ((hpd).pd == 0)
 
#define HUGEPD_PGD_SHIFT   PUD_SHIFT
 
#define HUGEPD_PUD_SHIFT   PMD_SHIFT
 

Functions

pte_tfind_linux_pte_or_hugepte (pgd_t *pgdir, unsigned long ea, unsigned *shift)
 
 EXPORT_SYMBOL_GPL (find_linux_pte_or_hugepte)
 
pte_thuge_pte_offset (struct mm_struct *mm, unsigned long addr)
 
pte_thuge_pte_alloc (struct mm_struct *mm, unsigned long addr, unsigned long sz)
 
void add_gpage (u64 addr, u64 page_size, unsigned long number_of_pages)
 
int alloc_bootmem_huge_page (struct hstate *hstate)
 
int huge_pmd_unshare (struct mm_struct *mm, unsigned long *addr, pte_t *ptep)
 
void hugetlb_free_pgd_range (struct mmu_gather *tlb, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling)
 
struct pagefollow_huge_addr (struct mm_struct *mm, unsigned long address, int write)
 
int pmd_huge (pmd_t pmd)
 
int pud_huge (pud_t pud)
 
struct pagefollow_huge_pmd (struct mm_struct *mm, unsigned long address, pmd_t *pmd, int write)
 
int gup_hugepd (hugepd_t *hugepd, unsigned pdshift, unsigned long addr, unsigned long end, int write, struct page **pages, int *nr)
 
unsigned long vma_mmu_pagesize (struct vm_area_struct *vma)
 
 __setup ("hugepagesz=", hugepage_setup_sz)
 
 module_init (hugetlbpage_init)
 
void flush_dcache_icache_hugepage (struct page *page)
 

Variables

unsigned int HPAGE_SHIFT
 

Macro Definition Documentation

#define hugepd_none (   hpd)    ((hpd).pd == 0)

Definition at line 68 of file hugetlbpage.c.

#define HUGEPD_PGD_SHIFT   PUD_SHIFT

Definition at line 174 of file hugetlbpage.c.

#define HUGEPD_PUD_SHIFT   PMD_SHIFT

Definition at line 175 of file hugetlbpage.c.

#define MAX_NUMBER_GPAGES   1024

Definition at line 46 of file hugetlbpage.c.

#define PAGE_SHIFT_16G   34

Definition at line 27 of file hugetlbpage.c.

#define PAGE_SHIFT_16M   24

Definition at line 26 of file hugetlbpage.c.

#define PAGE_SHIFT_64K   16

Definition at line 25 of file hugetlbpage.c.

Function Documentation

__setup ( )
void add_gpage ( u64  addr,
u64  page_size,
unsigned long  number_of_pages 
)

Definition at line 343 of file hugetlbpage.c.

int alloc_bootmem_huge_page ( struct hstate hstate)

Definition at line 358 of file hugetlbpage.c.

EXPORT_SYMBOL_GPL ( find_linux_pte_or_hugepte  )
pte_t* find_linux_pte_or_hugepte ( pgd_t pgdir,
unsigned long  ea,
unsigned *  shift 
)

Definition at line 70 of file hugetlbpage.c.

void flush_dcache_icache_hugepage ( struct page page)

Definition at line 906 of file hugetlbpage.c.

struct page* follow_huge_addr ( struct mm_struct mm,
unsigned long  address,
int  write 
)
read

Definition at line 610 of file hugetlbpage.c.

struct page* follow_huge_pmd ( struct mm_struct mm,
unsigned long  address,
pmd_t pmd,
int  write 
)
read

Definition at line 642 of file hugetlbpage.c.

int gup_hugepd ( hugepd_t hugepd,
unsigned  pdshift,
unsigned long  addr,
unsigned long  end,
int  write,
struct page **  pages,
int nr 
)

Definition at line 719 of file hugetlbpage.c.

int huge_pmd_unshare ( struct mm_struct mm,
unsigned long addr,
pte_t ptep 
)

Definition at line 371 of file hugetlbpage.c.

pte_t* huge_pte_alloc ( struct mm_struct mm,
unsigned long  addr,
unsigned long  sz 
)

Definition at line 178 of file hugetlbpage.c.

pte_t* huge_pte_offset ( struct mm_struct mm,
unsigned long  addr 
)

Definition at line 109 of file hugetlbpage.c.

void hugetlb_free_pgd_range ( struct mmu_gather tlb,
unsigned long  addr,
unsigned long  end,
unsigned long  floor,
unsigned long  ceiling 
)

Definition at line 562 of file hugetlbpage.c.

module_init ( hugetlbpage_init  )
int pmd_huge ( pmd_t  pmd)

Definition at line 631 of file hugetlbpage.c.

int pud_huge ( pud_t  pud)

Definition at line 636 of file hugetlbpage.c.

unsigned long vma_mmu_pagesize ( struct vm_area_struct vma)

Definition at line 749 of file hugetlbpage.c.

Variable Documentation

unsigned int HPAGE_SHIFT

Definition at line 29 of file hugetlbpage.c.