diff options
author | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2008-02-04 19:37:46 +0000 |
---|---|---|
committer | Jennifer Averett <Jennifer.Averett@OARcorp.com> | 2008-02-04 19:37:46 +0000 |
commit | 6d4940d5086306ebfdc26f27558b1e5859c324b2 (patch) | |
tree | a1382bdb215079434f3402cfdb84d969b55ac482 /cpukit/rtems | |
parent | 2008-02-04 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-6d4940d5086306ebfdc26f27558b1e5859c324b2.tar.bz2 |
2008-02-04 Jennifer Averett <jennifer.averett@OARcorp.com>
* rtems/Makefile.am, rtems/include/rtems/rtems/support.h: Added
workspace manipulation routines for testing.
* rtems/src/workspace.c: New file.
Diffstat (limited to 'cpukit/rtems')
-rw-r--r-- | cpukit/rtems/Makefile.am | 3 | ||||
-rw-r--r-- | cpukit/rtems/include/rtems/rtems/support.h | 56 | ||||
-rw-r--r-- | cpukit/rtems/src/workspace.c | 62 |
3 files changed, 118 insertions, 3 deletions
diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am index 890e9f8734..0b7f68a6ca 100644 --- a/cpukit/rtems/Makefile.am +++ b/cpukit/rtems/Makefile.am @@ -131,6 +131,9 @@ librtems_a_SOURCES += src/dpmem.c src/dpmemcreate.c src/dpmemdelete.c \ src/dpmemexternal2internal.c src/dpmemident.c \ src/dpmeminternal2external.c src/dpmemdata.c +## WORKSPACE_FILES +librtems_a_SOURCES += src/workspace.c + librtems_a_SOURCES += src/attr.c if HAS_MP diff --git a/cpukit/rtems/include/rtems/rtems/support.h b/cpukit/rtems/include/rtems/rtems/support.h index d77eb72139..1b8a240946 100644 --- a/cpukit/rtems/include/rtems/rtems/support.h +++ b/cpukit/rtems/include/rtems/rtems/support.h @@ -25,17 +25,67 @@ extern "C" { #include <rtems/rtems/types.h> -/* - * Time related +/** @brief milliseconds to microseconds + * + * This is the public milliseconds to microseconds conversion. */ - #define RTEMS_MILLISECONDS_TO_MICROSECONDS(_ms) \ TOD_MILLISECONDS_TO_MICROSECONDS(_ms) + +/** @brief milliseconds to ticks + * + * This is the public milliseconds to ticks conversion. + */ #define RTEMS_MILLISECONDS_TO_TICKS(_ms) \ TOD_MILLISECONDS_TO_TICKS(_ms) + +/** @brief microseconds to ticks + * This is the public microseconds to tick conversion. + */ #define RTEMS_MICROSECONDS_TO_TICKS(_ms) \ TOD_MICROSECONDS_TO_TICKS(_ms) +/** @brief get workspace information + * + * This returns information about the heap that is used as + * the RTEMS Executive Workspace. + * + * @param[in] the_info + * + * @return TRUE if successful + */ +boolean rtems_workspace_get_information( + Heap_Information_block *the_info +); + +/** @brief get workspace information + * + * This returns information about the heap that is used as + * the RTEMS Executive Workspace. + * + * @param[in] bytes is the number of bytes to allocate + * @param[in] pointer is the returned pointer to allocated memory + * + * @return TRUE if successful + */ +boolean rtems_workspace_allocate( + size_t bytes, + void **pointer +); + +/** @brief free workspace + * + * This frees the workspace that was allocated from + * the RTEMS Executive Workspace. + * + * @param[in] pointer is the allocated workspace + * + * @return TRUE if successful + */ +boolean rtems_workspace_free( + void *pointer +); + #ifndef __RTEMS_APPLICATION__ #include <rtems/rtems/support.inl> #endif diff --git a/cpukit/rtems/src/workspace.c b/cpukit/rtems/src/workspace.c new file mode 100644 index 0000000000..d5335ebc8d --- /dev/null +++ b/cpukit/rtems/src/workspace.c @@ -0,0 +1,62 @@ +/* + * Workspace Handler + * + * COPYRIGHT (c) 1989-2007. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + * + * $Id$ + */ + +#if HAVE_CONFIG_H +#include "config.h" +#endif + +#include <rtems/system.h> +#include <rtems/score/wkspace.h> +#include <rtems/score/interr.h> +#include <rtems/config.h> + +#include <string.h> /* for memset */ + +boolean rtems_workspace_get_information( + Heap_Information_block *the_info +) +{ + Heap_Get_information_status status; + + status = _Heap_Get_information( &_Workspace_Area, the_info ); + if ( status == HEAP_GET_INFORMATION_SUCCESSFUL ) + return TRUE; + else + return FALSE; +} + +/* + * _Workspace_Allocate + */ +boolean rtems_workspace_allocate( + size_t bytes, + void **pointer +) +{ + *pointer = _Heap_Allocate( &_Workspace_Area, bytes ); + if (!pointer) + return FALSE; + else + return TRUE; +} + +/* + * _Workspace_Allocate + */ +boolean rtems_workspace_free( + void *pointer +) +{ + return _Heap_Free( &_Workspace_Area, pointer ); +} + |