From dfe1b3f31478817951ee8c493d5eec605b43cc6a Mon Sep 17 00:00:00 2001 From: ntfreak Date: Sat, 29 Dec 2007 17:41:43 +0000 Subject: - add support for extended gdb packet R (restart), requires gdb to be started with target extended-remote git-svn-id: svn://svn.berlios.de/openocd/trunk@247 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/server/gdb_server.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/server') diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 0ec1af73..ef45c772 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -1656,6 +1656,7 @@ int gdb_input(connection_t *connection) int packet_size; int retval; gdb_connection_t *gdb_con = connection->priv; + static int extended_protocol = 0; /* drain input buffer */ do @@ -1728,14 +1729,26 @@ int gdb_input(connection_t *connection) break; case 'D': retval = gdb_detach(connection, target); + extended_protocol = 0; break; case 'X': if ((retval = gdb_write_memory_binary_packet(connection, target, packet, packet_size)) != ERROR_OK) return retval; break; case 'k': + if (extended_protocol != 0) + break; gdb_put_packet(connection, "OK", 2); return ERROR_SERVER_REMOTE_CLOSED; + case '!': + /* handle extended remote protocol */ + extended_protocol = 1; + gdb_put_packet(connection, "OK", 2); + break; + case 'R': + /* handle extended restart packet */ + target_process_reset(connection->cmd_ctx); + break; default: /* ignore unkown packets */ DEBUG("ignoring 0x%2.2x packet", packet[0]); -- cgit v1.2.3