diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-04-08 07:50:42 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-04-12 07:36:19 +0200 |
commit | b4b062f4df2139480e6ae5a35427046d34f677c7 (patch) | |
tree | f33f1b7a77c4538e66be193586a3d3271407780b /cpukit | |
parent | rtems: Add and use _Region_Get_and_lock() (diff) | |
download | rtems-b4b062f4df2139480e6ae5a35427046d34f677c7.tar.bz2 |
rtems: Delete Region_Control::number_of_used_blocks
Use Heap_Statistics::used_blocks instead.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/libmisc/monitor/mon-region.c | 3 | ||||
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/region.h | 1 | ||||
-rw-r--r-- | cpukit/rtems/src/regioncreate.c | 9 | ||||
-rw-r--r-- | cpukit/rtems/src/regiondelete.c | 4 | ||||
-rw-r--r-- | cpukit/rtems/src/regiongetsegment.c | 1 | ||||
-rw-r--r-- | cpukit/rtems/src/regionprocessqueue.c | 1 | ||||
-rw-r--r-- | cpukit/rtems/src/regionreturnsegment.c | 2 |
7 files changed, 9 insertions, 12 deletions
diff --git a/cpukit/libmisc/monitor/mon-region.c b/cpukit/libmisc/monitor/mon-region.c index 289a00b32f..17e6d185cb 100644 --- a/cpukit/libmisc/monitor/mon-region.c +++ b/cpukit/libmisc/monitor/mon-region.c @@ -19,13 +19,14 @@ rtems_monitor_region_canonical( ) { const Region_Control *rtems_region = (const Region_Control *) region_void; + const Heap_Control *heap = &rtems_region->Memory; canonical_region->attribute = rtems_region->attribute_set; canonical_region->start_addr = rtems_region->starting_address; canonical_region->length = rtems_region->length; canonical_region->page_size = rtems_region->page_size; canonical_region->max_seg_size = rtems_region->maximum_segment_size; - canonical_region->used_blocks = rtems_region->number_of_used_blocks; + canonical_region->used_blocks = heap->stats.used_blocks; } diff --git a/cpukit/rtems/include/rtems/rtems/region.h b/cpukit/rtems/include/rtems/rtems/region.h index 0c288994dd..8ae52f3e2b 100644 --- a/cpukit/rtems/include/rtems/rtems/region.h +++ b/cpukit/rtems/include/rtems/rtems/region.h @@ -65,7 +65,6 @@ typedef struct { uintptr_t page_size; /* in bytes */ uintptr_t maximum_segment_size; /* in bytes */ rtems_attribute attribute_set; - uint32_t number_of_used_blocks; /* blocks allocated */ Heap_Control Memory; } Region_Control; diff --git a/cpukit/rtems/src/regioncreate.c b/cpukit/rtems/src/regioncreate.c index 482c43b4d3..8f1f7c5669 100644 --- a/cpukit/rtems/src/regioncreate.c +++ b/cpukit/rtems/src/regioncreate.c @@ -87,11 +87,10 @@ rtems_status_code rtems_region_create( _Region_Free( the_region ); return_status = RTEMS_INVALID_SIZE; } else { - the_region->starting_address = starting_address; - the_region->length = length; - the_region->page_size = page_size; - the_region->attribute_set = attribute_set; - the_region->number_of_used_blocks = 0; + the_region->starting_address = starting_address; + the_region->length = length; + the_region->page_size = page_size; + the_region->attribute_set = attribute_set; _Objects_Open( &_Region_Information, diff --git a/cpukit/rtems/src/regiondelete.c b/cpukit/rtems/src/regiondelete.c index 684c2a9b96..e9ced7b768 100644 --- a/cpukit/rtems/src/regiondelete.c +++ b/cpukit/rtems/src/regiondelete.c @@ -36,7 +36,9 @@ rtems_status_code rtems_region_delete( return RTEMS_INVALID_ID; } - if ( the_region->number_of_used_blocks != 0 ) { + _Heap_Protection_free_all_delayed_blocks( &the_region->Memory ); + + if ( the_region->Memory.stats.used_blocks != 0 ) { status = RTEMS_RESOURCE_IN_USE; } else { _Objects_Close( &_Region_Information, &the_region->Object ); diff --git a/cpukit/rtems/src/regiongetsegment.c b/cpukit/rtems/src/regiongetsegment.c index ecc6378383..d59de38e4a 100644 --- a/cpukit/rtems/src/regiongetsegment.c +++ b/cpukit/rtems/src/regiongetsegment.c @@ -58,7 +58,6 @@ rtems_status_code rtems_region_get_segment( the_segment = _Region_Allocate_segment( the_region, size ); if ( the_segment != NULL ) { - the_region->number_of_used_blocks += 1; *segment = the_segment; status = RTEMS_SUCCESSFUL; } else if ( _Options_Is_no_wait( option_set ) ) { diff --git a/cpukit/rtems/src/regionprocessqueue.c b/cpukit/rtems/src/regionprocessqueue.c index 1c9d273b05..db5759a8d0 100644 --- a/cpukit/rtems/src/regionprocessqueue.c +++ b/cpukit/rtems/src/regionprocessqueue.c @@ -64,7 +64,6 @@ void _Region_Process_queue( break; *(void **)the_thread->Wait.return_argument = the_segment; - the_region->number_of_used_blocks += 1; _Thread_queue_Extract( the_thread ); the_thread->Wait.return_code = RTEMS_SUCCESSFUL; } diff --git a/cpukit/rtems/src/regionreturnsegment.c b/cpukit/rtems/src/regionreturnsegment.c index 8ec84fb9c4..ff742cffc2 100644 --- a/cpukit/rtems/src/regionreturnsegment.c +++ b/cpukit/rtems/src/regionreturnsegment.c @@ -34,8 +34,6 @@ rtems_status_code rtems_region_return_segment( } if ( _Region_Free_segment( the_region, segment ) ) { - the_region->number_of_used_blocks -= 1; - /* Unlocks allocator */ _Region_Process_queue( the_region ); return RTEMS_SUCCESSFUL; |