Skip to content

Commit 6313ad9

Browse files
authored
Merge pull request #589 from RinHizakura/mini-gdbstub-update
Update mini-gdbstub with the API changes
2 parents 42c8986 + 874ad5c commit 6313ad9

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

Diff for: src/emulate.c

-1
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,6 @@ void rv_debug(riscv_t *rv)
247247
if (!gdbstub_init(&rv->gdbstub, &gdbstub_ops,
248248
(arch_info_t){
249249
.reg_num = 33,
250-
.reg_byte = 4,
251250
.target_desc = TARGET_RV32,
252251
},
253252
GDBSTUB_COMM)) {

Diff for: src/gdbstub.c

+12-6
Original file line numberDiff line numberDiff line change
@@ -16,31 +16,36 @@
1616
#include "riscv.h"
1717
#include "riscv_private.h"
1818

19-
static int rv_read_reg(void *args, int regno, size_t *data)
19+
static size_t rv_get_reg_bytes(UNUSED int regno)
20+
{
21+
return 4;
22+
}
23+
24+
static int rv_read_reg(void *args, int regno, void *data)
2025
{
2126
riscv_t *rv = (riscv_t *) args;
2227

2328
if (unlikely(regno > 32))
2429
return EFAULT;
2530

2631
if (regno == 32)
27-
*data = rv_get_pc(rv);
32+
*(riscv_word_t *) data = rv_get_pc(rv);
2833
else
29-
*data = rv_get_reg(rv, regno);
34+
*(riscv_word_t *) data = rv_get_reg(rv, regno);
3035

3136
return 0;
3237
}
3338

34-
static int rv_write_reg(void *args, int regno, size_t data)
39+
static int rv_write_reg(void *args, int regno, void *data)
3540
{
3641
if (unlikely(regno > 32))
3742
return EFAULT;
3843

3944
riscv_t *rv = (riscv_t *) args;
4045
if (regno == 32)
41-
rv_set_pc(rv, data);
46+
rv_set_pc(rv, *(riscv_word_t *) data);
4247
else
43-
rv_set_reg(rv, regno, data);
48+
rv_set_reg(rv, regno, *(riscv_word_t *) data);
4449

4550
return 0;
4651
}
@@ -132,6 +137,7 @@ static void rv_on_interrupt(void *args)
132137
}
133138

134139
const struct target_ops gdbstub_ops = {
140+
.get_reg_bytes = rv_get_reg_bytes,
135141
.read_reg = rv_read_reg,
136142
.write_reg = rv_write_reg,
137143
.read_mem = rv_read_mem,

0 commit comments

Comments
 (0)