tools: add firmware recovery helpers
[openocd.git] / src / target / algorithm.c
blobaa8262a6e0de4407950c81765b4ef26cda1b0eaf
1 /***************************************************************************
2 * Copyright (C) 2005 by Dominic Rath *
3 * Dominic.Rath@gmx.de *
4 * *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
14 * *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
19 ***************************************************************************/
21 #ifdef HAVE_CONFIG_H
22 #include "config.h"
23 #endif
25 #include "algorithm.h"
26 #include <helper/binarybuffer.h>
28 void init_mem_param(struct mem_param *param, uint32_t address, uint32_t size, enum param_direction direction)
30 param->address = address;
31 param->size = size;
32 param->value = malloc(size);
33 param->direction = direction;
36 void destroy_mem_param(struct mem_param *param)
38 free(param->value);
39 param->value = NULL;
42 void init_reg_param(struct reg_param *param, char *reg_name, uint32_t size, enum param_direction direction)
44 param->reg_name = reg_name;
45 param->size = size;
46 param->value = malloc(DIV_ROUND_UP(size, 8));
47 param->direction = direction;
50 void destroy_reg_param(struct reg_param *param)
52 free(param->value);
53 param->value = NULL;