flash/nor/at91samd: Use 32-bit register writes for ST-Link compat
[fw/openocd] / src / target / algorithm.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 /***************************************************************************
4  *   Copyright (C) 2005 by Dominic Rath                                    *
5  *   Dominic.Rath@gmx.de                                                   *
6  ***************************************************************************/
7
8 #ifndef OPENOCD_TARGET_ALGORITHM_H
9 #define OPENOCD_TARGET_ALGORITHM_H
10
11 #include "helper/types.h"
12 #include "helper/replacements.h"
13
14 enum param_direction {
15         PARAM_IN,
16         PARAM_OUT,
17         PARAM_IN_OUT
18 };
19
20 struct mem_param {
21         target_addr_t address;
22         uint32_t size;
23         uint8_t *value;
24         enum param_direction direction;
25 };
26
27 struct reg_param {
28         const char *reg_name;
29         uint32_t size;
30         uint8_t *value;
31         enum param_direction direction;
32 };
33
34 void init_mem_param(struct mem_param *param,
35                 uint32_t address, uint32_t size, enum param_direction dir);
36 void destroy_mem_param(struct mem_param *param);
37
38 void init_reg_param(struct reg_param *param,
39                 char *reg_name, uint32_t size, enum param_direction dir);
40 void destroy_reg_param(struct reg_param *param);
41
42 #endif /* OPENOCD_TARGET_ALGORITHM_H */