xref: /linux-6.15/arch/um/include/asm/pgalloc.h (revision e3ecf7c7)
1f2f4bf5aSAlex Dewar /* SPDX-License-Identifier: GPL-2.0 */
28ede0bdbSAl Viro /*
38ede0bdbSAl Viro  * Copyright (C) 2000, 2001, 2002 Jeff Dike ([email protected])
48ede0bdbSAl Viro  * Copyright 2003 PathScale, Inc.
58ede0bdbSAl Viro  * Derived from include/asm-i386/pgalloc.h and include/asm-i386/pgtable.h
68ede0bdbSAl Viro  */
78ede0bdbSAl Viro 
88ede0bdbSAl Viro #ifndef __UM_PGALLOC_H
98ede0bdbSAl Viro #define __UM_PGALLOC_H
108ede0bdbSAl Viro 
1128a12cb5SAl Viro #include <linux/mm.h>
128ede0bdbSAl Viro 
131355c31eSMike Rapoport #include <asm-generic/pgalloc.h>
14f32848e1SMike Rapoport 
158ede0bdbSAl Viro #define pmd_populate_kernel(mm, pmd, pte) \
168ede0bdbSAl Viro 	set_pmd(pmd, __pmd(_PAGE_TABLE + (unsigned long) __pa(pte)))
178ede0bdbSAl Viro 
188ede0bdbSAl Viro #define pmd_populate(mm, pmd, pte) 				\
198ede0bdbSAl Viro 	set_pmd(pmd, __pmd(_PAGE_TABLE +			\
208ede0bdbSAl Viro 		((unsigned long long)page_to_pfn(pte) <<	\
218ede0bdbSAl Viro 			(unsigned long long) PAGE_SHIFT)))
228ede0bdbSAl Viro 
238ede0bdbSAl Viro /*
248ede0bdbSAl Viro  * Allocate and free page tables.
258ede0bdbSAl Viro  */
268ede0bdbSAl Viro extern pgd_t *pgd_alloc(struct mm_struct *);
278ede0bdbSAl Viro 
289e1b32caSBenjamin Herrenschmidt #define __pte_free_tlb(tlb, pte, address)	\
29*e3ecf7c7SQi Zheng 	tlb_remove_ptdesc((tlb), page_ptdesc(pte))
308ede0bdbSAl Viro 
3141ab5fe7SBenjamin Berg #if CONFIG_PGTABLE_LEVELS > 2
329a5085b3SRichard Weinberger 
339a5085b3SRichard Weinberger #define __pmd_free_tlb(tlb, pmd, address)	\
34*e3ecf7c7SQi Zheng 	tlb_remove_ptdesc((tlb), virt_to_ptdesc(pmd))
359a5085b3SRichard Weinberger 
3641ab5fe7SBenjamin Berg #if CONFIG_PGTABLE_LEVELS > 3
3741ab5fe7SBenjamin Berg 
3841ab5fe7SBenjamin Berg #define __pud_free_tlb(tlb, pud, address)	\
39*e3ecf7c7SQi Zheng 	tlb_remove_ptdesc((tlb), virt_to_ptdesc(pud))
4041ab5fe7SBenjamin Berg 
4141ab5fe7SBenjamin Berg #endif
428ede0bdbSAl Viro #endif
438ede0bdbSAl Viro 
448ede0bdbSAl Viro #endif
458ede0bdbSAl Viro 
46