- 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
__archive__
ntfreak 2007-12-29 17:41:43 +00:00
parent 6c9b804d61
commit dfe1b3f314
1 changed files with 13 additions and 0 deletions

View File

@ -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]);