From 80268207c46f2e93b1d46b5aea2f2eb9bc469ae7 Mon Sep 17 00:00:00 2001
From: Laura Abbott <lauraa@codeaurora.org>
Date: Tue, 11 Mar 2014 14:46:51 -0700
Subject: [PATCH] linux-ramdump-parser-v2: Add sized read functions

The return size of read_word may change depending on the architecture.
Add functions to read specific types and sizes.

Change-Id: I3b9b11c263bf684a8e3783a10dcdc770a6a1b25e
---
 linux-ramdump-parser-v2/ramdump.py | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py
index 112669f..678e1c6 100644
--- a/linux-ramdump-parser-v2/ramdump.py
+++ b/linux-ramdump-parser-v2/ramdump.py
@@ -940,6 +940,29 @@ class RamDump():
         else:
             return s[0]
 
+    # returns a value guaranteed to be 32 bits
+    def read_u32(self, address, virtual=True, trace=False, cpu=None):
+        if trace:
+            print_out_str('reading {0:x}'.format(address))
+        s = self.read_string(address, '<I', virtual, trace, cpu)
+        if s is None:
+            return None
+        else:
+            return s[0]
+
+    def read_int(self, address, virtual=True, trace=False,  cpu=None):
+        return self.read_u32(address, virtual, trace, cpu)
+
+    # returns a value guaranteed to be 16 bits
+    def read_u16(self, address, virtual=True, trace=False, cpu=None):
+        if trace:
+            print_out_str('reading {0:x}'.format(address))
+        s = self.read_string(address, '<H', virtual, trace, cpu)
+        if s is None:
+            return None
+        else:
+            return s[0]
+
     def read_cstring(self, address, max_length, virtual=True, cpu=None, trace=False):
         addr = address
         if virtual:
-- 
GitLab