diff --git a/linux-ramdump-parser-v2/debug_image_v2.py b/linux-ramdump-parser-v2/debug_image_v2.py
index f63d37b67ee35fe097c2c4e7bccac9883ed37862..6a04104305c6d7fac2ab6e3faecd550c9f50cfc0 100644
--- a/linux-ramdump-parser-v2/debug_image_v2.py
+++ b/linux-ramdump-parser-v2/debug_image_v2.py
@@ -218,7 +218,7 @@ class DebugImage_v2():
 
         type_offset = ram_dump.field_offset('struct trace_event', 'type')
         fields_offset = ram_dump.field_offset('struct ftrace_event_class', 'fields')
-        common_field_list = ram_dump.addr_lookup('ftrace_common_fields')
+        common_field_list = ram_dump.address_of('ftrace_common_fields')
         field_next_offset = ram_dump.field_offset('struct ftrace_event_field', 'link')
 
         name_str = ram_dump.read_cstring(name, 512)
@@ -246,7 +246,7 @@ class DebugImage_v2():
         formats_out = ram_dump.open_file(formats)
         self.formats_out = formats_out
 
-        ftrace_events_list = ram_dump.addr_lookup('ftrace_events')
+        ftrace_events_list = ram_dump.address_of('ftrace_events')
         next_offset = ram_dump.field_offset('struct ftrace_event_call', 'list')
         list_walker = llist.ListWalker(ram_dump, ftrace_events_list, next_offset)
         list_walker.walk_prev(ftrace_events_list, self.ftrace_events_func, ram_dump)
@@ -426,7 +426,7 @@ class DebugImage_v2():
         dump_entry_size = ram_dump.sizeof('struct msm_dump_entry')
         dump_data_size = ram_dump.sizeof('struct msm_dump_data')
 
-        mem_dump_data = ram_dump.addr_lookup('memdump')
+        mem_dump_data = ram_dump.address_of('memdump')
 
         mem_dump_table = ram_dump.read_word(
             mem_dump_data + dump_table_ptr_offset)
diff --git a/linux-ramdump-parser-v2/dmesglib.py b/linux-ramdump-parser-v2/dmesglib.py
index 8275b31a6952e5e61b24bf997d2652ceb048afca..e5f7721e5f7a15f7fe0fefa1c8836653e50eff20 100644
--- a/linux-ramdump-parser-v2/dmesglib.py
+++ b/linux-ramdump-parser-v2/dmesglib.py
@@ -50,7 +50,7 @@ class DmesgLib(object):
 
     def verify_log_helper(self, msg, verbose):
         # return early if CONFIG_LOG_BUF_MAGIC is not defined
-        log_align_addr = self.ramdump.addr_lookup('__log_align')
+        log_align_addr = self.ramdump.address_of('__log_align')
         if (log_align_addr is None):
             return True
 
@@ -101,15 +101,16 @@ class DmesgLib(object):
         return logbuf_addr + last_idx
 
     def extract_dmesg_flat(self):
-        addr = self.ramdump.read_word(self.ramdump.addr_lookup('log_buf'))
-        size = self.ramdump.read_word(self.ramdump.addr_lookup('log_buf_len'))
+        addr = self.ramdump.read_word(self.ramdump.address_of('log_buf'))
+        size = self.ramdump.read_word(self.ramdump.address_of('log_buf_len'))
         dmesg = self.ramdump.read_physical(self.ramdump.virt_to_phys(addr), size)
         self.outfile.write(cleanupString(dmesg.decode('ascii', 'ignore')) + '\n')
 
     def extract_dmesg_binary(self):
-        first_idx_addr = self.ramdump.addr_lookup('log_first_idx')
-        last_idx_addr = self.ramdump.addr_lookup('log_next_idx')
-        logbuf_addr = self.ramdump.read_word(self.ramdump.addr_lookup('log_buf'))
+        first_idx_addr = self.ramdump.address_of('log_first_idx')
+        last_idx_addr = self.ramdump.address_of('log_next_idx')
+        logbuf_addr = self.ramdump.read_word(
+            self.ramdump.address_of('log_buf'))
         time_offset = self.ramdump.field_offset(self.struct_name, 'ts_nsec')
         len_offset = self.ramdump.field_offset(self.struct_name, 'len')
         text_len_offset = self.ramdump.field_offset(self.struct_name, 'text_len')
diff --git a/linux-ramdump-parser-v2/gdbmi.py b/linux-ramdump-parser-v2/gdbmi.py
index 282f48fdc8b89c6440d7f789037c9810e4e89275..4ba3b9f385557331bd941b44208f3e02ee0b6000 100644
--- a/linux-ramdump-parser-v2/gdbmi.py
+++ b/linux-ramdump-parser-v2/gdbmi.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -176,7 +176,7 @@ class GdbMI(object):
             int quanitity = 42;
             struct pizza mypizza = {.price = 10, .qty = &quanitity};
 
