blob: 36cc0396b21459216ff8d8a3703b7c56f3f8a0bf [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_IA64_HUGETLB_H
3#define _ASM_IA64_HUGETLB_H
4
5#include <asm/page.h>
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00006
David Brazdil0f672f62019-12-10 10:32:29 +00007#define __HAVE_ARCH_HUGETLB_FREE_PGD_RANGE
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00008void hugetlb_free_pgd_range(struct mmu_gather *tlb, unsigned long addr,
9 unsigned long end, unsigned long floor,
10 unsigned long ceiling);
11
David Brazdil0f672f62019-12-10 10:32:29 +000012#define __HAVE_ARCH_PREPARE_HUGEPAGE_RANGE
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000013int prepare_hugepage_range(struct file *file,
14 unsigned long addr, unsigned long len);
15
16static inline int is_hugepage_only_range(struct mm_struct *mm,
17 unsigned long addr,
18 unsigned long len)
19{
20 return (REGION_NUMBER(addr) == RGN_HPAGE ||
21 REGION_NUMBER((addr)+(len)-1) == RGN_HPAGE);
22}
23
David Brazdil0f672f62019-12-10 10:32:29 +000024#define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000025static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
26 unsigned long addr, pte_t *ptep)
27{
28}
29
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000030static inline void arch_clear_hugepage_flags(struct page *page)
31{
32}
33
David Brazdil0f672f62019-12-10 10:32:29 +000034#include <asm-generic/hugetlb.h>
35
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000036#endif /* _ASM_IA64_HUGETLB_H */