fix incorrect parsing of names for custom csr registers
this commit fixes a regression introduced in
ba8c1eef5a
.
The regression was caused by removal of these lines:
```
- /* Register prefix: "csr_" or "custom_" */
- strcpy(name, reg_type);
- name[strlen(reg_type)] = '_';
```
causing all CSR names with custom names to be parsed as empty strings.
This commit is contained in:
parent
eb1ecd7d10
commit
109646c09d
|
@ -4164,12 +4164,16 @@ static int parse_reg_ranges_impl(struct list_head *ranges, char *args,
|
||||||
}
|
}
|
||||||
|
|
||||||
const char * const reg_name_in = equals + 1;
|
const char * const reg_name_in = equals + 1;
|
||||||
*name_buffer = calloc(1, strlen(reg_name_in) + strlen(reg_type) + 2);
|
const size_t reg_type_len = strlen(reg_type);
|
||||||
|
/* format is: <reg_type>_<reg_name_in>\0 */
|
||||||
|
*name_buffer = calloc(1, strlen(reg_name_in) + reg_type_len + 2);
|
||||||
name = *name_buffer;
|
name = *name_buffer;
|
||||||
if (!name) {
|
if (!name) {
|
||||||
LOG_ERROR("Out of memory");
|
LOG_ERROR("Out of memory");
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
}
|
}
|
||||||
|
strcpy(name, reg_type);
|
||||||
|
name[reg_type_len] = '_';
|
||||||
|
|
||||||
unsigned int scanned_chars;
|
unsigned int scanned_chars;
|
||||||
char *scan_dst = name + strlen(reg_type) + 1;
|
char *scan_dst = name + strlen(reg_type) + 1;
|
||||||
|
|
Loading…
Reference in New Issue