target/riscv/tcg: use isa_edata_arr[] to create user props
This change has been done twice now: one in riscv-qmp-cmds, another in the KVM. We're now ready to do it for TCG. Signed-off-by: Daniel Henrique Barboza <daniel.barboza@oss.qualcomm.com> Acked-by: Alistair Francis <alistair.francis@wdc.com> Message-ID: <20260512032926.1978818-14-daniel.barboza@oss.qualcomm.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Daniel Henrique Barboza committed
May 12, 2026 at 00:29 UTC
e499a42786c4c935222d80783855cdb7e3ce0f3a
1 file changed
+10
-24
target/riscv/tcg/tcg-cpu.c
+10
-24
@@ -1550,27 +1550,6 @@ static void cpu_get_multi_ext_cfg(Object *obj, Visitor *v, const char *name,
1550
visit_type_bool(v, name, &value, errp);
1551
}
1552
1553
-static void cpu_add_multi_ext_prop(Object *cpu_obj,
1554
- const RISCVCPUMultiExtConfig *multi_cfg)
1555
-{
1556
- object_property_add(cpu_obj, multi_cfg->name, "bool",
1557
- cpu_get_multi_ext_cfg,
1558
- cpu_set_multi_ext_cfg,
1559
- NULL, (void *)&multi_cfg->offset);
1560
-}
1561
-
1562
-static void riscv_cpu_add_multiext_prop_array(Object *obj,
1563
- const RISCVCPUMultiExtConfig *array)
1564
-{
1565
- const RISCVCPUMultiExtConfig *prop;
1566
-
1567
- g_assert(array);
1568
-
1569
- for (prop = array; prop && prop->name; prop++) {
1570
- cpu_add_multi_ext_prop(obj, prop);
1571
- }
1572
-}
1573
-
1553
/*
1554
* Add CPU properties with user-facing flags.
1555
*
@@ -1579,15 +1558,22 @@ static void riscv_cpu_add_multiext_prop_array(Object *obj,
1558
*/
1559
static void riscv_cpu_add_user_properties(Object *obj)
1560
{
1561
+ const RISCVIsaExtData *edata;
1562
+
1563
#ifndef CONFIG_USER_ONLY
1564
riscv_add_satp_mode_properties(obj);
1565
#endif
1566
1567
riscv_cpu_add_misa_properties(obj);
1568
1588
- riscv_cpu_add_multiext_prop_array(obj, riscv_cpu_extensions);
1589
- riscv_cpu_add_multiext_prop_array(obj, riscv_cpu_vendor_exts);
1590
- riscv_cpu_add_multiext_prop_array(obj, riscv_cpu_experimental_exts);
1569
+ for (edata = isa_edata_arr; edata && edata->name; edata++) {
1570
+ if (edata->prop_name) {
1571
+ object_property_add(obj, edata->prop_name, "bool",
1572
+ cpu_get_multi_ext_cfg,
1573
+ cpu_set_multi_ext_cfg,
1574
+ NULL, (void *)&edata->ext_enable_offset);
1575
+ }
1576
+ }
1577
1578
riscv_cpu_add_profiles(obj);
1579
}