summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/wkspace.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-05-11 17:39:37 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-05-11 17:39:37 +0000
commitac7d5ef06a6d6e8d84abbd1f0b82162725f98326 (patch)
tree9304cf759a73f2a1c6fd3191948f00e870af3787 /cpukit/score/include/rtems/score/wkspace.h
downloadrtems-ac7d5ef06a6d6e8d84abbd1f0b82162725f98326.tar.bz2
Initial revision
Diffstat (limited to 'cpukit/score/include/rtems/score/wkspace.h')
-rw-r--r--cpukit/score/include/rtems/score/wkspace.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/wkspace.h b/cpukit/score/include/rtems/score/wkspace.h
new file mode 100644
index 0000000000..14bc090291
--- /dev/null
+++ b/cpukit/score/include/rtems/score/wkspace.h
@@ -0,0 +1,99 @@
+/* wkspace.h
+ *
+ * This include file contains information related to the RTEMS
+ * RAM Workspace. This Handler provides mechanisms which can be used to
+ * define, initialize and manipulate the RTEMS workspace.
+ *
+ * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
+ * On-Line Applications Research Corporation (OAR).
+ * All rights assigned to U.S. Government, 1994.
+ *
+ * This material may be reproduced by or for the U.S. Government pursuant
+ * to the copyright license under the clause at DFARS 252.227-7013. This
+ * notice must appear in all copies of this file and its derivatives.
+ *
+ * $Id$
+ */
+
+#ifndef __RTEMS_WORKSPACE_h
+#define __RTEMS_WORKSPACE_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <rtems/heap.h>
+#include <rtems/fatal.h>
+#include <rtems/status.h>
+
+/*
+ * The following is used to manage the RTEMS Workspace.
+ *
+ */
+
+EXTERN Heap_Control _Workspace_Area; /* executive heap header */
+
+/*
+ * _Workspace_Handler_initialization
+ *
+ * DESCRIPTION:
+ *
+ * This routine performs the initialization necessary for this handler.
+ */
+
+STATIC INLINE void _Workspace_Handler_initialization(
+ void *starting_address,
+ unsigned32 size
+);
+
+/*
+ * _Workspace_Allocate
+ *
+ * DESCRIPTION:
+ *
+ * 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.
+ */
+
+STATIC INLINE void *_Workspace_Allocate(
+ unsigned32 size
+);
+
+/*
+ * _Workspace_Allocate_or_fatal_error
+ *
+ * DESCRIPTION:
+ *
+ * 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 the rtems_fatal_error_occurred directive
+ * is invoked.
+ */
+
+STATIC INLINE void *_Workspace_Allocate_or_fatal_error(
+ unsigned32 size
+);
+
+/*
+ * _Workspace_Free
+ *
+ * DESCRIPTION:
+ *
+ * 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.
+ */
+
+STATIC INLINE boolean _Workspace_Free(
+ void *block
+);
+
+#include <rtems/wkspace.inl>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */