Hi Richard,
On 12/12/24 14:59, Richard Henderson wrote:
> On 12/6/24 05:21, Cornelia Huck wrote:
>> +#define NR_ID_REGS (3 * 8 * 8)
>> +
>> +typedef struct IdRegMap {
>> + uint64_t regs[NR_ID_REGS];
>> +} IdRegMap;
>> +
>
> Where does the NR_ID_REGS come from? In particular the * 3?
> IIRC, all of the id registers are in op0=3, op1=0, crn=0, crm={0-7},
> op2={0-7}.
According to the KVM API and code,
"The Feature ID space is defined as the AArch64 System register space
with +op0==3, op1=={0, 1, 3}, CRn==0, CRm=={0-7}, op2=={0-7}."
hence that choice
See:
https://lore.kernel.org/all/[email protected]/
Definitively we can add a comment
Thanks
Eric
>
> Whatever the actual answer, some comments would be good.
>
>
> r~
>