35 lines
908 B
C
35 lines
908 B
C
#ifndef RDBSERVER_SERVER_H_
|
|
#define RDBSERVER_SERVER_H_
|
|
|
|
#include <cmdbuf.h>
|
|
#include <response.h>
|
|
#include <stdbool.h>
|
|
#include <vb.h>
|
|
|
|
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
|
|
typedef struct RdbServer {
|
|
VB *sim;
|
|
bool running;
|
|
uint32_t brks[RDB_SERVER_MAX_BREAKPOINTS];
|
|
uint32_t brkslen;
|
|
rdb_server_stop_reason_t stopreason;
|
|
} RdbServer;
|
|
|
|
void rdbServerInit(RdbServer *srv, VB *sim);
|
|
int rdbServerHandleCommand(RdbServer *srv, CommandBuf *cmd, RdbResponse *res);
|
|
int rdbServerSendStopPacket(RdbServer *srv, RdbResponse *res);
|
|
|
|
#endif |