summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/heap.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/include/rtems/score/heap.h')
-rw-r--r--cpukit/score/include/rtems/score/heap.h43
1 files changed, 35 insertions, 8 deletions
diff --git a/cpukit/score/include/rtems/score/heap.h b/cpukit/score/include/rtems/score/heap.h
index 8b3f8f9a9b..c68bfd0fd1 100644
--- a/cpukit/score/include/rtems/score/heap.h
+++ b/cpukit/score/include/rtems/score/heap.h
@@ -55,17 +55,30 @@ typedef enum {
} Heap_Get_information_status;
/**
+ * Information block returned by the Heap routines used to
+ * obtain statistics. This information is returned about
+ * either free or used blocks.
+ */
+
+typedef struct {
+ /** Number of blocks of this type. */
+ uint32_t number;
+ /** Largest blocks of this type. */
+ uint32_t largest;
+ /** Total size of the blocks of this type. */
+ uint32_t total;
+
+} Heap_Information;
+
+
+/**
* Information block returned by _Heap_Get_information
*/
typedef struct {
- /** This field is the number of free blocks in this heap. */
- uint32_t free_blocks;
- /** This field is the amount of free memory in this heap. */
- uint32_t free_size;
- /** This field is the number of used blocks in this heap. */
- uint32_t used_blocks;
- /** This field is the amount of used memory in this heap. */
- uint32_t used_size;
+ /** This field is information on the used blocks in the heap. */
+ Heap_Information Free;
+ /** This field is information on the used blocks in the heap. */
+ Heap_Information Used;
} Heap_Information_block;
/**
@@ -278,6 +291,20 @@ Heap_Get_information_status _Heap_Get_information(
Heap_Information_block *the_info
);
+/**
+ * This heap routine returns information about the free blocks
+ * in the specified heap.
+ *
+ * @param the_heap (in) pointer to heap header.
+ * @param info (in) pointer to the free block information.
+ *
+ * @return free block information filled in.
+ */
+
+void _Heap_Get_free_information(
+ Heap_Control *the_heap,
+ Heap_Information *info
+);
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/heap.inl>