blob: 7e46ebde8c0c9cc1ea7c71411632c03b6e8b4832 [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}
Olivier Deprez157378f2022-04-04 15:47:50 +020023#define is_hugepage_only_range is_hugepage_only_range
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000024
David Brazdil0f672f62019-12-10 10:32:29 +000025#define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000026static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
27 unsigned long addr, pte_t *ptep)
28{
29}
30
David Brazdil0f672f62019-12-10 10:32:29 +000031#include <asm-generic/hugetlb.h>
32
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000033#endif /* _ASM_IA64_HUGETLB_H */