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