-        qtyp = dump.addr_lookup('quantity')
+        qtyp = dump.address_of('quantity')
         price = dump.read_int(gdbmi.sibling_field_addr(qtyp, 'struct pizza', 'qty', 'price'))
 
         """
diff --git a/linux-ramdump-parser-v2/mm.py b/linux-ramdump-parser-v2/mm.py
index 09e648461dfbd000de1cab41e114d07df44f0b28..c6790766e533d60db16cf499522e9ab815fc26fb 100755
--- a/linux-ramdump-parser-v2/mm.py
+++ b/linux-ramdump-parser-v2/mm.py
@@ -34,7 +34,7 @@ def page_to_nid(page_flags):
 
 
 def page_zone(ramdump, page):
-    contig_page_data = ramdump.addr_lookup('contig_page_data')
+    contig_page_data = ramdump.address_of('contig_page_data')
     node_zones_offset = ramdump.field_offset(
         'struct pglist_data', 'node_zones')
     page_flags_offset = ramdump.field_offset('struct page', 'flags')
@@ -75,7 +75,7 @@ def hash32(val, bits):
 
 def page_slot(ramdump, page):
     hashed = hash32(page, 7)
-    htable = ramdump.addr_lookup('page_address_htable')
+    htable = ramdump.address_of('page_address_htable')
     htable_size = ramdump.sizeof('page_address_htable[0]')
     return htable + htable_size * hashed
 
@@ -90,7 +90,7 @@ def nr_to_section(ramdump, sec_num):
     sections_per_root = 4096 / memsection_struct_size
     sect_nr_to_root = sec_num / sections_per_root
     masked = sec_num & (sections_per_root - 1)
-    mem_section_addr = ramdump.addr_lookup('mem_section')
+    mem_section_addr = ramdump.address_of('mem_section')
     mem_section = ramdump.read_word(mem_section_addr)
     if mem_section is None:
         return None
@@ -163,7 +163,7 @@ def pfn_to_page_vmemmap(ramdump, pfn):
 
 
 def page_to_pfn_flat(ramdump, page):
-    mem_map_addr = ramdump.addr_lookup('mem_map')
+    mem_map_addr = ramdump.address_of('mem_map')
     mem_map = ramdump.read_word(mem_map_addr)
     page_size = ramdump.sizeof('struct page')
     # XXX Needs to change for LPAE
@@ -172,7 +172,7 @@ def page_to_pfn_flat(ramdump, page):
 
 
 def pfn_to_page_flat(ramdump, pfn):
-    mem_map_addr = ramdump.addr_lookup('mem_map')
+    mem_map_addr = ramdump.address_of('mem_map')
     mem_map = ramdump.read_word(mem_map_addr)
     page_size = ramdump.sizeof('struct page')
     # XXX Needs to change for LPAE
@@ -199,8 +199,8 @@ def pfn_to_page(ramdump, pfn):
 
 
 def sparsemem_lowmem_page_address(ramdump, page):
-    membank1_start = ramdump.read_word(ramdump.addr_lookup('membank1_start'))
-    membank0_size = ramdump.read_word(ramdump.addr_lookup('membank0_size'))
+    membank1_start = ramdump.read_word(ramdump.address_of('membank1_start'))
+    membank0_size = ramdump.read_word(ramdump.address_of('membank0_size'))
     # XXX currently magic
     membank0_phys_offset = ramdump.phys_offset
     membank0_page_offset = ramdump.page_offset
@@ -215,12 +215,12 @@ def sparsemem_lowmem_page_address(ramdump, page):
 
 def dont_map_hole_lowmem_page_address(ramdump, page):
     phys = page_to_pfn(ramdump, page) << 12
-    hole_end_addr = ramdump.addr_lookup('memory_hole_end')
+    hole_end_addr = ramdump.address_of('memory_hole_end')
     if hole_end_addr is None:
-        hole_end_addr = ramdump.addr_lookup('membank1_start')
-    hole_offset_addr = ramdump.addr_lookup('memory_hole_offset')
+        hole_end_addr = ramdump.address_of('membank1_start')
+    hole_offset_addr = ramdump.address_of('memory_hole_offset')
     if hole_offset_addr is None:
-        hole_offset_addr = ramdump.addr_lookup('membank0_size')
+        hole_offset_addr = ramdump.address_of('membank0_size')
     hole_end = ramdump.read_word(hole_end_addr)
     hole_offset = ramdump.read_word(hole_offset_addr)
     if hole_end != 0 and phys >= hole_end:
diff --git a/linux-ramdump-parser-v2/parsers/cachedump.py b/linux-ramdump-parser-v2/parsers/cachedump.py
index 76570005cc558edfe03dae95e6e73eeefa52a761..4231aff2ec49fa00176dbb75634f2b15c7b71731 100644
--- a/linux-ramdump-parser-v2/parsers/cachedump.py
+++ b/linux-ramdump-parser-v2/parsers/cachedump.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
+# Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -118,7 +118,7 @@ class CacheDump(RamParser):
                 '!!! Cache dumping was not enabled. No cache will be dumped')
             return
 
-        cache_base_addr = self.ramdump.addr_lookup('l2_dump')
+        cache_base_addr = self.ramdump.address_of('l2_dump')
         cache_base = self.ramdump.read_word(cache_base_addr)
 
         parse_cache_dump(self.ramdump, cache_base)
diff --git a/linux-ramdump-parser-v2/parsers/clockdump.py b/linux-ramdump-parser-v2/parsers/clockdump.py
index 0c6b21067b5c429cae80b86487444a61687840c2..09b4657d3c1efe6ecd92acf4be0d2afb75688b49 100755
--- a/linux-ramdump-parser-v2/parsers/clockdump.py
+++ b/linux-ramdump-parser-v2/parsers/clockdump.py
@@ -54,7 +54,7 @@ class ClockDumps(RamParser) :
                 self.output_file.write('P ' + clocks)
 
     def get_clocks(self):
-        clocks = self.ramdump.addr_lookup('clocks')
+        clocks = self.ramdump.address_of('clocks')
         if clocks is None:
             self.output_file.write("NOTE: 'clocks' list not found to extract the clocks information")
             return
@@ -103,7 +103,7 @@ class ClockDumps(RamParser) :
             self.disabled_clocks.append(output)
 
     def get_clk_providers(self):
-        clocks = self.ramdump.addr_lookup('of_clk_providers')
+        clocks = self.ramdump.address_of('of_clk_providers')
         if clocks is None:
             self.output_file.write("NOTE: 'of_clk_providers' list not found to extract the clocks information")
             return
diff --git a/linux-ramdump-parser-v2/parsers/cpr3_info.py b/linux-ramdump-parser-v2/parsers/cpr3_info.py
index fbcb5df5f18c4d38f4dc8682879ab6c1f36cbbb3..5700af7c9c35056a71d8945922ff0a22a927ef87 100644
--- a/linux-ramdump-parser-v2/parsers/cpr3_info.py
+++ b/linux-ramdump-parser-v2/parsers/cpr3_info.py
@@ -34,7 +34,7 @@ class CPR3Info(RamParser):
 
     def get_cpr(self):
         # Return if the cpr3_regulator_list is not available
-        cpr = self.ramdump.addr_lookup('cpr3_controller_list')
+        cpr = self.ramdump.address_of('cpr3_controller_list')
         if cpr is None:
             self.output_file.write(
                 "NOTE: 'cpr3_regulator_list' list " +
@@ -49,7 +49,7 @@ class CPR3Info(RamParser):
         c_w.walk(head, self.cpr_walker)
 
     def get_kryo(self):
-        kryo_addr = self.ramdump.addr_lookup('kryo_regulator_list')
+        kryo_addr = self.ramdump.address_of('kryo_regulator_list')
         if kryo_addr is None:
             print(
                 "NOTE: 'kryo_regulator_list' list " +
diff --git a/linux-ramdump-parser-v2/parsers/cpr_info.py b/linux-ramdump-parser-v2/parsers/cpr_info.py
index d72b7f1c246c85c1dcdf93e576a00dd2bc03c5fd..66b5c53ce1a0150f7a80d38e09beac95abccccf7 100755
--- a/linux-ramdump-parser-v2/parsers/cpr_info.py
+++ b/linux-ramdump-parser-v2/parsers/cpr_info.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -63,7 +63,7 @@ class CPRInfo(RamParser):
 
     def get_cpr(self):
         # Return if the cpr_regulator_list is not available
-        cpr = self.ramdump.addr_lookup('cpr_regulator_list')
+        cpr = self.ramdump.address_of('cpr_regulator_list')
         if cpr is None:
             self.output_file.write("NOTE: 'cpr_regulator_list' list not found to extract cpr information")
             return
diff --git a/linux-ramdump-parser-v2/parsers/cpu_state.py b/linux-ramdump-parser-v2/parsers/cpu_state.py
index 97be12ff0f339f02603f9e5db8fa33ad63895f01..a5906d719f4c17100a409afdc819dfb9a4360c6d 100644
--- a/linux-ramdump-parser-v2/parsers/cpu_state.py
+++ b/linux-ramdump-parser-v2/parsers/cpu_state.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2013, The Linux Foundation. All rights reserved.
+# Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -19,7 +19,7 @@ from print_out import print_out_str
 class CpuState(RamParser):
 
     def parse(self):
-        regs_before_stop_addr = self.ramdump.addr_lookup('regs_before_stop')
+        regs_before_stop_addr = self.ramdump.address_of('regs_before_stop')
         if regs_before_stop_addr is None:
             print_out_str('regs_before_stop not found. Nothing to do.')
             return
diff --git a/linux-ramdump-parser-v2/parsers/ddrcompare.py b/linux-ramdump-parser-v2/parsers/ddrcompare.py
index 52a7afdadfa78ba5c319ebfed4b49f4c211e63b4..5a4866ffbdd41deb2f398b27a4d12d3cba8aaaf3 100644
--- a/linux-ramdump-parser-v2/parsers/ddrcompare.py
+++ b/linux-ramdump-parser-v2/parsers/ddrcompare.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -66,10 +66,10 @@ class DDRCompare(RamParser) :
             self.output_file.write("No Corruption found in the lock values\n\n")
 
     def validate_sched_class(self, address):
-        sc_stop = self.ramdump.addr_lookup('stop_sched_class')
-        sc_rt = self.ramdump.addr_lookup('rt_sched_class')
-        sc_idle = self.ramdump.addr_lookup('idle_sched_class')
-        sc_fair = self.ramdump.addr_lookup('fair_sched_class')
+        sc_stop = self.ramdump.address_of('stop_sched_class')
+        sc_rt = self.ramdump.address_of('rt_sched_class')
+        sc_idle = self.ramdump.address_of('idle_sched_class')
+        sc_fair = self.ramdump.address_of('fair_sched_class')
 
         sched_class_offset = address + self.ramdump.field_offset('struct task_struct', 'sched_class');
         sched_class_pointer = self.ramdump.read_word(sched_class_offset, True)
@@ -136,7 +136,7 @@ class DDRCompare(RamParser) :
         self.output_file.write("Checking for task list corruption.\n")
         self.output_file.write("----------------------------------------------------------------------------------------\n")
 
-        init_task = self.ramdump.addr_lookup('init_task')
+        init_task = self.ramdump.address_of('init_task')
         self.output_file.write("Init Task Address = {0}\n".format(hex(init_task)))
         tasks_offset = self.ramdump.field_offset('struct task_struct', 'tasks')
         self.output_file.write("Task Offset {0}\n".format(hex(tasks_offset).rstrip("L")))
diff --git a/linux-ramdump-parser-v2/parsers/debug_image.py b/linux-ramdump-parser-v2/parsers/debug_image.py
index d5f750a71421e2e19d89ed3fcce256c63b28b327..1d0d1efcc38c1ce56766705789ef0d49552ea2e8 100644
--- a/linux-ramdump-parser-v2/parsers/debug_image.py
+++ b/linux-ramdump-parser-v2/parsers/debug_image.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -146,7 +146,7 @@ class DebugImage(RamParser):
             'struct msm_client_dump', 'end_addr')
         client_dump_entry_size = self.ramdump.sizeof('struct msm_client_dump')
 
-        mem_dump_data = self.ramdump.addr_lookup('mem_dump_data')
+        mem_dump_data = self.ramdump.address_of('mem_dump_data')
 
         dump_table = self.ramdump.read_word(
             mem_dump_data + dump_table_ptr_offset)
@@ -196,9 +196,9 @@ class DebugImage(RamParser):
         # use the mem_dump_data variable to detect if debug image feature was compiled in,
         # and memdump data variable for debug image v2 feature, rather than relying on
         # configuration option.
-        if self.ramdump.addr_lookup('mem_dump_data'):
+        if self.ramdump.address_of('mem_dump_data'):
             self.parse_dump()
-        elif self.ramdump.addr_lookup('memdump'):
+        elif self.ramdump.address_of('memdump'):
             regs = DebugImage_v2()
             regs.parse_dump_v2(self.ramdump)
         else:
diff --git a/linux-ramdump-parser-v2/parsers/gpuinfo.py b/linux-ramdump-parser-v2/parsers/gpuinfo.py
index 78a159f63731b6c0fb0d3d2ac4e72771ccfca3ef..4149f5ff2085e4744e17a34661be8e59ad30963e 100644
--- a/linux-ramdump-parser-v2/parsers/gpuinfo.py
+++ b/linux-ramdump-parser-v2/parsers/gpuinfo.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2013, The Linux Foundation. All rights reserved.
+# Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -21,7 +21,7 @@ class GPUinfo(RamParser):
                 print_out_str(
                     'No GPU support detected... Skipping GPUinfo parser.')
                 return
-            adreno_dev_addr = self.ramdump.addr_lookup('device_3d0')
+            adreno_dev_addr = self.ramdump.address_of('device_3d0')
             kgsl_dev_addr = adreno_dev_addr + self.ramdump.field_offset(
                 'struct adreno_device', 'dev')
             snapshot = self.ramdump.read_word(kgsl_dev_addr + self.ramdump.field_offset(
diff --git a/linux-ramdump-parser-v2/parsers/irqstate.py b/linux-ramdump-parser-v2/parsers/irqstate.py
index ec428646a0797c9a0229a6a926a1e5762d245063..b9f8d3e754e8a5683c688bde66651a3c531f3a14 100755
--- a/linux-ramdump-parser-v2/parsers/irqstate.py
+++ b/linux-ramdump-parser-v2/parsers/irqstate.py
@@ -19,11 +19,11 @@ class IrqParse(RamParser):
     def print_irq_state_3_0(self, ram_dump):
         print_out_str(
             '=========================== IRQ STATE ===============================')
-        per_cpu_offset_addr = ram_dump.addr_lookup('__per_cpu_offset')
-        cpu_present_bits_addr = ram_dump.addr_lookup('cpu_present_bits')
+        per_cpu_offset_addr = ram_dump.address_of('__per_cpu_offset')
+        cpu_present_bits_addr = ram_dump.address_of('cpu_present_bits')
         cpu_present_bits = ram_dump.read_word(cpu_present_bits_addr)
         cpus = bin(cpu_present_bits).count('1')
-        irq_desc = ram_dump.addr_lookup('irq_desc')
+        irq_desc = ram_dump.address_of('irq_desc')
         foo, irq_desc_size = ram_dump.unwind_lookup(irq_desc, 1)
         h_irq_offset = ram_dump.field_offset('struct irq_desc', 'handle_irq')
         irq_num_offset = ram_dump.field_offset('struct irq_data', 'irq')
@@ -130,8 +130,8 @@ class IrqParse(RamParser):
         chip_name_offset = ram_dump.field_offset('struct irq_chip', 'name')
         cpu_str = ''
 
-        irq_desc_tree = ram_dump.addr_lookup('irq_desc_tree')
-        nr_irqs = ram_dump.read_int(ram_dump.addr_lookup('nr_irqs'))
+        irq_desc_tree = ram_dump.address_of('irq_desc_tree')
+        nr_irqs = ram_dump.read_int(ram_dump.address_of('nr_irqs'))
 
         for i in ram_dump.iter_cpus():
             cpu_str = cpu_str + '{0:10} '.format('CPU{0}'.format(i))
@@ -173,7 +173,7 @@ class IrqParse(RamParser):
                     '{0:4} {1} {2:30} {3:15} v.v (struct irq_desc *)0x{4:<20x}'.format(irqnum, irq_stats_str, name, chip_name, irq_desc))
 
     def parse(self):
-        irq_desc = self.ramdump.addr_lookup('irq_desc')
+        irq_desc = self.ramdump.address_of('irq_desc')
         if self.ramdump.is_config_defined('CONFIG_SPARSE_IRQ'):
             self.print_irq_state_sparse_irq(self.ramdump)
 
diff --git a/linux-ramdump-parser-v2/parsers/lpm.py b/linux-ramdump-parser-v2/parsers/lpm.py
index 150ccc03ab8035f05033203a25d4327ece3c751e..5eb94cf28ae7612b8d249a5d83c618fa9988dcbf 100644
--- a/linux-ramdump-parser-v2/parsers/lpm.py
+++ b/linux-ramdump-parser-v2/parsers/lpm.py
@@ -25,7 +25,7 @@ class lpm(RamParser):
         self.lpm_debug = []
 
     def get_bits(self):
-        bits_addr = self.ramdump.addr_lookup('cpu_possible_bits')
+        bits_addr = self.ramdump.address_of('cpu_possible_bits')
         if bits_addr is None:
                 self.output.append("NOTE: 'cpu_possible_bits' not found")
                 return
@@ -37,7 +37,7 @@ class lpm(RamParser):
                 self.output.append("{:10}{}:{}\n".format("", "CPU", i))
         self.output.append("\n")
 
-        bits_addr = self.ramdump.addr_lookup('cpu_online_bits')
+        bits_addr = self.ramdump.address_of('cpu_online_bits')
         if bits_addr is None:
                 self.output.append("NOTE: 'cpu_online_bits' not found")
                 return
@@ -129,7 +129,8 @@ class lpm(RamParser):
         self.clusters.append(lpm_cluster)
 
     def get_clusters(self):
-        lpm_root_node = self.ramdump.read_word(self.ramdump.addr_lookup('lpm_root_node'), True)
+        lpm_root_node = self.ramdump.read_word(
+            self.ramdump.address_of('lpm_root_node'), True)
         if lpm_root_node is None:
                 self.output_file.write("NOTE: 'lpm_root_node' not found\n")
                 return
@@ -160,7 +161,7 @@ class lpm(RamParser):
 
         self.output.append("\n")
 
-        cpu_level_available = self.ramdump.addr_lookup('cpu_level_available')
+        cpu_level_available = self.ramdump.address_of('cpu_level_available')
         if cpu_level_available is None:
                 self.output.append("NOTE: 'cpu_level_available' not found\n")
                 return
@@ -199,7 +200,7 @@ class lpm(RamParser):
                 self.get_cluster_level_info(i)
                 self.output.append("{}{}".format("-" * 81, "\n"))
 
-        cpu_cluster_base = self.ramdump.addr_lookup('cpu_cluster')
+        cpu_cluster_base = self.ramdump.address_of('cpu_cluster')
         if cpu_cluster_base is None:
                 self.output.append("NOTE: 'cpu_cluster' not found\n")
                 return
@@ -259,7 +260,7 @@ class lpm(RamParser):
         for i in self.clusters:
                 self.get_cluster_stats(i)
 
-        cpu_stats_base = self.ramdump.addr_lookup('cpu_stats')
+        cpu_stats_base = self.ramdump.address_of('cpu_stats')
         if cpu_stats_base is None:
                 self.output.append("NOTE: 'cpu_stats' not found\n")
                 return
@@ -269,7 +270,7 @@ class lpm(RamParser):
                 self.get_cpu_stats(cpu_stats_base, i)
 
     def get_debug_phys(self):
-        lpm_debug_phys = self.ramdump.addr_lookup('lpm_debug_phys')
+        lpm_debug_phys = self.ramdump.address_of('lpm_debug_phys')
         if lpm_debug_phys is None:
                 self.output.append("NOTE: 'lpm_debug data' not found\n")
                 return
diff --git a/linux-ramdump-parser-v2/parsers/pagealloccorruption.py b/linux-ramdump-parser-v2/parsers/pagealloccorruption.py
index 3ed78c0f76c17a9c6911b89ff951222d730a1c21..302d46da03c12fabe67c143c609d42781c1a4220 100755
--- a/linux-ramdump-parser-v2/parsers/pagealloccorruption.py
+++ b/linux-ramdump-parser-v2/parsers/pagealloccorruption.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012,2014 The Linux Foundation. All rights reserved.
+# Copyright (c) 2012,2014-2015 The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -21,7 +21,7 @@ class PageallocCorruption(RamParser):
            return
         out_corruption_summary = self.ramdump.open_file('page_corruption_summary.txt')
         out_pfn_ranges = self.ramdump.open_file('page_ranges.txt')
-        memblock_addr = self.ramdump.addr_lookup('memblock')
+        memblock_addr = self.ramdump.address_of('memblock')
         memblock_memory_offset = self.ramdump.field_offset('struct memblock', 'memory')
         memblock_memory_cnt_offset = self.ramdump.field_offset('struct memblock_type', 'cnt')
         cnt = self.ramdump.read_word(memblock_addr + memblock_memory_offset + memblock_memory_cnt_offset)
diff --git a/linux-ramdump-parser-v2/parsers/pagetracking.py b/linux-ramdump-parser-v2/parsers/pagetracking.py
index 54712f7c7a5d5bc108140875bb9d442c739cc989..c7d4d87d8ecc87ae3d1f4be6055d3387aa16e9d2 100644
--- a/linux-ramdump-parser-v2/parsers/pagetracking.py
+++ b/linux-ramdump-parser-v2/parsers/pagetracking.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012,2014 The Linux Foundation. All rights reserved.
+# Copyright (c) 2012,2014-2015 The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -20,8 +20,8 @@ class PageTracking(RamParser):
         if not self.ramdump.is_config_defined('CONFIG_PAGE_OWNER'):
             return
 
-        min_pfn_addr = self.ramdump.addr_lookup('min_low_pfn')
-        max_pfn_addr = self.ramdump.addr_lookup('max_pfn')
+        min_pfn_addr = self.ramdump.address_of('min_low_pfn')
+        max_pfn_addr = self.ramdump.address_of('max_pfn')
         min_pfn = self.ramdump.read_word(
             min_pfn_addr) + (self.ramdump.phys_offset >> 12)
         max_pfn = self.ramdump.read_word(
diff --git a/linux-ramdump-parser-v2/parsers/pagetypeinfo.py b/linux-ramdump-parser-v2/parsers/pagetypeinfo.py
index ea6c245f1eecc30a669b0731b58899487661dbc6..ec5113ff29fa25141c6767c28655f4138441b496 100644
--- a/linux-ramdump-parser-v2/parsers/pagetypeinfo.py
+++ b/linux-ramdump-parser-v2/parsers/pagetypeinfo.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -22,7 +22,7 @@ class Pagetypeinfo(RamParser):
         free_area_size = ramdump.sizeof('struct free_area')
         free_list_offset = ramdump.field_offset(
             'struct free_area', 'free_list')
-        migratetype_names = ramdump.addr_lookup('migratetype_names')
+        migratetype_names = ramdump.address_of('migratetype_names')
         zone_name_offset = ramdump.field_offset('struct zone', 'name')
         zname_addr = ramdump.read_word(zone + zone_name_offset)
         zname = ramdump.read_cstring(zname_addr, 12)
@@ -82,7 +82,7 @@ class Pagetypeinfo(RamParser):
         migrate_types = self.ramdump.gdbmi.get_value_of('MIGRATE_TYPES')
         max_nr_zones = self.ramdump.gdbmi.get_value_of('__MAX_NR_ZONES')
 
-        contig_page_data = self.ramdump.addr_lookup('contig_page_data')
+        contig_page_data = self.ramdump.address_of('contig_page_data')
         node_zones_offset = self.ramdump.field_offset(
             'struct pglist_data', 'node_zones')
         present_pages_offset = self.ramdump.field_offset(
diff --git a/linux-ramdump-parser-v2/parsers/roareadiff.py b/linux-ramdump-parser-v2/parsers/roareadiff.py
index 49df71ed8f633c57fb994d15b96d0ae3a59a09c0..3e3b96e14ec6cfa748bdd65c92d08f3e0f2cffa7 100644
--- a/linux-ramdump-parser-v2/parsers/roareadiff.py
+++ b/linux-ramdump-parser-v2/parsers/roareadiff.py
@@ -32,8 +32,6 @@ LUMP_SIZE=4096
 class ROData(RamParser):
 
     def parse(self):
-        stext = self.ramdump.addr_lookup('stext')
-        etext = self.ramdump.addr_lookup('_etext')
 
         with self.ramdump.open_file('roareadiff.txt') as roarea_out:
 
diff --git a/linux-ramdump-parser-v2/parsers/rtb.py b/linux-ramdump-parser-v2/parsers/rtb.py
index 143d77ccdab600a374a3989ae6984483721a49bd..602012d80005ce9b72f56515dd176d4df25553de 100755
--- a/linux-ramdump-parser-v2/parsers/rtb.py
+++ b/linux-ramdump-parser-v2/parsers/rtb.py
@@ -144,7 +144,7 @@ class RTB(RamParser):
         return (index + step_size) & mask
 
     def parse(self):
-        rtb = self.ramdump.addr_lookup('msm_rtb')
+        rtb = self.ramdump.address_of('msm_rtb')
         if rtb is None:
             print_out_str(
                 '[!] RTB was not enabled in this build. No RTB files will be generated')
@@ -173,9 +173,9 @@ class RTB(RamParser):
             mask = self.ramdump.read_int(rtb + nentries_offset) - 1
             if step_size == 1:
                 last = self.ramdump.read_int(
-                    self.ramdump.addr_lookup('msm_rtb_idx'))
+                    self.ramdump.address_of('msm_rtb_idx'))
             else:
-                last = self.ramdump.read_int(self.ramdump.addr_lookup(
+                last = self.ramdump.read_int(self.ramdump.address_of(
                     'msm_rtb_idx_cpu'), cpu=i )
             last = last & mask
             last_ptr = 0
diff --git a/linux-ramdump-parser-v2/parsers/runqueue.py b/linux-ramdump-parser-v2/parsers/runqueue.py
index 41180b5435cef1309dd5687108539a1c39ae0f60..cf6031799edeea739b089d575a543b000561f56b 100644
--- a/linux-ramdump-parser-v2/parsers/runqueue.py
+++ b/linux-ramdump-parser-v2/parsers/runqueue.py
@@ -160,8 +160,8 @@ class RunQueues(RamParser):
                     break
 
     def print_latest_callstack_maybe(self, task_addr):
-        text_start_addr = self.ramdump.addr_lookup('_text')
-        text_end_addr = self.ramdump.addr_lookup('_etext')
+        text_start_addr = self.ramdump.address_of('_text')
+        text_end_addr = self.ramdump.address_of('_etext')
         stack_offset = self.ramdump.field_offset('struct task_struct', 'stack')
 
         stack_addr = self.ramdump.read_word(task_addr + stack_offset)
@@ -184,7 +184,7 @@ class RunQueues(RamParser):
     def parse(self):
         print_out_str(
             '======================= RUNQUEUE STATE ============================')
-        runqueues_addr = self.ramdump.addr_lookup('runqueues')
+        runqueues_addr = self.ramdump.address_of('runqueues')
         nr_running_offset = self.ramdump.field_offset(
             'struct rq', 'nr_running')
         curr_offset = self.ramdump.field_offset('struct rq', 'curr')
diff --git a/linux-ramdump-parser-v2/parsers/slabinfo.py b/linux-ramdump-parser-v2/parsers/slabinfo.py
index 79dcae9a7b1ce5bf9058540e1d57c58ac7776b86..0f9a95a47ef65284798cb3c6568a742bbf580738 100755
--- a/linux-ramdump-parser-v2/parsers/slabinfo.py
+++ b/linux-ramdump-parser-v2/parsers/slabinfo.py
@@ -276,7 +276,7 @@ class Slabinfo(RamParser):
             return
         slab_lru_offset = self.ramdump.field_offset('struct page', 'lru')
         page_flags_offset = self.ramdump.field_offset('struct page', 'flags')
-        max_pfn_addr = self.ramdump.addr_lookup('max_pfn')
+        max_pfn_addr = self.ramdump.address_of('max_pfn')
         max_pfn = self.ramdump.read_word(max_pfn_addr)
         max_page = pfn_to_page(ramdump, max_pfn)
         while page != start:
@@ -325,9 +325,8 @@ class Slabinfo(RamParser):
     # in the system because the code to do that correctly is a big pain. This will
     # need to be changed if we ever do NUMA properly.
     def validate_slab_cache(self, slab_out, map_fn):
-        original_slab = self.ramdump.addr_lookup('slab_caches')
-        per_cpu_offset = self.ramdump.addr_lookup('__per_cpu_offset')
-        cpu_present_bits_addr = self.ramdump.addr_lookup('cpu_present_bits')
+        original_slab = self.ramdump.address_of('slab_caches')
+        cpu_present_bits_addr = self.ramdump.address_of('cpu_present_bits')
         cpu_present_bits = self.ramdump.read_word(cpu_present_bits_addr)
         cpus = bin(cpu_present_bits).count('1')
         slab_list_offset = self.ramdump.field_offset(
diff --git a/linux-ramdump-parser-v2/parsers/spm.py b/linux-ramdump-parser-v2/parsers/spm.py
index ccbe3404c5b0a1684b4f2237a6da9125a74b035a..3816aea5ddc914978d5bb692aa8ec0a358e864ad 100644
--- a/linux-ramdump-parser-v2/parsers/spm.py
+++ b/linux-ramdump-parser-v2/parsers/spm.py
@@ -85,7 +85,8 @@ class spm(RamParser):
         self.output.append("{}{}".format("-" * 81, "\n\n"))
 
     def get_spm(self):
-        lpm_root_node = self.ramdump.read_word(self.ramdump.addr_lookup('lpm_root_node'), True)
+        lpm_root_node = self.ramdump.read_word(
+            self.ramdump.address_of('lpm_root_node'), True)
         if lpm_root_node is None:
                 self.output_file.write("NOTE: 'lpm_root_node' not found\n")
                 return
diff --git a/linux-ramdump-parser-v2/parsers/taskdump.py b/linux-ramdump-parser-v2/parsers/taskdump.py
index 96c3201a18c057e47d3ab42b9a7c362dcb125923..ae3918e00dc54345030b14d29ef50065adbc11b7 100755
--- a/linux-ramdump-parser-v2/parsers/taskdump.py
+++ b/linux-ramdump-parser-v2/parsers/taskdump.py
@@ -134,7 +134,7 @@ def do_dump_stacks(ramdump, check_for_panic=0):
     offset_state = ramdump.field_offset('struct task_struct', 'state')
     offset_exit_state = ramdump.field_offset(
         'struct task_struct', 'exit_state')
-    init_addr = ramdump.addr_lookup('init_task')
+    init_addr = ramdump.address_of('init_task')
     init_next_task = init_addr + offset_tasks
     orig_init_next_task = init_next_task
     init_thread_group = init_addr + offset_thread_group
@@ -175,7 +175,7 @@ def do_dump_task_timestamps(ramdump):
     offset_thread_group = ramdump.field_offset(
         'struct task_struct', 'thread_group')
     offset_pid = ramdump.field_offset('struct task_struct', 'pid')
-    init_addr = ramdump.addr_lookup('init_task')
+    init_addr = ramdump.address_of('init_task')
     init_next_task = init_addr + offset_tasks
     orig_init_next_task = init_next_task
     init_thread_group = init_addr + offset_thread_group
@@ -288,7 +288,7 @@ class DumpTasksTimeStamps(RamParser):
 class CheckForPanic(RamParser):
 
     def parse(self):
-        addr = self.ramdump.addr_lookup('in_panic')
+        addr = self.ramdump.address_of('in_panic')
 
         result = self.ramdump.read_word(addr)
 
diff --git a/linux-ramdump-parser-v2/parsers/thermal_data.py b/linux-ramdump-parser-v2/parsers/thermal_data.py
index b789fbffe639a9e82364ad5e5dfe78190e44208d..6f66209a8e7481343ab7b6096b23b668df47d96a 100755
--- a/linux-ramdump-parser-v2/parsers/thermal_data.py
+++ b/linux-ramdump-parser-v2/parsers/thermal_data.py
@@ -42,7 +42,7 @@ class Thermal_info(RamParser):
         sensor_mapping = []
         self.output_file.write("Thermal sensor data \n")
 
-        tmdev = self.ramdump.addr_lookup('tmdev')
+        tmdev = self.ramdump.address_of('tmdev')
         tmdev_address = self.ramdump.read_word(tmdev, True)
         sensor_dbg_info_size = ram_dump.sizeof('struct tsens_sensor_dbg_info')
         sensor_dbg_info = self.ramdump.field_offset(
@@ -51,7 +51,7 @@ class Thermal_info(RamParser):
         time_stamp = self.ramdump.field_offset(
             'struct tsens_sensor_dbg_info',
             'time_stmp')
-        cpus_sensor = self.ramdump.addr_lookup('cpus')
+        cpus_sensor = self.ramdump.address_of('cpus')
         cpus_sensor_size = ram_dump.sizeof('struct cpu_info')
         sensor_id_offset = self.ramdump.field_offset(
             'struct cpu_info',
diff --git a/linux-ramdump-parser-v2/parsers/timerlist.py b/linux-ramdump-parser-v2/parsers/timerlist.py
index fd99a59d425c7adad61bfc044dca1b36c1b3c38c..042911282c0219e27b65bcbf65138452f93fe734 100755
--- a/linux-ramdump-parser-v2/parsers/timerlist.py
+++ b/linux-ramdump-parser-v2/parsers/timerlist.py
@@ -77,7 +77,7 @@ class TimerList(RamParser) :
     def get_timer_list(self):
         self.output_file.write("Timer List Dump\n\n")
 
-        tvec_bases_addr = self.ramdump.addr_lookup('tvec_bases')
+        tvec_bases_addr = self.ramdump.address_of('tvec_bases')
         for cpu in range(0, self.ramdump.get_num_cpus()):
             title = "CPU {0}".format(cpu)
 
diff --git a/linux-ramdump-parser-v2/parsers/vmstat.py b/linux-ramdump-parser-v2/parsers/vmstat.py
index 568bd488452769784f39d8fc9ab091fb0979d35b..e8498368aafe8f33bf215525817eb7f4a6307040 100644
--- a/linux-ramdump-parser-v2/parsers/vmstat.py
+++ b/linux-ramdump-parser-v2/parsers/vmstat.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -46,7 +46,7 @@ class ZoneInfo(RamParser):
             'zone_stat_item', max_zone_stats)
         max_nr_zones = self.ramdump.gdbmi.get_value_of('__MAX_NR_ZONES')
 
-        contig_page_data = self.ramdump.addr_lookup('contig_page_data')
+        contig_page_data = self.ramdump.address_of('contig_page_data')
         node_zones_offset = self.ramdump.field_offset(
             'struct pglist_data', 'node_zones')
         present_pages_offset = self.ramdump.field_offset(
@@ -62,8 +62,9 @@ class ZoneInfo(RamParser):
             zone = zone + sizeofzone
 
         print_out_str('\nGlobal Stats')
-        vmstats_addr = self.ramdump.addr_lookup('vm_stat')
+        vmstats_addr = self.ramdump.address_of('vm_stat')
         for i in xrange(0, max_zone_stats):
             print_out_str('{0:30}: {1:8}'.format(vmstat_names[i], self.ramdump.read_word(
                 self.ramdump.array_index(vmstats_addr, 'atomic_long_t', i))))
-        print_out_str('Total system pages: {0}'.format(self.ramdump.read_word(self.ramdump.addr_lookup('totalram_pages'))))
+        print_out_str('Total system pages: {0}'.format(self.ramdump.read_word(
+            self.ramdump.address_of('totalram_pages'))))
diff --git a/linux-ramdump-parser-v2/parsers/watchdog.py b/linux-ramdump-parser-v2/parsers/watchdog.py
index 8aabef89bc5a4f7e6eca1e8e1fbb824e35eeae93..2aea1a0d5d1b5056fd13a5563ca70fcdd403991f 100755
--- a/linux-ramdump-parser-v2/parsers/watchdog.py
+++ b/linux-ramdump-parser-v2/parsers/watchdog.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
+# Copyright (c) 2012-2015, The Linux Foundation. All rights reserved.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License version 2 and
@@ -306,7 +306,7 @@ class TZRegDump(RamParser):
         return True
 
     def parse(self):
-        if self.ramdump.addr_lookup('memdump'):
+        if self.ramdump.address_of('memdump'):
             return None
 
         ebi_addr = self.ramdump.read_tz_offset()
@@ -328,11 +328,11 @@ class TZRegDump(RamParser):
 
 
 def get_wdog_timing(ramdump):
-    jiffies_addr = ramdump.addr_lookup('jiffies')
-    last_ns_addr = ramdump.addr_lookup('last_ns')
-    last_pet_addr = ramdump.addr_lookup('last_pet')
-    pet_delay_time_addr = ramdump.addr_lookup('delay_time')
-    dogstruct_addr = ramdump.addr_lookup('dogwork_struct')
+    jiffies_addr = ramdump.address_of('jiffies')
+    last_ns_addr = ramdump.address_of('last_ns')
+    last_pet_addr = ramdump.address_of('last_pet')
+    pet_delay_time_addr = ramdump.address_of('delay_time')
+    dogstruct_addr = ramdump.address_of('dogwork_struct')
 
     timer_offset = ramdump.field_offset('struct delayed_work', 'timer')
     timer_expires_offset = ramdump.field_offset(
diff --git a/linux-ramdump-parser-v2/parsers/workqueue.py b/linux-ramdump-parser-v2/parsers/workqueue.py
index 5df616d28c099852c8b807d7dfa9dec76d25b911..21c7b920fb72f79a9c3aa65598684d2783e42331 100644
--- a/linux-ramdump-parser-v2/parsers/workqueue.py
+++ b/linux-ramdump-parser-v2/parsers/workqueue.py
@@ -19,9 +19,8 @@ from parser_util import register_parser, RamParser
 class Workqueues(RamParser):
 
     def print_workqueue_state_3_0(self, ram_dump):
-        per_cpu_offset_addr = ram_dump.addr_lookup('__per_cpu_offset')
-        global_cwq_sym_addr = ram_dump.addr_lookup('global_cwq')
-        system_wq_addr = ram_dump.addr_lookup('system_long_wq')
+        per_cpu_offset_addr = ram_dump.address_of('__per_cpu_offset')
+        global_cwq_sym_addr = ram_dump.address_of('global_cwq')
 
         idle_list_offset = ram_dump.field_offset(
             'struct global_cwq', 'idle_list')
@@ -41,7 +40,7 @@ class Workqueues(RamParser):
             'struct worker', 'current_work')
         cpu_wq_offset = ram_dump.field_offset(
             'struct workqueue_struct', 'cpu_wq')
-        unbound_gcwq_addr = ram_dump.addr_lookup('unbound_global_cwq')
+        unbound_gcwq_addr = ram_dump.address_of('unbound_global_cwq')
 
         if per_cpu_offset_addr is None:
             per_cpu_offset0 = 0
@@ -188,8 +187,8 @@ class Workqueues(RamParser):
                     break
 
     def print_workqueue_state_3_7(self, ram_dump):
-        per_cpu_offset_addr = ram_dump.addr_lookup('__per_cpu_offset')
-        global_cwq_sym_addr = ram_dump.addr_lookup('global_cwq')
+        per_cpu_offset_addr = ram_dump.address_of('__per_cpu_offset')
+        global_cwq_sym_addr = ram_dump.address_of('global_cwq')
 
         pools_offset = ram_dump.field_offset('struct global_cwq', 'pools')
         worklist_offset = ram_dump.field_offset(
@@ -213,8 +212,7 @@ class Workqueues(RamParser):
         worker_pool_size = ram_dump.sizeof('struct worker_pool')
         pending_work_offset = ram_dump.field_offset(
             'struct worker_pool', 'worklist')
-        unbound_gcwq_addr = ram_dump.addr_lookup('unbound_global_cwq')
-        cpu_present_bits_addr = ram_dump.addr_lookup('cpu_present_bits')
+        cpu_present_bits_addr = ram_dump.address_of('cpu_present_bits')
         cpu_present_bits = ram_dump.read_word(cpu_present_bits_addr)
         cpus = bin(cpu_present_bits).count('1')
 
@@ -385,7 +383,7 @@ class Workqueues(RamParser):
             pass
 
     def print_workqueue_state_3_10(self, ram_dump):
-        cpu_worker_pools_addr = ram_dump.addr_lookup('cpu_worker_pools')
+        cpu_worker_pools_addr = ram_dump.address_of('cpu_worker_pools')
 
         busy_hash_offset = ram_dump.field_offset(
             'struct worker_pool', 'busy_hash')
diff --git a/linux-ramdump-parser-v2/qdss.py b/linux-ramdump-parser-v2/qdss.py
index f073ac7e972e1d603ba1b62b3891a1f2a0eab19e..08e2cf163e001adc2adc2c69919611c22ce3bf8f 100755
--- a/linux-ramdump-parser-v2/qdss.py
+++ b/linux-ramdump-parser-v2/qdss.py
@@ -441,7 +441,7 @@ class QDSSDump():
             dbgui_out.write('{0} ({1}): {2:x}\n'.format(
                 a, name, ram_dump.read_u32(self.dbgui_start + offset, False)))
 
-        addr = ram_dump.read_word(ram_dump.addr_lookup('dbgui_drvdata'))
+        addr = ram_dump.read_word(ram_dump.address_of('dbgui_drvdata'))
         addr_offset_offset = ram_dump.field_offset('struct dbgui_drvdata', 'addr_offset')
         data_offset_offset = ram_dump.field_offset('struct dbgui_drvdata', 'data_offset')
         size_offset = ram_dump.field_offset('struct dbgui_drvdata', 'size')
diff --git a/linux-ramdump-parser-v2/ramdump.py b/linux-ramdump-parser-v2/ramdump.py
index eba0b6b17b23d31ae33e346a64034194af713ca6..5abe6a6e2d35cbf73d9dae15e5498f8c050f6a10 100644
--- a/linux-ramdump-parser-v2/ramdump.py
+++ b/linux-ramdump-parser-v2/ramdump.py
@@ -67,8 +67,8 @@ class RamDump():
                 self.index = 0
 
         def __init__(self, ramdump):
-            start = ramdump.addr_lookup('__start_unwind_idx')
-            end = ramdump.addr_lookup('__stop_unwind_idx')
+            start = ramdump.address_of('__start_unwind_idx')
+            end = ramdump.address_of('__stop_unwind_idx')
             self.ramdump = ramdump
             if (start is None) or (end is None):
                 if ramdump.arm64:
@@ -484,7 +484,7 @@ class RamDump():
         # extra 4k is needed for LPAE. If it's 0x5000 below
         # PAGE_OFFSET + TEXT_OFFSET then we know we're using LPAE. For
         # non-LPAE it should be 0x4000 below PAGE_OFFSET + TEXT_OFFSET
-        swapper_pg_dir = self.addr_lookup('swapper_pg_dir')
+        swapper_pg_dir = self.address_of('swapper_pg_dir')
         if swapper_pg_dir is None:
             print_out_str('!!! Could not get the swapper page directory!')
             print_out_str(
@@ -492,7 +492,7 @@ class RamDump():
             print_out_str('!!! Exiting now')
             sys.exit(1)
         self.swapper_pg_dir_addr =  swapper_pg_dir - self.page_offset
-        self.kernel_text_offset = self.addr_lookup('stext') - self.page_offset
+        self.kernel_text_offset = self.address_of('stext') - self.page_offset
         pg_dir_size = self.kernel_text_offset - self.swapper_pg_dir_addr
         if self.arm64:
             print_out_str('Using 64bit MMU')
@@ -566,7 +566,7 @@ class RamDump():
         return f
 
     def get_config(self):
-        kconfig_addr = self.addr_lookup('kernel_config_data')
+        kconfig_addr = self.address_of('kernel_config_data')
         if kconfig_addr is None:
             return
         kconfig_size = self.sizeof('kernel_config_data')
@@ -605,7 +605,7 @@ class RamDump():
         return s in self.config
 
     def get_version(self):
-        banner_addr = self.addr_lookup('linux_banner')
+        banner_addr = self.address_of('linux_banner')
         if banner_addr is not None:
             # Don't try virt to phys yet, compute manually
             banner_addr = banner_addr - self.page_offset + self.phys_offset
@@ -632,7 +632,7 @@ class RamDump():
             return False
 
     def print_command_line(self):
-        command_addr = self.addr_lookup('saved_command_line')
+        command_addr = self.address_of('saved_command_line')
         if command_addr is not None:
             command_addr = self.read_word(command_addr)
             b = self.read_cstring(command_addr, 2048)
@@ -965,7 +965,7 @@ class RamDump():
         """
         if not isinstance(virt_or_name, basestring):
             return virt_or_name
