class Resilience::SystemTable
Attributes
pages[RW]
Public Class Methods
first_page_address()
click to toggle source
# File lib/resilience/tables/system.rb, line 21 def self.first_page_address PAGES[:first] * PAGE_SIZE end
new()
click to toggle source
# File lib/resilience/tables/system.rb, line 11 def initialize @pages = [] end
parse()
click to toggle source
# File lib/resilience/tables/system.rb, line 15 def self.parse table = new table.parse_pages table end
Public Instance Methods
parse_pages()
click to toggle source
# File lib/resilience/tables/system.rb, line 25 def parse_pages image.seek(self.class.first_page_address + ADDRESSES[:system_table_page]) system_table_page = image.read(8).unpack('Q').first system_table_address = system_table_page * PAGE_SIZE image.seek(system_table_address + ADDRESSES[:system_pages]) num_system_pages = image.read(4).unpack('L').first 0.upto(num_system_pages-1) do system_page_offset = image.read(4).unpack('L').first pos = image.pos image.seek(system_table_address + system_page_offset) system_page = image.read(8).unpack('Q').first @pages << system_page image.seek(pos) end end