cfg: cortino tested and working
[fw/openocd] / src / target / target.c
index dbac9a1fba0ebaf340a51ad191fb296e6a80cd1d..c71c536030f867ea980835e4abeeabebbb0316b6 100644 (file)
@@ -1405,7 +1405,6 @@ static void target_split_working_area(struct working_area *area, uint32_t size)
                new_wa->size = area->size - size;
                new_wa->address = area->address + size;
                new_wa->backup = NULL;
-               new_wa->user = NULL;
                new_wa->free = true;
 
                area->next = new_wa;
@@ -1494,7 +1493,6 @@ int target_alloc_working_area_try(struct target *target, uint32_t size, struct w
                        new_wa->size = target->working_area_size & ~3UL; /* 4-byte align */
                        new_wa->address = target->working_area;
                        new_wa->backup = NULL;
-                       new_wa->user = NULL;
                        new_wa->free = true;
                }
 
@@ -1538,9 +1536,6 @@ int target_alloc_working_area_try(struct target *target, uint32_t size, struct w
        c->free = false;
        *area = c;
 
-       /* user pointer */
-       c->user = area;
-
        print_wa_layout(target);
 
        return ERROR_OK;
@@ -1591,13 +1586,6 @@ static int target_free_working_area_restore(struct target *target, struct workin
        LOG_DEBUG("freed %"PRIu32" bytes of working area at address 0x%08"PRIx32,
                        area->size, area->address);
 
-       /* mark user pointer invalid */
-       /* TODO: Is this really safe? It points to some previous caller's memory.
-        * How could we know that the area pointer is still in that place and not
-        * some other vital data? What's the purpose of this, anyway? */
-       *area->user = NULL;
-       area->user = NULL;
-
        target_merge_working_areas(target);
 
        print_wa_layout(target);
@@ -1625,8 +1613,6 @@ static void target_free_all_working_areas_restore(struct target *target, int res
                        if (restore)
                                target_restore_working_area(target, c);
                        c->free = true;
-                       *c->user = NULL; /* Same as above */
-                       c->user = NULL;
                }
                c = c->next;
        }
@@ -4447,32 +4433,32 @@ static int jim_target_md(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
                        return JIM_ERR;
                }
 
-               command_print(NULL, "0x%08x ", (int)(addr));
+               command_print_sameline(NULL, "0x%08x ", (int)(addr));
                switch (dwidth) {
                case 4:
                        for (x = 0; x < 16 && x < y; x += 4) {
                                z = target_buffer_get_u32(target, &(target_buf[x]));
-                               command_print(NULL, "%08x ", (int)(z));
+                               command_print_sameline(NULL, "%08x ", (int)(z));
                        }
                        for (; (x < 16) ; x += 4)
-                               command_print(NULL, "         ");
+                               command_print_sameline(NULL, "         ");
                        break;
                case 2:
                        for (x = 0; x < 16 && x < y; x += 2) {
                                z = target_buffer_get_u16(target, &(target_buf[x]));
-                               command_print(NULL, "%04x ", (int)(z));
+                               command_print_sameline(NULL, "%04x ", (int)(z));
                        }
                        for (; (x < 16) ; x += 2)
-                               command_print(NULL, "     ");
+                               command_print_sameline(NULL, "     ");
                        break;
                case 1:
                default:
                        for (x = 0 ; (x < 16) && (x < y) ; x += 1) {
                                z = target_buffer_get_u8(target, &(target_buf[x]));
-                               command_print(NULL, "%02x ", (int)(z));
+                               command_print_sameline(NULL, "%02x ", (int)(z));
                        }
                        for (; (x < 16) ; x += 1)
-                               command_print(NULL, "   ");
+                               command_print_sameline(NULL, "   ");
                        break;
                }
                /* ascii-ify the bytes */
@@ -4493,7 +4479,7 @@ static int jim_target_md(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
                /* terminate */
                target_buf[16] = 0;
                /* print - with a newline */
-               command_print(NULL, "%s\n", target_buf);
+               command_print_sameline(NULL, "%s\n", target_buf);
                /* NEXT... */
                bytes -= 16;
                addr += 16;
@@ -5131,8 +5117,10 @@ static int jim_target_smp(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
                target->head = head;
                curr = curr->next;
        }
-       if (target->rtos)
+
+       if (target && target->rtos)
                retval = rtos_smp_init(head->target);
+
        return retval;
 }