rtos: use ARRAY_SIZE() and simplify rtos_type.create()

Use the existing macro ARRAY_SIZE().
Rewrite the functions rtos_type.create() to simplify the logic.

Change-Id: I8833354767045d1642801d26944c9087a77add00
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-on: http://openocd.zylin.com/6261
Tested-by: jenkins
This commit is contained in:
Antonio Borneo
2021-05-16 15:43:28 +02:00
parent 8446e14018
commit 240943c65a
4 changed files with 36 additions and 59 deletions

View File

@@ -47,7 +47,7 @@ static const struct eCos_thread_state eCos_thread_states[] = {
{ 16, "Exited" }
};
#define ECOS_NUM_STATES (sizeof(eCos_thread_states)/sizeof(struct eCos_thread_state))
#define ECOS_NUM_STATES ARRAY_SIZE(eCos_thread_states)
struct eCos_params {
const char *target_name;
@@ -73,8 +73,6 @@ static const struct eCos_params eCos_params_list[] = {
}
};
#define ECOS_NUM_PARAMS ((int)(sizeof(eCos_params_list)/sizeof(struct eCos_params)))
enum eCos_symbol_values {
eCos_VAL_thread_list = 0,
eCos_VAL_current_thread_ptr = 1
@@ -375,18 +373,14 @@ static bool eCos_detect_rtos(struct target *target)
static int eCos_create(struct target *target)
{
int i = 0;
while ((i < ECOS_NUM_PARAMS) &&
(0 != strcmp(eCos_params_list[i].target_name, target->type->name))) {
i++;
}
if (i >= ECOS_NUM_PARAMS) {
LOG_ERROR("Could not find target in eCos compatibility list");
return -1;
}
for (unsigned int i = 0; i < ARRAY_SIZE(eCos_params_list); i++)
if (strcmp(eCos_params_list[i].target_name, target->type->name) == 0) {
target->rtos->rtos_specific_params = (void *)&eCos_params_list[i];
target->rtos->current_thread = 0;
target->rtos->thread_details = NULL;
return 0;
}
target->rtos->rtos_specific_params = (void *) &eCos_params_list[i];
target->rtos->current_thread = 0;
target->rtos->thread_details = NULL;
return 0;
LOG_ERROR("Could not find target in eCos compatibility list");
return -1;
}