]> git.sur5r.net Git - openocd/blobdiff - src/target/aarch64.c
armv8: valgrind memleak fixes
[openocd] / src / target / aarch64.c
index 4641a3fd5e7af46176970cc2f8bf2656116ca90c..cd835027bd5c80e9819e3edbeb7b19916e372bde 100644 (file)
@@ -2386,6 +2386,20 @@ static int aarch64_target_create(struct target *target, Jim_Interp *interp)
        return aarch64_init_arch_info(target, aarch64, pc->adiv5_config.dap);
 }
 
+static void aarch64_deinit_target(struct target *target)
+{
+       struct aarch64_common *aarch64 = target_to_aarch64(target);
+       struct armv8_common *armv8 = &aarch64->armv8_common;
+       struct arm_dpm *dpm = &armv8->dpm;
+
+       armv8_free_reg_cache(target);
+       free(aarch64->brp_list);
+       free(dpm->dbp);
+       free(dpm->dwp);
+       free(target->private_config);
+       free(aarch64);
+}
+
 static int aarch64_mmu(struct target *target, int *enabled)
 {
        if (target->state != TARGET_HALTED) {
@@ -2658,6 +2672,7 @@ struct target_type aarch64_target = {
        .target_create = aarch64_target_create,
        .target_jim_configure = aarch64_jim_configure,
        .init_target = aarch64_init_target,
+       .deinit_target = aarch64_deinit_target,
        .examine = aarch64_examine,
 
        .read_phys_memory = aarch64_read_phys_memory,