]> git.sur5r.net Git - openocd/blobdiff - src/target/target_request.c
nds32: refine nds32_v2 implement
[openocd] / src / target / target_request.c
index c1f987eb7bcb2d4279b9507133a97bd4d9d392bd..df2fc34ee1d66b90b3e7f3c5a856244d2068b9da 100644 (file)
@@ -21,7 +21,7 @@
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.           *
  ***************************************************************************/
 
 #ifdef HAVE_CONFIG_H
@@ -122,6 +122,8 @@ int target_request(struct target *target, uint32_t request)
 {
        target_req_cmd_t target_req_cmd = request & 0xff;
 
+       assert(target->type->target_request_data);
+
        /* Record that we got a target message for back-off algorithm */
        got_message = true;
 
@@ -164,7 +166,6 @@ static int add_debug_msg_receiver(struct command_context *cmd_ctx, struct target
        /* see if there's already a list */
        if (*p) {
                /* find end of linked list */
-               p = &target->dbgmsg;
                while ((*p)->next)
                        p = &((*p)->next);
                p = &((*p)->next);
@@ -257,6 +258,11 @@ COMMAND_HANDLER(handle_target_request_debugmsgs_command)
 
        int receiving = 0;
 
+       if (target->type->target_request_data == NULL) {
+               LOG_ERROR("Target %s does not support target requests", target_name(target));
+               return ERROR_OK;
+       }
+
        /* see if reciever is already registered */
        if (find_debug_msg_receiver(CMD_CTX, target) != NULL)
                receiving = 1;