[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