hugetlb.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. #ifndef __ASM_HUGETLB_H
  10. #define __ASM_HUGETLB_H
  11. #include <asm/page.h>
  12. #ifdef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
  13. #define arch_hugetlb_migration_supported arch_hugetlb_migration_supported
  14. extern bool arch_hugetlb_migration_supported(struct hstate *h);
  15. #endif
  16. static inline void arch_clear_hugepage_flags(struct page *page)
  17. {
  18. clear_bit(PG_dcache_clean, &page->flags);
  19. }
  20. #define arch_clear_hugepage_flags arch_clear_hugepage_flags
  21. pte_t arch_make_huge_pte(pte_t entry, unsigned int shift, vm_flags_t flags);
  22. #define arch_make_huge_pte arch_make_huge_pte
  23. #define __HAVE_ARCH_HUGE_SET_HUGE_PTE_AT
  24. extern void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
  25. pte_t *ptep, pte_t pte);
  26. #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS
  27. extern int huge_ptep_set_access_flags(struct vm_area_struct *vma,
  28. unsigned long addr, pte_t *ptep,
  29. pte_t pte, int dirty);
  30. #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
  31. extern pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
  32. unsigned long addr, pte_t *ptep);
  33. #define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
  34. extern void huge_ptep_set_wrprotect(struct mm_struct *mm,
  35. unsigned long addr, pte_t *ptep);
  36. #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
  37. extern pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
  38. unsigned long addr, pte_t *ptep);
  39. #define __HAVE_ARCH_HUGE_PTE_CLEAR
  40. extern void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
  41. pte_t *ptep, unsigned long sz);
  42. #define __HAVE_ARCH_HUGE_PTEP_GET
  43. extern pte_t huge_ptep_get(pte_t *ptep);
  44. void __init arm64_hugetlb_cma_reserve(void);
  45. #include <asm-generic/hugetlb.h>
  46. #endif /* __ASM_HUGETLB_H */