class Metasm::ELF::Header

Public Instance Methods

set_default_values(elf) click to toggle source
Calls superclass method Metasm::SerialStruct#set_default_values
# File metasm/exe_format/elf_encode.rb, line 13
def set_default_values elf
        @magic     ||= ELF::MAGIC
        @e_class   ||= elf.bitsize.to_s
        @data      ||= (elf.endianness == :big ? 'MSB' : 'LSB')
        @version   ||= 'CURRENT'
        @i_version ||= @version
        @entry     ||= 0
        @phoff     ||= elf.segments.empty? ? 0 : elf.new_label('phdr')
        @shoff     ||= elf.sections.length <= 1 ? 0 : elf.new_label('shdr')
        @flags     ||= []
        @ehsize    ||= Header.sizeof(elf)
        @phentsize ||= Segment.sizeof(elf)
        @phnum     ||= elf.segments.length
        @shentsize ||= Section.sizeof(elf)
        @shnum     ||= elf.sections.length

        super(elf)
end