X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Frtos%2FembKernel.c;h=e515383ac935193938edb43fbc0fad48db0ca243;hb=e6fe4dddb97835a60cc512fea977550d7ae4056f;hp=ec3e5774f13253040e89dae12cf6afc651a53d39;hpb=08d4411b59dd8bd0e7d8009003b71d23acbf6eee;p=openocd.git diff --git a/src/rtos/embKernel.c b/src/rtos/embKernel.c index ec3e5774f1..e515383ac9 100644 --- a/src/rtos/embKernel.c +++ b/src/rtos/embKernel.c @@ -13,9 +13,7 @@ * GNU General Public License for more details. * * * * 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., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * + * along with this program. If not, see . * ***************************************************************************/ #ifdef HAVE_CONFIG_H @@ -58,7 +56,7 @@ enum { SYMBOL_ID_sCurrentTaskCount = 5, }; -static char *embKernel_symbol_list[] = { +static const char * const embKernel_symbol_list[] = { "Rtos::sCurrentTask", "Rtos::sListReady", "Rtos::sListSleep", @@ -81,9 +79,9 @@ struct embKernel_params { const struct rtos_register_stacking *stacking_info; }; -struct embKernel_params embKernel_params_list[] = { +static const struct embKernel_params embKernel_params_list[] = { { - "cortex_m3", /* target_name */ + "cortex_m", /* target_name */ 4, /* pointer_width */ 4, /* thread_count_width */ 8, /*rtos_list_size */ @@ -93,7 +91,7 @@ struct embKernel_params embKernel_params_list[] = { 4, /*thread_priority_width */ 4, /*iterable_next_offset */ 12, /*iterable_task_owner_offset */ - &rtos_embkernel_Cortex_M3_stacking, /* stacking_info*/ + &rtos_embkernel_Cortex_M_stacking, /* stacking_info*/ }, { "hla_target", /* target_name */ 4, /* pointer_width */ @@ -105,7 +103,7 @@ struct embKernel_params embKernel_params_list[] = { 4, /*thread_priority_width */ 4, /*iterable_next_offset */ 12, /*iterable_task_owner_offset */ - &rtos_embkernel_Cortex_M3_stacking, /* stacking_info */ + &rtos_embkernel_Cortex_M_stacking, /* stacking_info */ } }; @@ -145,7 +143,6 @@ static int embKernel_get_tasks_details(struct rtos *rtos, int64_t iterable, cons return retval; details->threadid = (threadid_t) task; details->exists = true; - details->display_str = NULL; int64_t name_ptr = 0; retval = target_read_buffer(rtos->target, task + param->thread_name_offset, param->pointer_width, @@ -169,13 +166,13 @@ static int embKernel_get_tasks_details(struct rtos *rtos, int64_t iterable, cons (uint8_t *) &priority); if (retval != ERROR_OK) return retval; - details->extra_info_str = (char *) malloc(EMBKERNEL_MAX_THREAD_NAME_STR_SIZE); + details->extra_info_str = malloc(EMBKERNEL_MAX_THREAD_NAME_STR_SIZE); if (task == rtos->current_thread) { - snprintf(details->extra_info_str, EMBKERNEL_MAX_THREAD_NAME_STR_SIZE, "Pri=%u, Running", + snprintf(details->extra_info_str, EMBKERNEL_MAX_THREAD_NAME_STR_SIZE, "State: Running, Priority: %u", (unsigned int) priority); } else { - snprintf(details->extra_info_str, EMBKERNEL_MAX_THREAD_NAME_STR_SIZE, "Pri=%u, %s", (unsigned int) priority, - state_str); + snprintf(details->extra_info_str, EMBKERNEL_MAX_THREAD_NAME_STR_SIZE, "State: %s, Priority: %u", + state_str, (unsigned int) priority); } LOG_OUTPUT("Getting task details: iterable=0x%08X, task=0x%08X, name=%s\n", (unsigned int)iterable, @@ -206,25 +203,7 @@ static int embKernel_update_threads(struct rtos *rtos) } /* wipe out previous thread details if any */ - if (rtos->thread_details != NULL) { - int j; - for (j = 0; j < rtos->thread_count; j++) { - if (rtos->thread_details[j].display_str != NULL) { - free(rtos->thread_details[j].display_str); - rtos->thread_details[j].display_str = NULL; - } - if (rtos->thread_details[j].thread_name_str != NULL) { - free(rtos->thread_details[j].thread_name_str); - rtos->thread_details[j].thread_name_str = NULL; - } - if (rtos->thread_details[j].extra_info_str != NULL) { - free(rtos->thread_details[j].extra_info_str); - rtos->thread_details[j].extra_info_str = NULL; - } - } - free(rtos->thread_details); - rtos->thread_details = NULL; - } + rtos_free_threadlist(rtos); param = (const struct embKernel_params *) rtos->rtos_specific_params; @@ -251,7 +230,7 @@ static int embKernel_update_threads(struct rtos *rtos) } /* create space for new thread details */ - rtos->thread_details = (struct thread_detail *) malloc(sizeof(struct thread_detail) * thread_list_size); + rtos->thread_details = malloc(sizeof(struct thread_detail) * thread_list_size); if (!rtos->thread_details) { LOG_ERROR("Error allocating memory for %d threads", thread_list_size); return ERROR_FAIL; @@ -353,7 +332,7 @@ static int embKernel_get_thread_reg_list(struct rtos *rtos, int64_t thread_id, c static int embKernel_get_symbol_list_to_lookup(symbol_table_elem_t *symbol_list[]) { unsigned int i; - *symbol_list = (symbol_table_elem_t *) malloc(sizeof(symbol_table_elem_t) * ARRAY_SIZE(embKernel_symbol_list)); + *symbol_list = calloc(ARRAY_SIZE(embKernel_symbol_list), sizeof(symbol_table_elem_t)); for (i = 0; i < ARRAY_SIZE(embKernel_symbol_list); i++) (*symbol_list)[i].symbol_name = embKernel_symbol_list[i];