xref: /linux-6.15/arch/nios2/include/asm/pgalloc.h (revision e3ecf7c7)
1cbd15b3fSLey Foon Tan /*
2cbd15b3fSLey Foon Tan  * This file is subject to the terms and conditions of the GNU General Public
3cbd15b3fSLey Foon Tan  * License.  See the file "COPYING" in the main directory of this archive
4cbd15b3fSLey Foon Tan  * for more details.
5cbd15b3fSLey Foon Tan  *
6cbd15b3fSLey Foon Tan  * Copyright (C) 1994 - 2001, 2003 by Ralf Baechle
7cbd15b3fSLey Foon Tan  * Copyright (C) 1999, 2000, 2001 Silicon Graphics, Inc.
8cbd15b3fSLey Foon Tan  */
9cbd15b3fSLey Foon Tan 
10cbd15b3fSLey Foon Tan #ifndef _ASM_NIOS2_PGALLOC_H
11cbd15b3fSLey Foon Tan #define _ASM_NIOS2_PGALLOC_H
12cbd15b3fSLey Foon Tan 
13cbd15b3fSLey Foon Tan #include <linux/mm.h>
14cbd15b3fSLey Foon Tan 
15f9cb654cSMike Rapoport #include <asm-generic/pgalloc.h>
16fc7835c2SMike Rapoport 
pmd_populate_kernel(struct mm_struct * mm,pmd_t * pmd,pte_t * pte)17cbd15b3fSLey Foon Tan static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
18cbd15b3fSLey Foon Tan 	pte_t *pte)
19cbd15b3fSLey Foon Tan {
20cbd15b3fSLey Foon Tan 	set_pmd(pmd, __pmd((unsigned long)pte));
21cbd15b3fSLey Foon Tan }
22cbd15b3fSLey Foon Tan 
pmd_populate(struct mm_struct * mm,pmd_t * pmd,pgtable_t pte)23cbd15b3fSLey Foon Tan static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
24cbd15b3fSLey Foon Tan 	pgtable_t pte)
25cbd15b3fSLey Foon Tan {
26cbd15b3fSLey Foon Tan 	set_pmd(pmd, __pmd((unsigned long)page_address(pte)));
27cbd15b3fSLey Foon Tan }
28cbd15b3fSLey Foon Tan 
29cbd15b3fSLey Foon Tan extern pgd_t *pgd_alloc(struct mm_struct *mm);
30cbd15b3fSLey Foon Tan 
31cbd15b3fSLey Foon Tan #define __pte_free_tlb(tlb, pte, addr)	\
32*e3ecf7c7SQi Zheng 	tlb_remove_ptdesc((tlb), page_ptdesc(pte))
33cbd15b3fSLey Foon Tan 
34cbd15b3fSLey Foon Tan #endif /* _ASM_NIOS2_PGALLOC_H */
35