gdb: -Wshadow warning fixes
[fw/openocd] / src / server / gdb_server.c
index a84c618aff084177becbf0c85e9918e0a880c383..a1ff7c8ed669e112d2f6d26f5db8d8c8448040a1 100644 (file)
@@ -1219,29 +1219,14 @@ static int gdb_set_register_packet(struct connection *connection,
        return ERROR_OK;
 }
 
+/* No attempt is made to translate the "retval" to
+ * GDB speak. This has to be done at the calling
+ * site as no mapping really exists.
+ */
 static int gdb_error(struct connection *connection, int retval)
 {
-       switch (retval)
-       {
-               case ERROR_TARGET_DATA_ABORT:
-                       gdb_send_error(connection, EIO);
-                       break;
-               case ERROR_TARGET_TRANSLATION_FAULT:
-                       gdb_send_error(connection, EFAULT);
-                       break;
-               case ERROR_TARGET_UNALIGNED_ACCESS:
-                       gdb_send_error(connection, EFAULT);
-                       break;
-               case ERROR_TARGET_NOT_HALTED:
-                       gdb_send_error(connection, EFAULT);
-                       break;
-               default:
-                       /* This could be that the target reset itself. */
-                       LOG_ERROR("unexpected error %i", retval);
-                       gdb_send_error(connection, EFAULT);
-                       break;
-       }
-
+       LOG_DEBUG("Reporting %i to GDB as generic error", retval);
+       gdb_send_error(connection, EFAULT);
        return ERROR_OK;
 }
 
@@ -1719,7 +1704,7 @@ static int gdb_memory_map(struct connection *connection,
                if (retval != ERROR_OK)
                {
                        free(banks);
-                       gdb_send_error(connection, retval);
+                       gdb_error(connection, retval);
                        return retval;
                }
                banks[i] = p;
@@ -1801,7 +1786,7 @@ static int gdb_memory_map(struct connection *connection,
        xml_printf(&retval, &xml, &pos, &size, "</memory-map>\n");
 
        if (retval != ERROR_OK) {
-               gdb_send_error(connection, retval);
+               gdb_error(connection, retval);
                return retval;
        }
 
@@ -1952,7 +1937,7 @@ static int gdb_query_packet(struct connection *connection,
 
                if (retval != ERROR_OK)
                {
-                       gdb_send_error(connection, retval);
+                       gdb_error(connection, retval);
                        return retval;
                }
 
@@ -2166,7 +2151,17 @@ static int gdb_input_inner(struct connection *connection)
        struct gdb_connection *gdb_con = connection->priv;
        static int extended_protocol = 0;
 
-       /* drain input buffer */
+       /* drain input buffer. If one of the packets fail, then an error
+        * packet is replied, if applicable.
+        *
+        * This loop will terminate and the error code is returned.
+        *
+        * The calling fn will check if this error is something that
+        * can be recovered from, or if the connection must be closed.
+        *
+        * If the error is recoverable, this fn is called again to
+        * drain the rest of the buffer.
+        */
        do
        {
                packet_size = GDB_BUFFER_SIZE-1;
@@ -2250,9 +2245,6 @@ static int gdb_input_inner(struct connection *connection)
                                case 'c':
                                case 's':
                                        {
-                                               int retval = ERROR_OK;
-
-                                               struct gdb_connection *gdb_con = connection->priv;
                                                log_add_callback(gdb_log_callback, connection);
 
                                                if (gdb_con->mem_write_error)
@@ -2286,7 +2278,7 @@ static int gdb_input_inner(struct connection *connection)
                                                }
                                                gdb_con->sync = false;
 
-                                               if ((retval!=ERROR_OK) || (!already_running && nostep))
+                                               if (!already_running && nostep)
                                                {
                                                        /* Either the target isn't in the halted state, then we can't
                                                         * step/continue. This might be early setup, etc.
@@ -2309,7 +2301,9 @@ static int gdb_input_inner(struct connection *connection)
 
                                                        if (!already_running)
                                                        {
-                                                               int retval = gdb_step_continue_packet(connection, target, packet, packet_size);
+                                                               /* Here we don't want packet processing to stop even if this fails,
+                                                                * so we use a local variable instead of retval. */
+                                                               retval = gdb_step_continue_packet(connection, target, packet, packet_size);
                                                                if (retval != ERROR_OK)
                                                                {
                                                                        /* we'll never receive a halted condition... issue a false one.. */