From 572cb6242969f96a5bf74dc107e3f845894b6b2b Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 7 Apr 2016 16:48:30 +0200 Subject: score: Simplify _Objects_Get_no_protection() This functions supports only local objects. Thus, drop the location parameter which was unused by all callers. Remove superfluous includes from Classic Region implementation. --- cpukit/rtems/src/regionresizesegment.c | 71 ++++++++++++++-------------------- 1 file changed, 29 insertions(+), 42 deletions(-) (limited to 'cpukit/rtems/src/regionresizesegment.c') diff --git a/cpukit/rtems/src/regionresizesegment.c b/cpukit/rtems/src/regionresizesegment.c index 86d8a7775e..a21d1b9d44 100644 --- a/cpukit/rtems/src/regionresizesegment.c +++ b/cpukit/rtems/src/regionresizesegment.c @@ -18,13 +18,7 @@ #include "config.h" #endif -#include -#include -#include -#include #include -#include -#include rtems_status_code rtems_region_resize_segment( rtems_id id, @@ -33,55 +27,48 @@ rtems_status_code rtems_region_resize_segment( uintptr_t *old_size ) { - uintptr_t avail_size; - Objects_Locations location; - uintptr_t osize; - rtems_status_code return_status; - Heap_Resize_status status; - Region_Control *the_region; + uintptr_t avail_size; + uintptr_t osize; + rtems_status_code status; + Heap_Resize_status resize_status; + Region_Control *the_region; - if ( !old_size ) + if ( old_size == NULL ) { return RTEMS_INVALID_ADDRESS; + } _RTEMS_Lock_allocator(); - the_region = _Region_Get( id, &location ); - switch ( location ) { + the_region = _Region_Get( id ); - case OBJECTS_LOCAL: - status = _Heap_Resize_block( - &the_region->Memory, - segment, - (uint32_t) size, - &osize, - &avail_size - ); - *old_size = (uint32_t) osize; + if ( the_region != NULL ) { + resize_status = _Heap_Resize_block( + &the_region->Memory, + segment, + (uint32_t) size, + &osize, + &avail_size + ); + *old_size = (uint32_t) osize; - if ( status == HEAP_RESIZE_SUCCESSFUL ) - /* unlocks allocator */ - _Region_Process_queue( the_region ); - else - _RTEMS_Unlock_allocator(); + switch ( resize_status ) { + case HEAP_RESIZE_SUCCESSFUL: + /* Unlocks allocator */ + _Region_Process_queue( the_region ); + return RTEMS_SUCCESSFUL; - - if (status == HEAP_RESIZE_SUCCESSFUL) - return RTEMS_SUCCESSFUL; - if (status == HEAP_RESIZE_UNSATISFIED) - return RTEMS_UNSATISFIED; - return RTEMS_INVALID_ADDRESS; + case HEAP_RESIZE_UNSATISFIED: + status = RTEMS_UNSATISFIED; break; -#if defined(RTEMS_MULTIPROCESSING) - case OBJECTS_REMOTE: /* this error cannot be returned */ -#endif - - case OBJECTS_ERROR: default: - return_status = RTEMS_INVALID_ID; + status = RTEMS_INVALID_ADDRESS; break; } + } else { + status = RTEMS_INVALID_ID; + } _RTEMS_Unlock_allocator(); - return return_status; + return status; } -- cgit v1.2.3