[funini.com] -> [kei@sodan] -> Kernel Reading

root/include/asm-x86/hugetlb.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. is_hugepage_only_range
  2. prepare_hugepage_range
  3. hugetlb_prefault_arch_hook
  4. hugetlb_free_pgd_range
  5. set_huge_pte_at
  6. huge_ptep_get_and_clear
  7. huge_ptep_clear_flush
  8. huge_pte_none
  9. huge_pte_wrprotect
  10. huge_ptep_set_wrprotect
  11. huge_ptep_set_access_flags
  12. huge_ptep_get
  13. arch_prepare_hugepage
  14. arch_release_hugepage

#ifndef ASM_X86__HUGETLB_H
#define ASM_X86__HUGETLB_H

#include <asm/page.h>


static inline int is_hugepage_only_range(struct mm_struct *mm,
                                         unsigned long addr,
                                         unsigned long len) {
        return 0;
}

/*
 * If the arch doesn't supply something else, assume that hugepage
 * size aligned regions are ok without further preparation.
 */
static inline int prepare_hugepage_range(struct file *file,
                        unsigned long addr, unsigned long len)
{
        struct hstate *h = hstate_file(file);
        if (len & ~huge_page_mask(h))
                return -EINVAL;
        if (addr & ~huge_page_mask(h))
                return -EINVAL;
        return 0;
}

static inline void hugetlb_prefault_arch_hook(struct mm_struct *mm) {
}

static inline void hugetlb_free_pgd_range(struct mmu_gather *tlb,
                                          unsigned long addr, unsigned long end,
                                          unsigned long floor,
                                          unsigned long ceiling)
{
        free_pgd_range(tlb, addr, end, floor, ceiling);
}

static inline void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
                                   pte_t *ptep, pte_t pte)
{
        set_pte_at(mm, addr, ptep, pte);
}

static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
                                            unsigned long addr, pte_t *ptep)
{
        return ptep_get_and_clear(mm, addr, ptep);
}

static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
                                         unsigned long addr, pte_t *ptep)
{
}

static inline int huge_pte_none(pte_t pte)
{
        return pte_none(pte);
}

static inline pte_t huge_pte_wrprotect(pte_t pte)
{
        return pte_wrprotect(pte);
}

static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
                                           unsigned long addr, pte_t *ptep)
{
        ptep_set_wrprotect(mm, addr, ptep);
}

static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma,
                                             unsigned long addr, pte_t *ptep,
                                             pte_t pte, int dirty)
{
        return ptep_set_access_flags(vma, addr, ptep, pte, dirty);
}

static inline pte_t huge_ptep_get(pte_t *ptep)
{
        return *ptep;
}

static inline int arch_prepare_hugepage(struct page *page)
{
        return 0;
}

static inline void arch_release_hugepage(struct page *page)
{
}

#endif /* ASM_X86__HUGETLB_H */

/* [<][>][^][v][top][bottom][index][help] */

[funini.com] -> [kei@sodan] -> Kernel Reading