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