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/20230919175017.538312-3-jingzhan...@google.com/ Definitively we can add a comment Thanks Eric > > Whatever the actual answer, some comments would be good. > > > r~ >