1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _ASM_X86_INIT_H 3*4882a593Smuzhiyun #define _ASM_X86_INIT_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun struct x86_mapping_info { 6*4882a593Smuzhiyun void *(*alloc_pgt_page)(void *); /* allocate buf for page table */ 7*4882a593Smuzhiyun void *context; /* context for alloc_pgt_page */ 8*4882a593Smuzhiyun unsigned long page_flag; /* page flag for PMD or PUD entry */ 9*4882a593Smuzhiyun unsigned long offset; /* ident mapping offset */ 10*4882a593Smuzhiyun bool direct_gbpages; /* PUD level 1GB page support */ 11*4882a593Smuzhiyun unsigned long kernpg_flag; /* kernel pagetable flag override */ 12*4882a593Smuzhiyun }; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun int kernel_ident_mapping_init(struct x86_mapping_info *info, pgd_t *pgd_page, 15*4882a593Smuzhiyun unsigned long pstart, unsigned long pend); 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun #endif /* _ASM_X86_INIT_H */ 18