linux/arch/powerpc/include/asm/hugetlb.h
<<
>>
Prefs
   1#ifndef _ASM_POWERPC_HUGETLB_H
   2#define _ASM_POWERPC_HUGETLB_H
   3
   4#include <asm/page.h>
   5
   6
   7int is_hugepage_only_range(struct mm_struct *mm, unsigned long addr,
   8                           unsigned long len);
   9
  10void hugetlb_free_pgd_range(struct mmu_gather *tlb, unsigned long addr,
  11                            unsigned long end, unsigned long floor,
  12                            unsigned long ceiling);
  13
  14void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
  15                     pte_t *ptep, pte_t pte);
  16
  17pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
  18                              pte_t *ptep);
  19
  20/*
  21 * The version of vma_mmu_pagesize() in arch/powerpc/mm/hugetlbpage.c needs
  22 * to override the version in mm/hugetlb.c
  23 */
  24#define vma_mmu_pagesize vma_mmu_pagesize
  25
  26/*
  27 * If the arch doesn't supply something else, assume that hugepage
  28 * size aligned regions are ok without further preparation.
  29 */
  30static inline int prepare_hugepage_range(struct file *file,
  31                        unsigned long addr, unsigned long len)
  32{
  33        struct hstate *h = hstate_file(file);
  34        if (len & ~huge_page_mask(h))
  35                return -EINVAL;
  36        if (addr & ~huge_page_mask(h))
  37                return -EINVAL;
  38        return 0;
  39}
  40
  41static inline void hugetlb_prefault_arch_hook(struct mm_struct *mm)
  42{
  43}
  44
  45static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
  46                                         unsigned long addr, pte_t *ptep)
  47{
  48}
  49
  50static inline int huge_pte_none(pte_t pte)
  51{
  52        return pte_none(pte);
  53}
  54
  55static inline pte_t huge_pte_wrprotect(pte_t pte)
  56{
  57        return pte_wrprotect(pte);
  58}
  59
  60static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma,
  61                                             unsigned long addr, pte_t *ptep,
  62                                             pte_t pte, int dirty)
  63{
  64        return ptep_set_access_flags(vma, addr, ptep, pte, dirty);
  65}
  66
  67static inline pte_t huge_ptep_get(pte_t *ptep)
  68{
  69        return *ptep;
  70}
  71
  72static inline int arch_prepare_hugepage(struct page *page)
  73{
  74        return 0;
  75}
  76
  77static inline void arch_release_hugepage(struct page *page)
  78{
  79}
  80
  81#endif /* _ASM_POWERPC_HUGETLB_H */
  82