Class: MachO::SegmentCommand

Inherits:
LoadCommand show all
Defined in:
lib/macho/load_commands.rb

Overview

A load command indicating that part of this file is to be mapped into the task's address space. Corresponds to LC_SEGMENT.

Constant Summary collapse

FORMAT =
"VVa16VVVVVVVV"
SIZEOF =
56

Instance Attribute Summary collapse

Attributes inherited from LoadCommand

#cmd, #cmdsize, #offset

Instance Method Summary collapse

Methods inherited from LoadCommand

new_from_bin, #to_s

Methods inherited from MachOStructure

bytesize, new_from_bin

Constructor Details

#initialize(raw_data, offset, cmd, cmdsize, segname, vmaddr, vmsize, fileoff, filesize, maxprot, initprot, nsects, flags) ⇒ SegmentCommand

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of SegmentCommand.



416
417
418
419
420
421
422
423
424
425
426
427
428
# File 'lib/macho/load_commands.rb', line 416

def initialize(raw_data, offset, cmd, cmdsize, segname, vmaddr, vmsize, fileoff,
    filesize, maxprot, initprot, nsects, flags)
  super(raw_data, offset, cmd, cmdsize)
  @segname = segname
  @vmaddr = vmaddr
  @vmsize = vmsize
  @fileoff = fileoff
  @filesize = filesize
  @maxprot = maxprot
  @initprot = initprot
  @nsects = nsects
  @flags = flags
end

Instance Attribute Details

#fileoffFixnum (readonly)

Returns the file offset of the segment.

Returns:

  • (Fixnum)

    the file offset of the segment



395
396
397
# File 'lib/macho/load_commands.rb', line 395

def fileoff
  @fileoff
end

#filesizeFixnum (readonly)

Returns the amount to map from the file.

Returns:

  • (Fixnum)

    the amount to map from the file



398
399
400
# File 'lib/macho/load_commands.rb', line 398

def filesize
  @filesize
end

#flagsFixnum (readonly)

Returns any flags associated with the segment.

Returns:

  • (Fixnum)

    any flags associated with the segment



410
411
412
# File 'lib/macho/load_commands.rb', line 410

def flags
  @flags
end

#initprotFixnum (readonly)

Returns the initial VM protection.

Returns:

  • (Fixnum)

    the initial VM protection



404
405
406
# File 'lib/macho/load_commands.rb', line 404

def initprot
  @initprot
end

#maxprotFixnum (readonly)

Returns the maximum VM protection.

Returns:

  • (Fixnum)

    the maximum VM protection



401
402
403
# File 'lib/macho/load_commands.rb', line 401

def maxprot
  @maxprot
end

#nsectsFixnum (readonly)

Returns the number of sections in the segment.

Returns:

  • (Fixnum)

    the number of sections in the segment



407
408
409
# File 'lib/macho/load_commands.rb', line 407

def nsects
  @nsects
end

#segnameString (readonly)

Returns the name of the segment, including null padding bytes.

Returns:

  • (String)

    the name of the segment, including null padding bytes



386
387
388
# File 'lib/macho/load_commands.rb', line 386

def segname
  @segname
end

#vmaddrFixnum (readonly)

Returns the memory address of the segment.

Returns:

  • (Fixnum)

    the memory address of the segment



389
390
391
# File 'lib/macho/load_commands.rb', line 389

def vmaddr
  @vmaddr
end

#vmsizeFixnum (readonly)

Returns the memory size of the segment.

Returns:

  • (Fixnum)

    the memory size of the segment



392
393
394
# File 'lib/macho/load_commands.rb', line 392

def vmsize
  @vmsize
end

Instance Method Details

#segment_nameString

Returns the segment's name, with any trailing NULL characters removed.

Returns:

  • (String)

    the segment's name, with any trailing NULL characters removed



431
432
433
# File 'lib/macho/load_commands.rb', line 431

def segment_name
  @segname.delete("\x00")
end