hugetlb.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. /*
  12. * If the arch doesn't supply something else, assume that hugepage
  13. * size aligned regions are ok without further preparation.
  14. */
  15. #define __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE
  16. static inline int prepare_hugepage_range(struct file *file,
  17. unsigned long addr, unsigned long len)
  18. {
  19. if (len & ~HPAGE_MASK)
  20. return -EINVAL;
  21. if (addr & ~HPAGE_MASK)
  22. return -EINVAL;
  23. return 0;
  24. }
  25. #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
  26. static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
  27. unsigned long addr, pte_t *ptep)
  28. {
  29. return *ptep;
  30. }
  31. #define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
  32. void huge_ptep_set_wrprotect(struct mm_struct *mm,
  33. unsigned long addr, pte_t *ptep);
  34. #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS
  35. int huge_ptep_set_access_flags(struct vm_area_struct *vma,
  36. unsigned long addr, pte_t *ptep,
  37. pte_t pte, int dirty);
  38. #include <asm-generic/hugetlb.h>
  39. #endif /* _ASM_PARISC64_HUGETLB_H */