@@ -35,6 +35,7 @@
typedef struct {
CharBackend chr;
Chardev *mon_chr;
+ bool phy_memory_mode;
} GDBSystemState;
GDBSystemState gdbserver_system_state;
@@ -445,14 +446,12 @@ void gdb_qemu_exit(int code)
/*
* Memory access
*/
-static int phy_memory_mode;
-
int gdb_target_memory_rw_debug(CPUState *cpu, hwaddr addr,
uint8_t *buf, int len, bool is_write)
{
CPUClass *cc;
- if (phy_memory_mode) {
+ if (gdbserver_system_state.phy_memory_mode) {
if (is_write) {
cpu_physical_memory_write(addr, buf, len);
} else {
@@ -491,7 +490,8 @@ bool gdb_can_reverse(void)
void gdb_handle_query_qemu_phy_mem_mode(GArray *params,
void *ctx)
{
- g_string_printf(gdbserver_state.str_buf, "%d", phy_memory_mode);
+ g_string_printf(gdbserver_state.str_buf, "%d",
+ gdbserver_system_state.phy_memory_mode);
gdb_put_strbuf();
}
@@ -503,9 +503,9 @@ void gdb_handle_set_qemu_phy_mem_mode(GArray *params, void *ctx)
}
if (!gdb_get_cmd_param(params, 0)->val_ul) {
- phy_memory_mode = 0;
+ gdbserver_system_state.phy_memory_mode = false;
} else {
- phy_memory_mode = 1;
+ gdbserver_system_state.phy_memory_mode = true;
}
gdb_put_packet("OK");
}