Index: cpukit/headers.am
===================================================================
--- cpukit/headers.am	(revision 9dfb9a9879cd82f47604dfc007533f62b99bb392)
+++ cpukit/headers.am	(revision eaa5ea84eaf1b3dab72d7a7a6578f0dc59e55396)
@@ -319,4 +319,5 @@
 include_rtems_score_HEADERS += include/rtems/score/heap.h
 include_rtems_score_HEADERS += include/rtems/score/heapimpl.h
+include_rtems_score_HEADERS += include/rtems/score/heapinfo.h
 include_rtems_score_HEADERS += include/rtems/score/interr.h
 include_rtems_score_HEADERS += include/rtems/score/io.h
Index: cpukit/include/rtems/rtems/types.h
===================================================================
--- cpukit/include/rtems/rtems/types.h	(revision 9dfb9a9879cd82f47604dfc007533f62b99bb392)
+++ cpukit/include/rtems/rtems/types.h	(revision eaa5ea84eaf1b3dab72d7a7a6578f0dc59e55396)
@@ -27,5 +27,5 @@
 #include <sys/_timeval.h>
 #include <stdint.h>
-#include <rtems/score/heap.h>
+#include <rtems/score/heapinfo.h>
 #include <rtems/score/object.h>
 #include <rtems/score/watchdogticks.h>
Index: cpukit/include/rtems/score/heap.h
===================================================================
--- cpukit/include/rtems/score/heap.h	(revision 9dfb9a9879cd82f47604dfc007533f62b99bb392)
+++ cpukit/include/rtems/score/heap.h	(revision eaa5ea84eaf1b3dab72d7a7a6578f0dc59e55396)
@@ -20,4 +20,5 @@
 
 #include <rtems/score/cpu.h>
+#include <rtems/score/heapinfo.h>
 
 #ifdef __cplusplus
@@ -248,93 +249,4 @@
   Heap_Block *prev;
 };
