37 lines
		
	
	
		
			761 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			761 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| #ifndef _ALPHA_PGALLOC_H
 | |
| #define _ALPHA_PGALLOC_H
 | |
| 
 | |
| #include <linux/mm.h>
 | |
| #include <linux/mmzone.h>
 | |
| 
 | |
| #include <asm-generic/pgalloc.h>
 | |
| 
 | |
| /*      
 | |
|  * Allocate and free page tables. The xxx_kernel() versions are
 | |
|  * used to allocate a kernel page table - this turns on ASN bits
 | |
|  * if any.
 | |
|  */
 | |
| 
 | |
| static inline void
 | |
| pmd_populate(struct mm_struct *mm, pmd_t *pmd, pgtable_t pte)
 | |
| {
 | |
| 	pmd_set(pmd, (pte_t *)(page_to_pa(pte) + PAGE_OFFSET));
 | |
| }
 | |
| 
 | |
| static inline void
 | |
| pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte)
 | |
| {
 | |
| 	pmd_set(pmd, pte);
 | |
| }
 | |
| 
 | |
| static inline void
 | |
| pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
 | |
| {
 | |
| 	pud_set(pud, pmd);
 | |
| }
 | |
| 
 | |
| extern pgd_t *pgd_alloc(struct mm_struct *mm);
 | |
| 
 | |
| #endif /* _ALPHA_PGALLOC_H */
 |