From 41ef1360594878b4cdb211b7d25c7d6da34f4409 Mon Sep 17 00:00:00 2001 From: Jennifer Averett Date: Fri, 13 May 2005 17:11:42 +0000 Subject: [PATCH] 2005-05-13 Jennifer Averett PR 786/rtems Backport mallocfreespace optimization. * Makefile.am, include/rtems/rtems/region.h: * src/regiongetfreeinfo.c: New file. --- cpukit/rtems/ChangeLog | 7 +++++++ cpukit/rtems/Makefile.am | 2 +- cpukit/rtems/include/rtems/rtems/region.h | 17 +++++++++++++++++ cpukit/rtems/src/regiongetfreeinfo.c | 20 ++++++++------------ 4 files changed, 33 insertions(+), 13 deletions(-) diff --git a/cpukit/rtems/ChangeLog b/cpukit/rtems/ChangeLog index cc58bf5b38..fde6efd0f5 100644 --- a/cpukit/rtems/ChangeLog +++ b/cpukit/rtems/ChangeLog @@ -1,3 +1,10 @@ +2005-05-13 Jennifer Averett + + PR 786/rtems + Backport mallocfreespace optimization. + * Makefile.am, include/rtems/rtems/region.h: + * src/regiongetfreeinfo.c: New file. + 2005-03-17 Joel Sherrill PR 692/rtems diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index 2b1d46dba5..f598e6813a 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -118,7 +118,7 @@ SIGNAL_C_FILES = src/signal.c src/signalcatch.c src/signalsend.c REGION_C_FILES = src/region.c src/regioncreate.c src/regiondelete.c src/regionextend.c \ src/regiongetsegment.c src/regiongetsegmentsize.c src/regionident.c \ - src/regionreturnsegment.c src/regiongetinfo.c + src/regionreturnsegment.c src/regiongetinfo.c src/regiongetfreeinfo.c PARTITION_C_FILES = src/part.c src/partcreate.c src/partdelete.c src/partgetbuffer.c \ src/partident.c src/partreturnbuffer.c diff --git a/cpukit/rtems/include/rtems/rtems/region.h b/cpukit/rtems/include/rtems/rtems/region.h index 1cba5f326e..6399982429 100644 --- a/cpukit/rtems/include/rtems/rtems/region.h +++ b/cpukit/rtems/include/rtems/rtems/region.h @@ -29,6 +29,8 @@ extern "C" { #endif +#include + #include #include #include @@ -143,6 +145,21 @@ rtems_status_code rtems_region_get_information( Heap_Information_block *the_info ); +/* + * rtems_region_get_free_information + * + * DESCRIPTION: + * + * This routine implements the rtems_region_get_free_information directive. + * This directive returns information about the free blocks in the + * heap associated with this region. + */ + +rtems_status_code rtems_region_get_free_information( + Objects_Id id, + Heap_Information *the_info +); + /* * rtems_region_delete * diff --git a/cpukit/rtems/src/regiongetfreeinfo.c b/cpukit/rtems/src/regiongetfreeinfo.c index 153f965d8c..fdc72774f2 100644 --- a/cpukit/rtems/src/regiongetfreeinfo.c +++ b/cpukit/rtems/src/regiongetfreeinfo.c @@ -12,10 +12,6 @@ * $Id$ */ -#if HAVE_CONFIG_H -#include "config.h" -#endif - #include #include #include @@ -39,14 +35,14 @@ * the_info - pointer to region information block * * Output parameters: - * *the_info - region information block filled in + * *the_info - region information block filled in * RTEMS_SUCCESSFUL - if successful - * error code - if unsuccessful + * error code - if unsuccessful */ rtems_status_code rtems_region_get_free_information( - Objects_Id id, - Heap_Information_block *the_info + Objects_Id id, + Heap_Information *the_info ) { register Region_Control *the_region; @@ -68,11 +64,11 @@ rtems_status_code rtems_region_get_free_information( case OBJECTS_LOCAL: - the_info->Used.number = 0; - the_info->Used.total = 0; - the_info->Used.largest = 0; + the_info->number = 0; + the_info->total = 0; + the_info->largest = 0; - _Heap_Get_free_information( &the_region->Memory, &the_info->Free ); + _Heap_Get_free_information( &the_region->Memory, the_info ); _RTEMS_Unlock_allocator(); return RTEMS_SUCCESSFUL;