[baff4da] | 1 | /** |
---|
[11874561] | 2 | * @file rtems/score/wkspace.h |
---|
[ac7d5ef0] | 3 | * |
---|
[a0ed4ed] | 4 | * This include file contains information related to the |
---|
[ac7d5ef0] | 5 | * RAM Workspace. This Handler provides mechanisms which can be used to |
---|
[3a4ae6c] | 6 | * define, initialize and manipulate the workspace. |
---|
[baff4da] | 7 | */ |
---|
| 8 | |
---|
| 9 | /* |
---|
[6a07436] | 10 | * COPYRIGHT (c) 1989-2006. |
---|
[ac7d5ef0] | 11 | * On-Line Applications Research Corporation (OAR). |
---|
| 12 | * |
---|
[98e4ebf5] | 13 | * The license and distribution terms for this file may be |
---|
| 14 | * found in the file LICENSE in this distribution or at |
---|
[dd687d97] | 15 | * http://www.rtems.com/license/LICENSE. |
---|
[ac7d5ef0] | 16 | * |
---|
[da6375b] | 17 | * $Id$ |
---|
[ac7d5ef0] | 18 | */ |
---|
| 19 | |
---|
[092f142a] | 20 | #ifndef _RTEMS_SCORE_WKSPACE_H |
---|
| 21 | #define _RTEMS_SCORE_WKSPACE_H |
---|
[ac7d5ef0] | 22 | |
---|
[baff4da] | 23 | /** |
---|
| 24 | * @defgroup ScoreWorkspace Workspace Handler |
---|
| 25 | * |
---|
[6a07436] | 26 | * This handler encapsulates functionality related to the management of |
---|
| 27 | * the RTEMS Executive Workspace. |
---|
[baff4da] | 28 | */ |
---|
| 29 | /**@{*/ |
---|
| 30 | |
---|
[ac7d5ef0] | 31 | #ifdef __cplusplus |
---|
| 32 | extern "C" { |
---|
| 33 | #endif |
---|
| 34 | |
---|
[5e9b32b] | 35 | #include <rtems/score/heap.h> |
---|
| 36 | #include <rtems/score/interr.h> |
---|
[ac7d5ef0] | 37 | |
---|
[baff4da] | 38 | /** @brief Executive Workspace Control |
---|
[ac7d5ef0] | 39 | * |
---|
[baff4da] | 40 | * The is the heap control structure that used to manage the |
---|
| 41 | * RTEMS Executive Workspace. |
---|
[ac7d5ef0] | 42 | */ |
---|
[c627b2a3] | 43 | SCORE_EXTERN Heap_Control _Workspace_Area; /* executive heap header */ |
---|
[ac7d5ef0] | 44 | |
---|
[baff4da] | 45 | /** @brief Workspace Handler Initialization |
---|
[a155b3c] | 46 | * |
---|
| 47 | * This routine performs the initialization necessary for this handler. |
---|
[baff4da] | 48 | * |
---|
[6a07436] | 49 | * @param[in] starting_address is the base address of the RTEMS Executive |
---|
[baff4da] | 50 | * Workspace |
---|
[6a07436] | 51 | * @param[in] size is the number of bytes in the RTEMS Executive Workspace |
---|
[a155b3c] | 52 | */ |
---|
| 53 | void _Workspace_Handler_initialization( |
---|
| 54 | void *starting_address, |
---|
[37c7bfcb] | 55 | size_t size |
---|
[a155b3c] | 56 | ); |
---|
| 57 | |
---|
[baff4da] | 58 | /** @brief Workspace Allocate or Fail with Fatal Error |
---|
[ac7d5ef0] | 59 | * |
---|
[baff4da] | 60 | * This routine returns the address of a block of memory of @a size |
---|
[ac7d5ef0] | 61 | * bytes. If a block of the appropriate size cannot be allocated |
---|
[3a4ae6c] | 62 | * from the workspace, then the internal error handler is invoked. |
---|
[baff4da] | 63 | * |
---|
[6a07436] | 64 | * @param[in] size is the desired number of bytes to allocate |
---|
[baff4da] | 65 | * @return If successful, the starting address of the allocated memory |
---|
[ac7d5ef0] | 66 | */ |
---|
[45819022] | 67 | void *_Workspace_Allocate_or_fatal_error( |
---|
[37c7bfcb] | 68 | size_t size |
---|
[ac7d5ef0] | 69 | ); |
---|
| 70 | |
---|
[8e76546] | 71 | #ifndef __RTEMS_APPLICATION__ |
---|
[5e9b32b] | 72 | #include <rtems/score/wkspace.inl> |
---|
[8e76546] | 73 | #endif |
---|
[ac7d5ef0] | 74 | |
---|
| 75 | #ifdef __cplusplus |
---|
| 76 | } |
---|
| 77 | #endif |
---|
| 78 | |
---|
[baff4da] | 79 | /**@}*/ |
---|
| 80 | |
---|
[ac7d5ef0] | 81 | #endif |
---|
| 82 | /* end of include file */ |
---|