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