1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2017-2018, Arm Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef XLAT_TABLES_ARCH_H 8*91f16700Schasinglulu #define XLAT_TABLES_ARCH_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #ifdef __aarch64__ 11*91f16700Schasinglulu #include "aarch64/xlat_tables_aarch64.h" 12*91f16700Schasinglulu #else 13*91f16700Schasinglulu #include "aarch32/xlat_tables_aarch32.h" 14*91f16700Schasinglulu #endif 15*91f16700Schasinglulu 16*91f16700Schasinglulu /* 17*91f16700Schasinglulu * Evaluates to 1 if the given physical address space size is a power of 2, 18*91f16700Schasinglulu * or 0 if it's not. 19*91f16700Schasinglulu */ 20*91f16700Schasinglulu #define CHECK_PHY_ADDR_SPACE_SIZE(size) \ 21*91f16700Schasinglulu (IS_POWER_OF_TWO(size)) 22*91f16700Schasinglulu 23*91f16700Schasinglulu /* 24*91f16700Schasinglulu * Compute the number of entries required at the initial lookup level to address 25*91f16700Schasinglulu * the whole virtual address space. 26*91f16700Schasinglulu */ 27*91f16700Schasinglulu #define GET_NUM_BASE_LEVEL_ENTRIES(addr_space_size) \ 28*91f16700Schasinglulu ((addr_space_size) >> \ 29*91f16700Schasinglulu XLAT_ADDR_SHIFT(GET_XLAT_TABLE_LEVEL_BASE(addr_space_size))) 30*91f16700Schasinglulu 31*91f16700Schasinglulu #endif /* XLAT_TABLES_ARCH_H */ 32