diff options
author | Sandrine Bailleux <sandrine.bailleux@arm.com> | 2016-06-28 16:44:28 +0100 |
---|---|---|
committer | Sandrine Bailleux <sandrine.bailleux@arm.com> | 2016-07-25 12:57:42 +0100 |
commit | 9d24d353e6d1882ec7a5df99cb374165fe001e56 (patch) | |
tree | bbba9064e93d96dbb84b663c39ca86574f4dd851 /common/runtime_svc.c | |
parent | a1c3faa6c7f877bd81efce5b5c426393f7107104 (diff) |
Improvements to runtime service init code
Light refactoring of the code in runtime_svc.c file.
- Declare validate_rt_svc_desc()'s argument as const.
- Remove 'goto' path in runtime_svc_init(). It was used in one
place only.
- Improve code readability by declaring a local variable holding the
service pointer.
Change-Id: I3b15c5adb9f37b786b5b993a9be70ea9dd017a83
Diffstat (limited to 'common/runtime_svc.c')
-rw-r--r-- | common/runtime_svc.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/common/runtime_svc.c b/common/runtime_svc.c index 8729e292..39300c84 100644 --- a/common/runtime_svc.c +++ b/common/runtime_svc.c @@ -54,7 +54,7 @@ static rt_svc_desc_t *rt_svc_descs; /******************************************************************************* * Simple routine to sanity check a runtime service descriptor before using it ******************************************************************************/ -static int32_t validate_rt_svc_desc(rt_svc_desc_t *desc) +static int32_t validate_rt_svc_desc(const rt_svc_desc_t *desc) { if (desc == NULL) return -EINVAL; @@ -98,18 +98,18 @@ void runtime_svc_init(void) rt_svc_descs = (rt_svc_desc_t *) RT_SVC_DESCS_START; for (index = 0; index < RT_SVC_DECS_NUM; index++) { + rt_svc_desc_t *service = &rt_svc_descs[index]; /* * An invalid descriptor is an error condition since it is * difficult to predict the system behaviour in the absence * of this service. */ - rc = validate_rt_svc_desc(&rt_svc_descs[index]); + rc = validate_rt_svc_desc(service); if (rc) { ERROR("Invalid runtime service descriptor %p (%s)\n", - (void *) &rt_svc_descs[index], - rt_svc_descs[index].name); - goto error; + (void *) service, service->name); + panic(); } /* @@ -119,11 +119,11 @@ void runtime_svc_init(void) * an initialisation routine defined. Call the initialisation * routine for this runtime service, if it is defined. */ - if (rt_svc_descs[index].init) { - rc = rt_svc_descs[index].init(); + if (service->init) { + rc = service->init(); if (rc) { ERROR("Error initializing runtime service %s\n", - rt_svc_descs[index].name); + service->name); continue; } } @@ -135,15 +135,10 @@ void runtime_svc_init(void) * entity range. */ start_idx = get_unique_oen(rt_svc_descs[index].start_oen, - rt_svc_descs[index].call_type); + service->call_type); end_idx = get_unique_oen(rt_svc_descs[index].end_oen, - rt_svc_descs[index].call_type); - + service->call_type); for (; start_idx <= end_idx; start_idx++) rt_svc_descs_indices[start_idx] = index; } - - return; -error: - panic(); } |