diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/exec/gdbstub.h | 25 | ||||
-rw-r--r-- | include/hw/register.h | 8 |
2 files changed, 28 insertions, 5 deletions
diff --git a/include/exec/gdbstub.h b/include/exec/gdbstub.h index 20e1072692..94d8f83e92 100644 --- a/include/exec/gdbstub.h +++ b/include/exec/gdbstub.h @@ -134,6 +134,17 @@ static inline int gdb_get_float32(GByteArray *array, float32 val) return sizeof(buf); } + +static inline int gdb_get_float64(GByteArray *array, float64 val) +{ + uint8_t buf[sizeof(CPU_DoubleU)]; + + stfq_p(buf, val); + g_byte_array_append(array, buf, sizeof(buf)); + + return sizeof(buf); +} + static inline int gdb_get_zeroes(GByteArray *array, size_t len) { guint oldlen = array->len; @@ -166,11 +177,15 @@ static inline uint8_t * gdb_get_reg_ptr(GByteArray *buf, int len) #endif -#ifdef CONFIG_USER_ONLY -int gdbserver_start(int); -#else -int gdbserver_start(const char *port); -#endif +/** + * gdbserver_start: start the gdb server + * @port_or_device: connection spec for gdb + * + * For CONFIG_USER this is either a tcp port or a path to a fifo. For + * system emulation you can use a full chardev spec for your gdbserver + * port. + */ +int gdbserver_start(const char *port_or_device); void gdbserver_cleanup(void); diff --git a/include/hw/register.h b/include/hw/register.h index 5796584588..5d2c565ae0 100644 --- a/include/hw/register.h +++ b/include/hw/register.h @@ -185,6 +185,14 @@ uint64_t register_read_memory(void *opaque, hwaddr addr, unsigned size); * memory region (r_array->mem) the caller should add to a container. */ +RegisterInfoArray *register_init_block8(DeviceState *owner, + const RegisterAccessInfo *rae, + int num, RegisterInfo *ri, + uint8_t *data, + const MemoryRegionOps *ops, + bool debug_enabled, + uint64_t memory_size); + RegisterInfoArray *register_init_block32(DeviceState *owner, const RegisterAccessInfo *rae, int num, RegisterInfo *ri, |