#ifndef RDBSERVER_SERVER_H_ #define RDBSERVER_SERVER_H_ #include #include #include #include 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