-        return self.addr_lookup(virt_or_name)
+        return self.address_of(virt_or_name)
 
     def virt_to_phys(self, virt_or_name):
         """Does a virtual-to-physical address lookup of the virtual address or
@@ -981,7 +981,7 @@ class RamDump():
                 self.lookup_table.append((int(s[0], 16), s[2].rstrip()))
         stream.close()
 
-    def addr_lookup(self, symbol):
+    def address_of(self, symbol):
         try:
             return self.gdbmi.address_of(symbol)
         except gdbmi.GdbMIException:
@@ -1012,7 +1012,7 @@ class RamDump():
 
             The following:
 
-                my_arr_addr = dump.addr_lookup("my_arr")
+                my_arr_addr = dump.address_of("my_arr")
                 dump.read_word(dump.array_index(my_arr_addr, "int", 2))
 
         will return 42.
@@ -1209,7 +1209,8 @@ class RamDump():
         Example (intentionally not in doctest format since it would require
         a specific dump to be loaded to pass as a doctest):
 
-        PY>> print(dump.hexdump(dump.addr_lookup('linux_banner') - 0x100, 0x200))
+        PY>> addr = dump.address_of('linux_banner') - 0x100
+             print(dump.hexdump(addr, 0x200))
              c0afff6b: 0000 0000 0000 0000 0000 0000 0000 0000  ................
              c0afff7b: 0000 0000 0000 0000 0000 0000 0000 0000  ................
              c0afff8b: 0000 0000 0000 0000 0000 0000 0000 0000  ................
@@ -1256,7 +1257,7 @@ class RamDump():
         return ret
 
     def per_cpu_offset(self, cpu):
-        per_cpu_offset_addr = self.addr_lookup('__per_cpu_offset')
+        per_cpu_offset_addr = self.address_of('__per_cpu_offset')
         if per_cpu_offset_addr is None:
             return 0
         per_cpu_offset_addr_indexed = self.array_index(
@@ -1264,7 +1265,7 @@ class RamDump():
         return self.read_word(per_cpu_offset_addr_indexed)
 
     def get_num_cpus(self):
-        cpu_present_bits_addr = self.addr_lookup('cpu_present_bits')
+        cpu_present_bits_addr = self.address_of('cpu_present_bits')
         cpu_present_bits = self.read_word(cpu_present_bits_addr)
         return bin(cpu_present_bits).count('1')