Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Enumerations | Functions
huge_mm.h File Reference

Go to the source code of this file.

Macros

#define HPAGE_PMD_ORDER   (HPAGE_PMD_SHIFT-PAGE_SHIFT)
 
#define HPAGE_PMD_NR   (1<<HPAGE_PMD_ORDER)
 
#define HPAGE_PMD_SHIFT   ({ BUILD_BUG(); 0; })
 
#define HPAGE_PMD_MASK   ({ BUILD_BUG(); 0; })
 
#define HPAGE_PMD_SIZE   ({ BUILD_BUG(); 0; })
 
#define hpage_nr_pages(x)   1
 
#define transparent_hugepage_enabled(__vma)   0
 
#define transparent_hugepage_flags   0UL
 
#define split_huge_page_pmd(__mm, __pmd)   do { } while (0)
 
#define wait_split_huge_page(__anon_vma, __pmd)   do { } while (0)
 
#define compound_trans_head(page)   compound_head(page)
 

Enumerations

enum  transparent_hugepage_flag {
  TRANSPARENT_HUGEPAGE_FLAG, TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG, TRANSPARENT_HUGEPAGE_DEFRAG_FLAG, TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG,
  TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG
}
 
enum  page_check_address_pmd_flag { PAGE_CHECK_ADDRESS_PMD_FLAG, PAGE_CHECK_ADDRESS_PMD_NOTSPLITTING_FLAG, PAGE_CHECK_ADDRESS_PMD_SPLITTING_FLAG }
 

Functions

int do_huge_pmd_anonymous_page (struct mm_struct *mm, struct vm_area_struct *vma, unsigned long address, pmd_t *pmd, unsigned int flags)
 
int copy_huge_pmd (struct mm_struct *dst_mm, struct mm_struct *src_mm, pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr, struct vm_area_struct *vma)
 
int do_huge_pmd_wp_page (struct mm_struct *mm, struct vm_area_struct *vma, unsigned long address, pmd_t *pmd, pmd_t orig_pmd)
 
struct pagefollow_trans_huge_pmd (struct vm_area_struct *vma, unsigned long addr, pmd_t *pmd, unsigned int flags)
 
int zap_huge_pmd (struct mmu_gather *tlb, struct vm_area_struct *vma, pmd_t *pmd, unsigned long addr)
 
int mincore_huge_pmd (struct vm_area_struct *vma, pmd_t *pmd, unsigned long addr, unsigned long end, unsigned char *vec)
 
int move_huge_pmd (struct vm_area_struct *vma, struct vm_area_struct *new_vma, unsigned long old_addr, unsigned long new_addr, unsigned long old_end, pmd_t *old_pmd, pmd_t *new_pmd)
 
int change_huge_pmd (struct vm_area_struct *vma, pmd_t *pmd, unsigned long addr, pgprot_t newprot)
 
pmd_tpage_check_address_pmd (struct page *page, struct mm_struct *mm, unsigned long address, enum page_check_address_pmd_flag flag)
 

Macro Definition Documentation

#define compound_trans_head (   page)    compound_head(page)

Definition at line 180 of file huge_mm.h.

#define hpage_nr_pages (   x)    1

Definition at line 167 of file huge_mm.h.

#define HPAGE_PMD_MASK   ({ BUILD_BUG(); 0; })

Definition at line 164 of file huge_mm.h.

#define HPAGE_PMD_NR   (1<<HPAGE_PMD_ORDER)

Definition at line 54 of file huge_mm.h.

#define HPAGE_PMD_ORDER   (HPAGE_PMD_SHIFT-PAGE_SHIFT)

Definition at line 53 of file huge_mm.h.

#define HPAGE_PMD_SHIFT   ({ BUILD_BUG(); 0; })

Definition at line 163 of file huge_mm.h.

#define HPAGE_PMD_SIZE   ({ BUILD_BUG(); 0; })

Definition at line 165 of file huge_mm.h.

#define split_huge_page_pmd (   __mm,
  __pmd 
)    do { } while (0)

Definition at line 176 of file huge_mm.h.

#define transparent_hugepage_enabled (   __vma)    0

Definition at line 169 of file huge_mm.h.

#define transparent_hugepage_flags   0UL

Definition at line 171 of file huge_mm.h.

#define wait_split_huge_page (   __anon_vma,
  __pmd 
)    do { } while (0)

Definition at line 178 of file huge_mm.h.

Enumeration Type Documentation

Enumerator:
PAGE_CHECK_ADDRESS_PMD_FLAG 
PAGE_CHECK_ADDRESS_PMD_NOTSPLITTING_FLAG 
PAGE_CHECK_ADDRESS_PMD_SPLITTING_FLAG 

Definition at line 43 of file huge_mm.h.

Enumerator:
TRANSPARENT_HUGEPAGE_FLAG 
TRANSPARENT_HUGEPAGE_REQ_MADV_FLAG 
TRANSPARENT_HUGEPAGE_DEFRAG_FLAG 
TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG 
TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG 

Definition at line 32 of file huge_mm.h.

Function Documentation

int change_huge_pmd ( struct vm_area_struct vma,
pmd_t pmd,
unsigned long  addr,
pgprot_t  newprot 
)

Definition at line 1101 of file huge_memory.c.

int copy_huge_pmd ( struct mm_struct dst_mm,
struct mm_struct src_mm,
pmd_t dst_pmd,
pmd_t src_pmd,
unsigned long  addr,
struct vm_area_struct vma 
)

Definition at line 728 of file huge_memory.c.

int do_huge_pmd_anonymous_page ( struct mm_struct mm,
struct vm_area_struct vma,
unsigned long  address,
pmd_t pmd,
unsigned int  flags 
)

Definition at line 674 of file huge_memory.c.

int do_huge_pmd_wp_page ( struct mm_struct mm,
struct vm_area_struct vma,
unsigned long  address,
pmd_t pmd,
pmd_t  orig_pmd 
)

Definition at line 882 of file huge_memory.c.

struct page* follow_trans_huge_pmd ( struct vm_area_struct vma,
unsigned long  addr,
pmd_t pmd,
unsigned int  flags 
)
read

Definition at line 975 of file huge_memory.c.

int mincore_huge_pmd ( struct vm_area_struct vma,
pmd_t pmd,
unsigned long  addr,
unsigned long  end,
unsigned char vec 
)

Definition at line 1046 of file huge_memory.c.

int move_huge_pmd ( struct vm_area_struct vma,
struct vm_area_struct new_vma,
unsigned long  old_addr,
unsigned long  new_addr,
unsigned long  old_end,
pmd_t old_pmd,
pmd_t new_pmd 
)

Definition at line 1065 of file huge_memory.c.

pmd_t* page_check_address_pmd ( struct page page,
struct mm_struct mm,
unsigned long  address,
enum page_check_address_pmd_flag  flag 
)

Definition at line 1144 of file huge_memory.c.

int zap_huge_pmd ( struct mmu_gather tlb,
struct vm_area_struct vma,
pmd_t pmd,
unsigned long  addr 
)

Definition at line 1020 of file huge_memory.c.