-
-/**
- * @brief Run-time heap statistics.
- *
- * The value @a searches / @a allocs gives the mean number of searches per
- * allocation, while @a max_search gives maximum number of searches ever
- * performed on a single allocation call.
- */
-typedef struct {
-  /**
-   * @brief Lifetime number of bytes allocated from this heap.
-   *
-   * This value is an integral multiple of the page size.
-   */
-  uint64_t lifetime_allocated;
-
-  /**
-   * @brief Lifetime number of bytes freed to this heap.
-   *
-   * This value is an integral multiple of the page size.
-   */
-  uint64_t lifetime_freed;
-
-  /**
-   * @brief Size of the allocatable area in bytes.
-   *
-   * This value is an integral multiple of the page size.
-   */
-  uintptr_t size;
-
-  /**
-   * @brief Current free size in bytes.
-   *
-   * This value is an integral multiple of the page size.
-   */
-  uintptr_t free_size;
-
-  /**
-   * @brief Minimum free size ever in bytes.
-   *
-   * This value is an integral multiple of the page size.
-   */
-  uintptr_t min_free_size;
-
-  /**
-   * @brief Current number of free blocks.
-   */
-  uint32_t free_blocks;
-
-  /**
-   * @brief Maximum number of free blocks ever.
-   */
-  uint32_t max_free_blocks;
-
-  /**
-   * @brief Current number of used blocks.
-   */
-  uint32_t used_blocks;
-
-  /**
-   * @brief Maximum number of blocks searched ever.
-   */
-  uint32_t max_search;
-
-  /**
-   * @brief Total number of searches.
-   */
-  uint32_t searches;
-
-  /**
-   * @brief Total number of successful allocations.
-   */
-  uint32_t allocs;
-
-  /**
-   * @brief Total number of failed allocations.
-   */
-  uint32_t failed_allocs;
-
-  /**
-   * @brief Total number of successful frees.
-   */
-  uint32_t frees;
-
-  /**
-   * @brief Total number of successful resizes.
-   */
-  uint32_t resizes;
-} Heap_Statistics;
 
 /**
@@ -356,33 +268,4 @@
 
 /**
- * @brief Information about blocks.
- */
-typedef struct {
-  /**
-   * @brief Number of blocks of this type.
-   */
-  uintptr_t number;
-
-  /**
-   * @brief Largest block of this type.
-   */
-  uintptr_t largest;
-
-  /**
-   * @brief Total size of the blocks of this type.
-   */
-  uintptr_t total;
-} Heap_Information;
-
-/**
- * @brief Information block returned by _Heap_Get_information().
- */
-typedef struct {
-  Heap_Information Free;
-  Heap_Information Used;
-  Heap_Statistics Stats;
-} Heap_Information_block;
-
-/**
  * @brief Heap area structure for table based heap initialization and
  * extension.
Index: cpukit/include/rtems/score/heapinfo.h
===================================================================
--- cpukit/include/rtems/score/heapinfo.h	(revision eaa5ea84eaf1b3dab72d7a7a6578f0dc59e55396)
+++ cpukit/include/rtems/score/heapinfo.h	(revision eaa5ea84eaf1b3dab72d7a7a6578f0dc59e55396)
@@ -0,0 +1,158 @@
+/**
+ * @file
+ *
+ * @ingroup ScoreHeap
+ *
+ * @brief Heap Handler Information API
+ */
+
+/*
+ *  COPYRIGHT (c) 1989-2006.
+ *  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.org/license/LICENSE.
+ */
+
+#ifndef _RTEMS_SCORE_HEAPINFO_H
+#define _RTEMS_SCORE_HEAPINFO_H
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @addtogroup ScoreHeap
+ *
+ * @{
+ */
+
+/**
+ * @brief Run-time heap statistics.
+ *
+ * The value @a searches / @a allocs gives the mean number of searches per
+ * allocation, while @a max_search gives maximum number of searches ever
+ * performed on a single allocation call.
+ */
+typedef struct {
+  /**
+   * @brief Lifetime number of bytes allocated from this heap.
+   *
+   * This value is an integral multiple of the page size.
+   */
+  uint64_t lifetime_allocated;
+
+  /**
+   * @brief Lifetime number of bytes freed to this heap.
+   *
+   * This value is an integral multiple of the page size.
+   */
+  uint64_t lifetime_freed;
+
+  /**
+   * @brief Size of the allocatable area in bytes.
+   *
+   * This value is an integral multiple of the page size.
+   */
+  uintptr_t size;
+
+  /**
+   * @brief Current free size in bytes.
+   *
+   * This value is an integral multiple of the page size.
+   */
+  uintptr_t free_size;
+
+  /**
+   * @brief Minimum free size ever in bytes.
+   *
+   * This value is an integral multiple of the page size.
+   */
+  uintptr_t min_free_size;
+
+  /**
+   * @brief Current number of free blocks.
+   */
+  uint32_t free_blocks;
+
+  /**
+   * @brief Maximum number of free blocks ever.
+   */
+  uint32_t max_free_blocks;
+
+  /**
+   * @brief Current number of used blocks.
+   */
+  uint32_t used_blocks;
+
+  /**
+   * @brief Maximum number of blocks searched ever.
+   */
+  uint32_t max_search;
+
+  /**
+   * @brief Total number of searches.
+   */
+  uint32_t searches;
+
+  /**
+   * @brief Total number of successful allocations.
+   */
+  uint32_t allocs;
+
+  /**
+   * @brief Total number of failed allocations.
+   */
+  uint32_t failed_allocs;
+
+  /**
+   * @brief Total number of successful frees.
+   */
+  uint32_t frees;
+
+  /**
+   * @brief Total number of successful resizes.
+   */
+  uint32_t resizes;
+} Heap_Statistics;
+
+/**
+ * @brief Information about blocks.
+ */
+typedef struct {
+  /**
+   * @brief Number of blocks of this type.
+   */
+  uintptr_t number;
+
+  /**
+   * @brief Largest block of this type.
+   */
+  uintptr_t largest;
+
+  /**
+   * @brief Total size of the blocks of this type.
+   */
+  uintptr_t total;
+} Heap_Information;
+
+/**
+ * @brief Information block returned by _Heap_Get_information().
+ */
+typedef struct {
+  Heap_Information Free;
+  Heap_Information Used;
+  Heap_Statistics Stats;
+} Heap_Information_block;
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+/* end of include file */
