diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py
index 112669f50ad6bda53d5dce46742d42c264325216..678e1c650a7bfbc07e465c0a13c68a87ec312821 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: