target: riscv: Drop new typedefs added by the updated riscv-debug-spec files

The advantage of this patch is that it brings the new code closer to
OpenOCD coding style - the disadvantage is that it involves modifying
autogenerated files, making it harder to drop in new versions when
riscv-debug-spec changes.

Change-Id: I4c317e11ab1652333b0bb44168f953ef452d3ef5
Signed-off-by: Bernhard Rosenkränzer <bero@baylibre.com>
Reviewed-on: https://review.openocd.org/c/openocd/+/8896
Reviewed-by: Evgeniy Naydanov <evgeniy.naydanov@syntacore.com>
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Tested-by: jenkins
This commit is contained in:
Bernhard Rosenkränzer
2025-05-06 01:34:18 +02:00
committed by Tomas Vanek
parent 5754aebc49
commit 56141bb349
6 changed files with 496 additions and 496 deletions

View File

@@ -172,7 +172,7 @@ static unsigned int decode_dmi(const struct riscv_batch *batch, char *text,
for (unsigned int i = 0; i < ARRAY_SIZE(description); i++) {
if (riscv_get_dmi_address(batch->target, description[i].address)
== address) {
const riscv_debug_reg_ctx_t context = {
const struct riscv_debug_reg_ctx context = {
.XLEN = { .value = 0, .is_set = false },
.DXLEN = { .value = 0, .is_set = false },
.abits = { .value = 0, .is_set = false },

File diff suppressed because it is too large Load Diff

View File

@@ -3204,7 +3204,7 @@ enum riscv_debug_reg_ordinal {
AC_ACCESS_MEMORY_ORDINAL,
VIRT_PRIV_ORDINAL
};
typedef struct {
struct riscv_debug_reg_ctx {
struct {
unsigned int value; int is_set;
} DXLEN;
@@ -3214,21 +3214,21 @@ typedef struct {
struct {
unsigned int value; int is_set;
} abits;
} riscv_debug_reg_ctx_t;
};
typedef struct {
struct riscv_debug_reg_field_info {
const char *name;
unsigned int lsb; // inclusive
unsigned int msb; // inclusive
const char **values; // If non-NULL, array of human-readable string for each possible value
} riscv_debug_reg_field_info_t;
typedef struct riscv_debug_reg_field_list_t {
riscv_debug_reg_field_info_t field;
struct riscv_debug_reg_field_list_t (*get_next)(riscv_debug_reg_ctx_t context);
} riscv_debug_reg_field_list_t;
typedef struct {
};
struct riscv_debug_reg_field_list {
struct riscv_debug_reg_field_info field;
struct riscv_debug_reg_field_list (*get_next)(struct riscv_debug_reg_ctx context);
};
struct riscv_debug_reg_info {
const char *name;
struct riscv_debug_reg_field_list_t (* const get_fields_head)(riscv_debug_reg_ctx_t context);
} riscv_debug_reg_info_t;
riscv_debug_reg_info_t get_riscv_debug_reg_info(enum riscv_debug_reg_ordinal reg_ordinal);
struct riscv_debug_reg_field_list (* const get_fields_head)(struct riscv_debug_reg_ctx context);
};
struct riscv_debug_reg_info get_riscv_debug_reg_info(enum riscv_debug_reg_ordinal reg_ordinal);
#endif

View File

@@ -43,7 +43,7 @@ static unsigned int riscv_debug_reg_field_value_to_s(char *buf, unsigned int off
}
static unsigned int riscv_debug_reg_field_to_s(char *buf, unsigned int offset,
riscv_debug_reg_field_info_t field, riscv_debug_reg_ctx_t context,
struct riscv_debug_reg_field_info field, struct riscv_debug_reg_ctx context,
uint64_t field_value)
{
const unsigned int name_len = get_len_or_sprintf(buf, offset, "%s=", field.name);
@@ -52,7 +52,7 @@ static unsigned int riscv_debug_reg_field_to_s(char *buf, unsigned int offset,
field.values, field_value);
}
static uint64_t riscv_debug_reg_field_value(riscv_debug_reg_field_info_t field, uint64_t value)
static uint64_t riscv_debug_reg_field_value(struct riscv_debug_reg_field_info field, uint64_t value)
{
assert(field.msb < 64);
assert(field.msb >= field.lsb);
@@ -61,14 +61,14 @@ static uint64_t riscv_debug_reg_field_value(riscv_debug_reg_field_info_t field,
}
static unsigned int riscv_debug_reg_fields_to_s(char *buf, unsigned int offset,
struct riscv_debug_reg_field_list_t (*get_next)(riscv_debug_reg_ctx_t contex),
riscv_debug_reg_ctx_t context, uint64_t value,
struct riscv_debug_reg_field_list (*get_next)(struct riscv_debug_reg_ctx contex),
struct riscv_debug_reg_ctx context, uint64_t value,
enum riscv_debug_reg_show show)
{
unsigned int curr = offset;
curr += get_len_or_sprintf(buf, curr, " {");
char *separator = "";
for (struct riscv_debug_reg_field_list_t list; get_next; get_next = list.get_next) {
for (struct riscv_debug_reg_field_list list; get_next; get_next = list.get_next) {
list = get_next(context);
uint64_t field_value = riscv_debug_reg_field_value(list.field, value);
@@ -89,12 +89,12 @@ static unsigned int riscv_debug_reg_fields_to_s(char *buf, unsigned int offset,
}
unsigned int riscv_debug_reg_to_s(char *buf, enum riscv_debug_reg_ordinal reg_ordinal,
riscv_debug_reg_ctx_t context, uint64_t value,
struct riscv_debug_reg_ctx context, uint64_t value,
enum riscv_debug_reg_show show)
{
unsigned int length = 0;
riscv_debug_reg_info_t reg = get_riscv_debug_reg_info(reg_ordinal);
struct riscv_debug_reg_info reg = get_riscv_debug_reg_info(reg_ordinal);
length += get_len_or_sprintf(buf, length, "%s=", reg.name);
length += print_number(buf, length, value);

View File

@@ -27,14 +27,14 @@ enum riscv_debug_reg_show {
* (excluding '\0').
*
* Example:
* const struct riscv_debug_reg_ctx_t context = {
* const struct struct riscv_debug_reg_ctx context = {
* .abits = { .value = <abits value>, .is_set = true }
* };
* char buf[riscv_debug_reg_to_s(NULL, DTM_DMI_ORDINAL, context, <dmi value>) + 1]
* riscv_debug_reg_to_s(buf, DTM_DMI_ORDINAL, context, <dmi value>);
*/
unsigned int riscv_debug_reg_to_s(char *buf, enum riscv_debug_reg_ordinal reg_ordinal,
riscv_debug_reg_ctx_t context, uint64_t value,
struct riscv_debug_reg_ctx context, uint64_t value,
enum riscv_debug_reg_show show);
#endif /* OPENOCD_TARGET_RISCV_DEBUG_REG_PRINTER_H */

View File

@@ -349,15 +349,15 @@ static void riscv013_dm_free(struct target *target)
info->dm = NULL;
}
static riscv_debug_reg_ctx_t get_riscv_debug_reg_ctx(const struct target *target)
static struct riscv_debug_reg_ctx get_riscv_debug_reg_ctx(const struct target *target)
{
if (!target_was_examined(target)) {
const riscv_debug_reg_ctx_t default_context = {0};
const struct riscv_debug_reg_ctx default_context = {0};
return default_context;
}
RISCV013_INFO(info);
const riscv_debug_reg_ctx_t context = {
const struct riscv_debug_reg_ctx context = {
.XLEN = { .value = riscv_xlen(target), .is_set = true },
.DXLEN = { .value = riscv_xlen(target), .is_set = true },
.abits = { .value = info->abits, .is_set = true },
@@ -370,7 +370,7 @@ static void log_debug_reg(struct target *target, enum riscv_debug_reg_ordinal re
{
if (debug_level < LOG_LVL_DEBUG)
return;
const riscv_debug_reg_ctx_t context = get_riscv_debug_reg_ctx(target);
const struct riscv_debug_reg_ctx context = get_riscv_debug_reg_ctx(target);
char * const buf = malloc(riscv_debug_reg_to_s(NULL, reg, context, value, RISCV_DEBUG_REG_HIDE_UNNAMED_0) + 1);
if (!buf) {
LOG_ERROR("Unable to allocate memory.");