TARGET_PAGE_ENTRY_EXTRA is a macro that allows guests to specify additional fields for caching with the full TLB entry. This macro is replaced with a union in CPUTLBEntryFull, thus making CPUTLB target-agnostic at the cost of slightly inflated CPUTLBEntryFull for non-arm guests. Note, this is needed to ensure that fields in CPUTLB don't vary in offset between various targets. (arm is the only guest actually making use of this feature.) Signed-off-by: Anton Johansson <anjo@rev.ng> Message-Id: <20230912153428.17816-2-anjo@rev.ng> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
		
			
				
	
	
		
			37 lines
		
	
	
		
			759 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			759 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * ARM cpu parameters for qemu.
 | 
						|
 *
 | 
						|
 * Copyright (c) 2003 Fabrice Bellard
 | 
						|
 * SPDX-License-Identifier: LGPL-2.0+
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef ARM_CPU_PARAM_H
 | 
						|
#define ARM_CPU_PARAM_H
 | 
						|
 | 
						|
#ifdef TARGET_AARCH64
 | 
						|
# define TARGET_LONG_BITS             64
 | 
						|
# define TARGET_PHYS_ADDR_SPACE_BITS  52
 | 
						|
# define TARGET_VIRT_ADDR_SPACE_BITS  52
 | 
						|
#else
 | 
						|
# define TARGET_LONG_BITS             32
 | 
						|
# define TARGET_PHYS_ADDR_SPACE_BITS  40
 | 
						|
# define TARGET_VIRT_ADDR_SPACE_BITS  32
 | 
						|
#endif
 | 
						|
 | 
						|
#ifdef CONFIG_USER_ONLY
 | 
						|
#define TARGET_PAGE_BITS 12
 | 
						|
# ifdef TARGET_AARCH64
 | 
						|
#  define TARGET_TAGGED_ADDRESSES
 | 
						|
# endif
 | 
						|
#else
 | 
						|
/*
 | 
						|
 * ARMv7 and later CPUs have 4K pages minimum, but ARMv5 and v6
 | 
						|
 * have to support 1K tiny pages.
 | 
						|
 */
 | 
						|
# define TARGET_PAGE_BITS_VARY
 | 
						|
# define TARGET_PAGE_BITS_MIN  10
 | 
						|
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |