On Thu, Jun 22, 2023 at 10:56:53AM -0300, Daniel Henrique Barboza wrote: ... > +#define KVM_MISA_CFG(_bit, _reg_id) \ > + {.offset = _bit, .kvm_reg_id = _reg_id} > + > +/* KVM ISA extensions */ > +static KVMCPUConfig kvm_misa_ext_cfgs[] = { > + KVM_MISA_CFG(RVA, KVM_RISCV_ISA_EXT_A), > + KVM_MISA_CFG(RVC, KVM_RISCV_ISA_EXT_C), > + KVM_MISA_CFG(RVD, KVM_RISCV_ISA_EXT_D), > + KVM_MISA_CFG(RVF, KVM_RISCV_ISA_EXT_F), > + KVM_MISA_CFG(RVH, KVM_RISCV_ISA_EXT_H), > + KVM_MISA_CFG(RVI, KVM_RISCV_ISA_EXT_I), > + KVM_MISA_CFG(RVM, KVM_RISCV_ISA_EXT_M), > +}; > + ... > +static void kvm_riscv_add_cpu_user_properties(Object *cpu_obj) > +{ > + int i; > + > + for (i = 0; i < ARRAY_SIZE(kvm_misa_ext_cfgs); i++) { > + KVMCPUConfig *misa_cfg = &kvm_misa_ext_cfgs[i]; > + int bit = misa_cfg->offset; > + > + misa_cfg->name = misa_ext_info_arr[bit].name; > + misa_cfg->description = misa_ext_info_arr[bit].description;
I'd prefer these be set by KVM_MISA_CFG(), since we can. No need to wait until runtime if we can do it at compile-time. Thanks, drew > + > + object_property_add(cpu_obj, misa_cfg->name, "bool", > + NULL, > + kvm_cpu_set_misa_ext_cfg, > + NULL, misa_cfg); > + object_property_set_description(cpu_obj, misa_cfg->name, > + misa_cfg->description); > + } > +} > + > static int kvm_riscv_get_regs_core(CPUState *cs) > { > int ret = 0; > @@ -427,6 +504,7 @@ void kvm_riscv_init_user_properties(Object *cpu_obj) > return; > } > > + kvm_riscv_add_cpu_user_properties(cpu_obj); > kvm_riscv_init_machine_ids(cpu, &kvmcpu); > kvm_riscv_init_misa_ext_mask(cpu, &kvmcpu); > > -- > 2.41.0 >