aboutsummaryrefslogtreecommitdiff
path: root/src/rtos/eCos.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/rtos/eCos.c')
-rw-r--r--src/rtos/eCos.c26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/rtos/eCos.c b/src/rtos/eCos.c
index 9501a55..1b1e73e 100644
--- a/src/rtos/eCos.c
+++ b/src/rtos/eCos.c
@@ -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;
}