18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public 38c2ecf20Sopenharmony_ci * License. See the file "COPYING" in the main directory of this archive 48c2ecf20Sopenharmony_ci * for more details. 58c2ecf20Sopenharmony_ci * 68c2ecf20Sopenharmony_ci * Copyright (C) 1994 - 2001, 2003 by Ralf Baechle 78c2ecf20Sopenharmony_ci * Copyright (C) 1999, 2000, 2001 Silicon Graphics, Inc. 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef _ASM_NIOS2_PGALLOC_H 118c2ecf20Sopenharmony_ci#define _ASM_NIOS2_PGALLOC_H 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include <linux/mm.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include <asm-generic/pgalloc.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistatic inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, 188c2ecf20Sopenharmony_ci pte_t *pte) 198c2ecf20Sopenharmony_ci{ 208c2ecf20Sopenharmony_ci set_pmd(pmd, __pmd((unsigned long)pte)); 218c2ecf20Sopenharmony_ci} 228c2ecf20Sopenharmony_ci 238c2ecf20Sopenharmony_cistatic inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd, 248c2ecf20Sopenharmony_ci pgtable_t pte) 258c2ecf20Sopenharmony_ci{ 268c2ecf20Sopenharmony_ci set_pmd(pmd, __pmd((unsigned long)page_address(pte))); 278c2ecf20Sopenharmony_ci} 288c2ecf20Sopenharmony_ci#define pmd_pgtable(pmd) pmd_page(pmd) 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci/* 318c2ecf20Sopenharmony_ci * Initialize a new pmd table with invalid pointers. 328c2ecf20Sopenharmony_ci */ 338c2ecf20Sopenharmony_ciextern void pmd_init(unsigned long page, unsigned long pagetable); 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciextern pgd_t *pgd_alloc(struct mm_struct *mm); 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#define __pte_free_tlb(tlb, pte, addr) \ 388c2ecf20Sopenharmony_ci do { \ 398c2ecf20Sopenharmony_ci pgtable_pte_page_dtor(pte); \ 408c2ecf20Sopenharmony_ci tlb_remove_page((tlb), (pte)); \ 418c2ecf20Sopenharmony_ci } while (0) 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci#endif /* _ASM_NIOS2_PGALLOC_H */ 44