[rtems-tools commit] Abstraction for HEAP.

Chris Johns chrisj at rtems.org
Sun Aug 24 23:45:33 UTC 2014


Module:    rtems-tools
Branch:    master
Commit:    c3d06d531c497c665671386bc32dd18fbfac49b3
Changeset: http://git.rtems.org/rtems-tools/commit/?id=c3d06d531c497c665671386bc32dd18fbfac49b3

Author:    Dhananjay Balan <mb.dhananjay at gmail.com>
Date:      Sun Jul 28 13:19:06 2013 +0530

Abstraction for HEAP.

Heap_Control Abstraction is added. It will need some more grooming
though.

---

 tools/gdb/python/heaps.py |   62 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/tools/gdb/python/heaps.py b/tools/gdb/python/heaps.py
new file mode 100644
index 0000000..4798912
--- /dev/null
+++ b/tools/gdb/python/heaps.py
@@ -0,0 +1,62 @@
+#
+# RTEMS heap
+#
+
+class block:
+    '''Abstract a heap block structure'''
+
+    def __init__(self, blk):
+        self.block = blk
+        self.prev_size = self.block['prev_size']
+        self.size_flag = self.block['size_and_flag']
+
+    def null(self):
+        if self.block:
+            return False
+        return True
+
+
+    def next(self):
+        if not self.null():
+            self.block = self.block['next']
+
+    def prev(self):
+        if not self.null():
+            self.block = self.block['prev']
+
+class stats:
+    ''heap statistics''
+
+    def __init__(self,stat):
+        self.stat = stat
+
+    def avail(self):
+        val = self.stat['size']
+        return val
+
+    def free(self):
+        return self.stat['free_size']
+
+    # ToDo : incorporate others
+
+def control:
+    '''Abstract a heap control structure'''
+
+    def __init__(self, ctl):
+        self.ctl = ctl
+
+    def first(self):
+        b = block(self.ctl['first_block'])
+        return b
+
+    def last(self):
+        b = block(self.ctl['last_block'])
+        return b
+
+    def free(self):
+        b = block(self.ctl['free_list'])
+        return b
+
+    def stat(self):
+        st = stats(self.ctl['stats'])
+        return st
\ No newline at end of file



More information about the vc mailing list