Module: Ronin::Support::Binary::CTypes::Arch::X86

Includes:
LittleEndian
Defined in:
lib/ronin/support/binary/ctypes/arch/x86.rb

Overview

Represents the C types for the x86 architecture.

Constant Summary collapse

ADDRESS_SIZE =

The size of a pointer in bytes on x86.

4
LONG =

The long type.

LittleEndian::INT32
ULONG =

The unsigned long type.

LittleEndian::UINT32
MACHINE_WORD =

The "machine word" type.

LittleEndian::UINT32
POINTER =

The void * type.

MACHINE_WORD
TYPES =

The x86 types.

LittleEndian::TYPES.merge(
  long:  self::LONG,
  ulong: self::ULONG,

  machine_word: self::MACHINE_WORD,
  pointer:      self::POINTER
)

Constants included from LittleEndian

LittleEndian::BYTE, LittleEndian::DOUBLE, LittleEndian::DWORD, LittleEndian::FLOAT, LittleEndian::FLOAT32, LittleEndian::FLOAT64, LittleEndian::INT, LittleEndian::INT16, LittleEndian::INT32, LittleEndian::INT64, LittleEndian::INT8, LittleEndian::LONG_LONG, LittleEndian::QWORD, LittleEndian::SHORT, LittleEndian::UINT, LittleEndian::UINT16, LittleEndian::UINT32, LittleEndian::UINT64, LittleEndian::UINT8, LittleEndian::ULONG_LONG, LittleEndian::USHORT, LittleEndian::WORD

Constants included from CharTypes

CharTypes::CHAR, CharTypes::STRING, CharTypes::UCHAR

Class Method Summary collapse

Class Method Details

.[](name) ⇒ Type

Fetches the type from TYPES.

Parameters:

  • name (Symbol)

    The type name to lookup.

Returns:

Raises:

  • (ArgumentError)

    The type name was unknown.



68
69
70
71
72
# File 'lib/ronin/support/binary/ctypes/arch/x86.rb', line 68

def self.[](name)
  TYPES.fetch(name) do
    raise(ArgumentError,"unknown x86 type: #{name.inspect}")
  end
end