[PATCH 24/24] target/arm: Add arm_destroy_cpreg_list() helper

Philippe Mathieu-Daudé posted 24 patches 3 days, 4 hours ago
[PATCH 24/24] target/arm: Add arm_destroy_cpreg_list() helper
Posted by Philippe Mathieu-Daudé 3 days, 4 hours ago
arm_destroy_cpreg_list() releases ressources allocated by
arm_init_cpreg_list().

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 target/arm/internals.h | 2 ++
 target/arm/helper.c    | 8 ++++++++
 2 files changed, 10 insertions(+)

diff --git a/target/arm/internals.h b/target/arm/internals.h
index 400b4d670f6..5af9b1110e8 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -375,6 +375,8 @@ void arm_cpu_register(const ARMCPUInfo *info);
 
 void register_cp_regs_for_features(ARMCPU *cpu);
 void arm_init_cpreg_list(ARMCPU *cpu);
+/* Release ressources allocated by arm_init_cpreg_list() */
+void arm_destroy_cpreg_list(ARMCPU *cpu);
 
 void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu);
 void arm_translate_init(void);
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 0db3e05571f..9b7a2b94bd3 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -268,6 +268,14 @@ void arm_init_cpreg_list(ARMCPU *cpu)
     g_list_free(keys);
 }
 
+void arm_destroy_cpreg_list(ARMCPU *cpu)
+{
+    g_free(cpu->cpreg_indexes);
+    g_free(cpu->cpreg_values);
+    g_free(cpu->cpreg_vmstate_indexes);
+    g_free(cpu->cpreg_vmstate_values);
+}
+
 bool arm_pan_enabled(CPUARMState *env)
 {
     if (is_a64(env)) {
-- 
2.51.0


Re: [PATCH 24/24] target/arm: Add arm_destroy_cpreg_list() helper
Posted by Philippe Mathieu-Daudé 3 days, 4 hours ago
On 3/9/25 12:07, Philippe Mathieu-Daudé wrote:
> arm_destroy_cpreg_list() releases ressources allocated by
> arm_init_cpreg_list().
> 
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
>   target/arm/internals.h | 2 ++
>   target/arm/helper.c    | 8 ++++++++
>   2 files changed, 10 insertions(+)


> +void arm_destroy_cpreg_list(ARMCPU *cpu)
> +{
> +    g_free(cpu->cpreg_indexes);
> +    g_free(cpu->cpreg_values);
> +    g_free(cpu->cpreg_vmstate_indexes);
> +    g_free(cpu->cpreg_vmstate_values);
> +}

Please ignore this patch, it is part of another series related
to arm DeviceUnrealize() implementation.