linux/arch/arm64/include/asm/hugetlb.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-only */
   2/*
   3 * arch/arm64/include/asm/hugetlb.h
   4 *
   5 * Copyright (C) 2013 Linaro Ltd.
   6 *
   7 * Based on arch/x86/include/asm/hugetlb.h
   8 */
   9
  10#ifndef __ASM_HUGETLB_H
  11#define __ASM_HUGETLB_H
  12
  13#include <asm/page.h>
  14
  15#ifdef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
  16#define arch_hugetlb_migration_supported arch_hugetlb_migration_supported
  17extern bool arch_hugetlb_migration_supported(struct hstate *h);
  18#endif
  19
  20static inline void arch_clear_hugepage_flags(struct page *page)
  21{
  22        clear_bit(PG_dcache_clean, &page->flags);
  23}
  24#define arch_clear_hugepage_flags arch_clear_hugepage_flags
  25
  26pte_t arch_make_huge_pte(pte_t entry, unsigned int shift, vm_flags_t flags);
  27#define arch_make_huge_pte arch_make_huge_pte
  28#define __HAVE_ARCH_HUGE_SET_HUGE_PTE_AT
  29extern void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
  30                            pte_t *ptep, pte_t pte);
  31#define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS
  32extern int huge_ptep_set_access_flags(struct vm_area_struct *vma,
  33                                      unsigned long addr, pte_t *ptep,
  34                                      pte_t pte, int dirty);
  35#define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
  36extern pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
  37                                     unsigned long addr, pte_t *ptep);
  38#define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
  39extern void huge_ptep_set_wrprotect(struct mm_struct *mm,
  40                                    unsigned long addr, pte_t *ptep);
  41#define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
  42extern void huge_ptep_clear_flush(struct vm_area_struct *vma,
  43                                  unsigned long addr, pte_t *ptep);
  44#define __HAVE_ARCH_HUGE_PTE_CLEAR
  45extern void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
  46                           pte_t *ptep, unsigned long sz);
  47extern void set_huge_swap_pte_at(struct mm_struct *mm, unsigned long addr,
  48                                 pte_t *ptep, pte_t pte, unsigned long sz);
  49#define set_huge_swap_pte_at set_huge_swap_pte_at
  50
  51void __init arm64_hugetlb_cma_reserve(void);
  52
  53#include <asm-generic/hugetlb.h>
  54
  55#endif /* __ASM_HUGETLB_H */
  56