mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
target/arm: Use ARMGranuleSize in ARMVAParameters
Now we have an enum for the granule size, use it in the ARMVAParameters struct instead of the using16k/using64k bools. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20221003162315.2833797-3-peter.maydell@linaro.org
This commit is contained in:
parent
104f703d93
commit
3c003f7029
3 changed files with 50 additions and 20 deletions
|
@ -1007,6 +1007,26 @@ typedef enum ARMGranuleSize {
|
|||
GranInvalid,
|
||||
} ARMGranuleSize;
|
||||
|
||||
/**
|
||||
* arm_granule_bits: Return address size of the granule in bits
|
||||
*
|
||||
* Return the address size of the granule in bits. This corresponds
|
||||
* to the pseudocode TGxGranuleBits().
|
||||
*/
|
||||
static inline int arm_granule_bits(ARMGranuleSize gran)
|
||||
{
|
||||
switch (gran) {
|
||||
case Gran64K:
|
||||
return 16;
|
||||
case Gran16K:
|
||||
return 14;
|
||||
case Gran4K:
|
||||
return 12;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Parameters of a given virtual address, as extracted from the
|
||||
* translation control register (TCR) for a given regime.
|
||||
|
@ -1019,10 +1039,9 @@ typedef struct ARMVAParameters {
|
|||
bool tbi : 1;
|
||||
bool epd : 1;
|
||||
bool hpd : 1;
|
||||
bool using16k : 1;
|
||||
bool using64k : 1;
|
||||
bool tsz_oob : 1; /* tsz has been clamped to legal range */
|
||||
bool ds : 1;
|
||||
ARMGranuleSize gran : 2;
|
||||
} ARMVAParameters;
|
||||
|
||||
ARMVAParameters aa64_va_parameters(CPUARMState *env, uint64_t va,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue