1/* 2 * Copyright 2014, General Dynamics C4 Systems 3 * 4 * SPDX-License-Identifier: GPL-2.0-only 5 */ 6 7#pragma once 8 9#include <config.h> 10#include <types.h> 11#include <arch/types.h> 12#include <util.h> 13#include <object/structures.h> 14 15#ifdef CONFIG_KERNEL_GLOBALS_FRAME 16extern word_t armKSGlobalsFrame[BIT(ARMSmallPageBits) / sizeof(word_t)] VISIBLE; 17#endif /* CONFIG_KERNEL_GLOBALS_FRAME */ 18extern asid_pool_t *armKSASIDTable[BIT(asidHighBits)] VISIBLE; 19extern asid_t armKSHWASIDTable[BIT(hwASIDBits)] VISIBLE; 20extern hw_asid_t armKSNextASID VISIBLE; 21 22#ifndef CONFIG_ARM_HYPERVISOR_SUPPORT 23extern pde_t armKSGlobalPD[BIT(PD_INDEX_BITS)] VISIBLE; 24extern pte_t armKSGlobalPT[BIT(PT_INDEX_BITS)] VISIBLE; 25 26#ifdef CONFIG_KERNEL_LOG_BUFFER 27extern pte_t armKSGlobalLogPT[BIT(PT_INDEX_BITS)] VISIBLE; 28#endif /* CONFIG_KERNEL_LOG_BUFFER */ 29 30#else 31extern pdeS1_t armHSGlobalPGD[BIT(PGD_INDEX_BITS)] VISIBLE; 32extern pdeS1_t armHSGlobalPD[BIT(PT_INDEX_BITS)] VISIBLE; 33extern pteS1_t armHSGlobalPT[BIT(PT_INDEX_BITS)] VISIBLE; 34extern pde_t armUSGlobalPD[BIT(PD_INDEX_BITS)] VISIBLE; 35/* Stage 2 translations have a slightly different encoding to Stage 1 36 * So we need to build a User global PT for global mappings */ 37extern pte_t armUSGlobalPT[BIT(PT_INDEX_BITS)] VISIBLE; 38#endif /* CONFIG_ARM_HYPERVISOR_SUPPORT */ 39 40