summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/include
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-10-18 14:57:12 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-10-18 14:57:12 +0000
commit252565f24da1ca21bd681acf621201b5318d95d7 (patch)
tree0b35eb16e1f3871d3fa9e0d5071397247ab8cb88 /c/src/exec/score/include
parent2000-09-14 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff)
downloadrtems-252565f24da1ca21bd681acf621201b5318d95d7.tar.bz2
2000-10-18 Nick Simon <Nick.SIMON@syntegra.bt.co.uk>
* src/heapgetinfo.c, include/rtems/score/heap.h, src/Makefile.am: Added _Heap_Get_information() and information control block. * src/heapgetinfo.c: New file.
Diffstat (limited to 'c/src/exec/score/include')
-rw-r--r--c/src/exec/score/include/rtems/score/heap.h44
1 files changed, 44 insertions, 0 deletions
diff --git a/c/src/exec/score/include/rtems/score/heap.h b/c/src/exec/score/include/rtems/score/heap.h
index 1a502f7999..10e8cd260f 100644
--- a/c/src/exec/score/include/rtems/score/heap.h
+++ b/c/src/exec/score/include/rtems/score/heap.h
@@ -36,6 +36,27 @@ typedef enum {
} Heap_Extend_status;
/*
+ * Status codes for _Heap_Get_information
+ */
+
+typedef enum {
+ HEAP_GET_INFORMATION_SUCCESSFUL = 0,
+ HEAP_GET_INFORMATION_SYSTEM_STATE_ERROR,
+ HEAP_GET_INFORMATION_BLOCK_ERROR
+} Heap_Get_information_status;
+
+/*
+ * Information block returned by _Heap_Get_information
+ */
+
+typedef struct {
+ unsigned32 free_blocks;
+ unsigned32 free_size;
+ unsigned32 used_blocks;
+ unsigned32 used_size;
+} Heap_Information_block;
+
+/*
* Constants used in the size/used field of each heap block to
* indicate when a block is free or in use.
*/
@@ -213,6 +234,29 @@ void _Heap_Walk(
boolean do_dump
);
+/*PAGE
+ *
+ * _Heap_Get_information
+ *
+ * This kernel routine walks the heap and tots up the free and allocated
+ * sizes. Derived from _Heap_Walk.
+ *
+ * Input parameters:
+ * the_heap - pointer to heap header
+ * the_info - pointer to information block
+ *
+ * Output parameters:
+ * *the_info - status information
+ * return 0=success, otherwise heap is corrupt.
+ */
+
+
+Heap_Get_information_status _Heap_Get_information(
+ Heap_Control *the_heap,
+ Heap_Information_block *the_info
+);
+
+
#ifndef __RTEMS_APPLICATION__
#include <rtems/score/heap.inl>
#endif