hugetlb.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef _ASM_PARISC64_HUGETLB_H
  3. #define _ASM_PARISC64_HUGETLB_H
  4. #include <asm/page.h>
  5. #define __HAVE_ARCH_HUGE_SET_HUGE_PTE_AT
  6. void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,
  7. pte_t *ptep, pte_t pte);
  8. #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
  9. pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
  10. pte_t *ptep);
  11. static inline int is_hugepage_only_range(struct mm_struct *mm,
  12. unsigned long addr,
  13. unsigned long len) {
  14. return 0;
  15. }
  16. /*
  17. * If the arch doesn't supply something else, assume that hugepage
  18. * size aligned regions are ok without further preparation.
  19. */
  20. #define __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE
  21. static inline int prepare_hugepage_range(struct file *file,
  22. unsigned long addr, unsigned long len)
  23. {
  24. if (len & ~HPAGE_MASK)
  25. return -EINVAL;
  26. if (addr & ~HPAGE_MASK)
  27. return -EINVAL;
  28. return 0;
  29. }
  30. #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
  31. static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
  32. unsigned long addr, pte_t *ptep)
  33. {
  34. }
  35. #define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
  36. void huge_ptep_set_wrprotect(struct mm_struct *mm,
  37. unsigned long addr, pte_t *ptep);
  38. #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS
  39. int huge_ptep_set_access_flags(struct vm_area_struct *vma,
  40. unsigned long addr, pte_t *ptep,
  41. pte_t pte, int dirty);
  42. static inline void arch_clear_hugepage_flags(struct page *page)
  43. {
  44. }
  45. #include <asm-generic/hugetlb.h>
  46. #endif /* _ASM_PARISC64_HUGETLB_H */