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