openocd: fix SPDX tag format for files .c
[fw/openocd] / src / target / embeddedice.c
index 7232ef1e4685ab9b0e07d143576e9d397208f27e..7aef153b584dfabe6d9af984e34a64e6062c5484 100644 (file)
@@ -1,3 +1,5 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
 /***************************************************************************
  *   Copyright (C) 2005 by Dominic Rath                                    *
  *   Dominic.Rath@gmx.de                                                   *
@@ -7,19 +9,6 @@
  *                                                                         *
  *   Copyright (C) 2008 by Spencer Oliver                                  *
  *   spen@spen-soft.co.uk                                                  *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>. *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -205,8 +194,8 @@ struct reg_cache *embeddedice_build_reg_cache(struct target *target,
        for (i = 0; i < num_regs; i++) {
                reg_list[i].name = eice_regs[i].name;
                reg_list[i].size = eice_regs[i].width;
-               reg_list[i].dirty = 0;
-               reg_list[i].valid = 0;
+               reg_list[i].dirty = false;
+               reg_list[i].valid = false;
                reg_list[i].value = calloc(1, 4);
                reg_list[i].arch_info = &arch_info[i];
                reg_list[i].type = &eice_reg_type;
@@ -303,6 +292,22 @@ struct reg_cache *embeddedice_build_reg_cache(struct target *target,
        return reg_cache;
 }
 
+/**
+ * Free all memory allocated for EmbeddedICE register cache
+ */
+void embeddedice_free_reg_cache(struct reg_cache *reg_cache)
+{
+       if (!reg_cache)
+               return;
+
+       for (unsigned int i = 0; i < reg_cache->num_regs; i++)
+               free(reg_cache->reg_list[i].value);
+
+       free(reg_cache->reg_list[0].arch_info);
+       free(reg_cache->reg_list);
+       free(reg_cache);
+}
+
 /**
  * Initialize EmbeddedICE module, if needed.
  */
@@ -470,8 +475,8 @@ void embeddedice_set_reg(struct reg *reg, uint32_t value)
        embeddedice_write_reg(reg, value);
 
        buf_set_u32(reg->value, 0, reg->size, value);
-       reg->valid = 1;
-       reg->dirty = 0;
+       reg->valid = true;
+       reg->dirty = false;
 
 }
 
@@ -629,7 +634,6 @@ int embeddedice_handshake(struct arm_jtag *jtag_info, int hsbit, uint32_t timeou
        return ERROR_TARGET_TIMEOUT;
 }
 
-#ifndef HAVE_JTAG_MINIDRIVER_H
 /**
  * This is an inner loop of the open loop DCC write of data to target
  */
@@ -644,6 +648,3 @@ void embeddedice_write_dcc(struct jtag_tap *tap,
                buffer += 4;
        }
 }
-#else
-/* provided by minidriver */
-#endif