diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-01-09 22:35:10 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-01-09 22:35:10 +0000 |
commit | 5b33dc8076ed5afe512114ed45536cc85708c7de (patch) | |
tree | 0a774de76db7ba598aa21f3fb5775d9a84ad5b49 /cpukit/score | |
parent | 2008-01-09 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-5b33dc8076ed5afe512114ed45536cc85708c7de.tar.bz2 |
2008-01-09 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/include/rtems/score/wkspace.h,
score/inline/rtems/score/wkspace.inl, score/src/wkspace.c: Do not
inline _Workspace_Free or _Workspace_Allocate since they are not
always inlined and actually smaller overall as subroutines. They are
not particularly time critical so inlining is not absolutely
necessary.
Diffstat (limited to 'cpukit/score')
-rw-r--r-- | cpukit/score/include/rtems/score/wkspace.h | 29 | ||||
-rw-r--r-- | cpukit/score/inline/rtems/score/wkspace.inl | 28 | ||||
-rw-r--r-- | cpukit/score/src/wkspace.c | 29 |
3 files changed, 52 insertions, 34 deletions
diff --git a/cpukit/score/include/rtems/score/wkspace.h b/cpukit/score/include/rtems/score/wkspace.h index b692b914eb..b210000d41 100644 --- a/cpukit/score/include/rtems/score/wkspace.h +++ b/cpukit/score/include/rtems/score/wkspace.h @@ -55,6 +55,35 @@ void _Workspace_Handler_initialization( size_t size ); +/** @brief Allocate Memory from Workspace + * + * This routine returns the address of a block of memory of size + * bytes. If a block of the appropriate size cannot be allocated + * from the workspace, then NULL is returned. + * + * @param size is the requested size + * + * @return a pointer to the requested memory or NULL. + */ +void *_Workspace_Allocate( + size_t size +); + +/** @brief Free Memory to the Workspace + * + * This function frees the specified block of memory. If the block + * belongs to the Workspace and can be successfully freed, then + * TRUE is returned. Otherwise FALSE is returned. + * + * @param block is the memory to free + * + * @return TRUE if the free was successful. + */ + +boolean _Workspace_Free( + void *block +); + /** @brief Workspace Allocate or Fail with Fatal Error * * This routine returns the address of a block of memory of @a size diff --git a/cpukit/score/inline/rtems/score/wkspace.inl b/cpukit/score/inline/rtems/score/wkspace.inl index d2c05db2e9..ff64baec7b 100644 --- a/cpukit/score/inline/rtems/score/wkspace.inl +++ b/cpukit/score/inline/rtems/score/wkspace.inl @@ -6,7 +6,7 @@ */ /* - * COPYRIGHT (c) 1989-2004. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -24,32 +24,6 @@ * @{ */ -/** - * This routine returns the address of a block of memory of size - * bytes. If a block of the appropriate size cannot be allocated - * from the workspace, then NULL is returned. - */ - -RTEMS_INLINE_ROUTINE void *_Workspace_Allocate( - size_t size -) -{ - return _Heap_Allocate( &_Workspace_Area, size ); -} - -/** - * This function frees the specified block of memory. If the block - * belongs to the Workspace and can be successfully freed, then - * TRUE is returned. Otherwise FALSE is returned. - */ - -RTEMS_INLINE_ROUTINE boolean _Workspace_Free( - void *block -) -{ - return _Heap_Free( &_Workspace_Area, block ); -} - /**@}*/ #endif diff --git a/cpukit/score/src/wkspace.c b/cpukit/score/src/wkspace.c index 953981c477..b02e8f7b64 100644 --- a/cpukit/score/src/wkspace.c +++ b/cpukit/score/src/wkspace.c @@ -22,11 +22,9 @@ #include <string.h> /* for memset */ -/*PAGE - * +/* * _Workspace_Handler_initialization */ - void _Workspace_Handler_initialization( void *starting_address, size_t size @@ -59,12 +57,29 @@ void _Workspace_Handler_initialization( ); } -/*PAGE - * - * _Workspace_Allocate_or_fatal_error - * +/* + * _Workspace_Allocate */ +void *_Workspace_Allocate( + size_t size +) +{ + return _Heap_Allocate( &_Workspace_Area, size ); +} +/* + * _Workspace_Allocate + */ +boolean _Workspace_Free( + void *block +) +{ + return _Heap_Free( &_Workspace_Area, block ); +} + +/* + * _Workspace_Allocate_or_fatal_error + */ void *_Workspace_Allocate_or_fatal_error( size_t size ) |