gdb-server/include/server.h

42 lines
1.0 KiB
C
Raw Permalink Normal View History

2024-10-08 02:00:01 +00:00
#ifndef RDBSERVER_SERVER_H_
#define RDBSERVER_SERVER_H_
#include <cmdbuf.h>
2024-10-08 02:18:42 +00:00
#include <response.h>
2024-10-08 02:00:01 +00:00
#include <stdbool.h>
#include <vb.h>
2024-10-12 05:06:10 +00:00
typedef enum rdb_server_state_t {
state_stopped,
state_running,
state_stepping
} rdb_server_state_t;
2024-10-11 01:58:40 +00:00
typedef enum rdb_server_stop_reason_t {
/* not even stopped */
stop_reason_none,
/* we are stepping */
stop_reason_trace,
/* we hit an actual breakpoint */
stop_reason_breakpoint,
/* the user hit pause */
stop_reason_trap,
/* some opcode is not implemented */
stop_reason_not_implemented
} rdb_server_stop_reason_t;
#define RDB_SERVER_MAX_BREAKPOINTS 16
2024-10-10 22:20:16 +00:00
typedef struct RdbServer {
VB *sim;
2024-10-11 01:58:40 +00:00
uint32_t brks[RDB_SERVER_MAX_BREAKPOINTS];
uint32_t brkslen;
2024-10-12 05:06:10 +00:00
rdb_server_state_t state;
2024-10-11 01:58:40 +00:00
rdb_server_stop_reason_t stopreason;
2024-10-10 22:20:16 +00:00
} RdbServer;
2024-10-10 22:38:40 +00:00
void rdbServerInit(RdbServer *srv, VB *sim);
2024-10-12 05:06:10 +00:00
bool rdbServerIsRunning(RdbServer *srv);
2024-10-10 22:38:40 +00:00
int rdbServerHandleCommand(RdbServer *srv, CommandBuf *cmd, RdbResponse *res);
2024-10-11 01:58:40 +00:00
int rdbServerSendStopPacket(RdbServer *srv, RdbResponse *res);
2024-10-08 02:00:01 +00:00
#endif