14726dd60SMichal Simek /* SPDX-License-Identifier: GPL-2.0 */
26a3cece5SMichal Simek /*
31f84e1eaSMichal Simek  * Copyright (C) 2008-2009 Michal Simek <[email protected]>
41f84e1eaSMichal Simek  * Copyright (C) 2008-2009 PetaLogix
56a3cece5SMichal Simek  * Copyright (C) 2006 Atmark Techno, Inc.
66a3cece5SMichal Simek  */
76a3cece5SMichal Simek 
86a3cece5SMichal Simek #ifndef _ASM_MICROBLAZE_PGALLOC_H
96a3cece5SMichal Simek #define _ASM_MICROBLAZE_PGALLOC_H
106a3cece5SMichal Simek 
111f84e1eaSMichal Simek #include <linux/kernel.h>	/* For min/max macros */
121f84e1eaSMichal Simek #include <linux/highmem.h>
1365fddcfcSMike Rapoport #include <linux/pgtable.h>
141f84e1eaSMichal Simek #include <asm/setup.h>
151f84e1eaSMichal Simek #include <asm/io.h>
161f84e1eaSMichal Simek #include <asm/page.h>
171f84e1eaSMichal Simek #include <asm/cache.h>
181f84e1eaSMichal Simek 
191b9a9d85SMike Rapoport #define __HAVE_ARCH_PTE_ALLOC_ONE_KERNEL
201b9a9d85SMike Rapoport #include <asm-generic/pgalloc.h>
211b9a9d85SMike Rapoport 
221f84e1eaSMichal Simek extern void __bad_pte(pmd_t *pmd);
231f84e1eaSMichal Simek 
24*a9b3c355SKevin Brodsky #define pgd_alloc(mm)		__pgd_alloc(mm, 0)
251f84e1eaSMichal Simek 
264cf58924SJoel Fernandes (Google) extern pte_t *pte_alloc_one_kernel(struct mm_struct *mm);
271f84e1eaSMichal Simek 
289e1b32caSBenjamin Herrenschmidt #define __pte_free_tlb(tlb, pte, addr)	pte_free((tlb)->mm, (pte))
291f84e1eaSMichal Simek 
305f0cb3e0SMichal Simek #define pmd_populate(mm, pmd, pte) \
315f0cb3e0SMichal Simek 			(pmd_val(*(pmd)) = (unsigned long)page_address(pte))
321f84e1eaSMichal Simek 
331f84e1eaSMichal Simek #define pmd_populate_kernel(mm, pmd, pte) \
341f84e1eaSMichal Simek 		(pmd_val(*(pmd)) = (unsigned long) (pte))
351f84e1eaSMichal Simek 
366a3cece5SMichal Simek #endif /* _ASM_MICROBLAZE_PGALLOC_H */
37