brew/Library/Homebrew/sorbet/rbi/gems/elftools@1.2.0.rbi

4289 lines
130 KiB
Plaintext
Raw Normal View History

# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `elftools` gem.
# Please instead update this file by running `bin/tapioca gem elftools`.
2023-12-14 15:34:15 +00:00
# The ELF parsing tools!
# Main entry point is {ELFTools::ELFFile}, see it
# for more information.
#
# source://elftools//lib/elftools/constants.rb#3
module ELFTools; end
2023-12-14 15:34:15 +00:00
# Define constants from elf.h.
# Mostly refer from https://github.com/torvalds/linux/blob/master/include/uapi/linux/elf.h
# and binutils/elfcpp/elfcpp.h.
#
# source://elftools//lib/elftools/constants.rb#7
module ELFTools::Constants
include ::ELFTools::Constants::DF
include ::ELFTools::Constants::DT
include ::ELFTools::Constants::EM
include ::ELFTools::Constants::ET
include ::ELFTools::Constants::PF
include ::ELFTools::Constants::PT
include ::ELFTools::Constants::SHN
include ::ELFTools::Constants::SHF
include ::ELFTools::Constants::SHT
include ::ELFTools::Constants::STB
include ::ELFTools::Constants::STT
end
2023-12-14 15:34:15 +00:00
# Values of `d_un.d_val' in the DT_FLAGS and DT_FLAGS_1 entry.
#
# source://elftools//lib/elftools/constants.rb#12
module ELFTools::Constants::DF; end
2023-12-14 15:34:15 +00:00
# Configuration alternative created.
#
# source://elftools//lib/elftools/constants.rb#32
ELFTools::Constants::DF::DF_1_CONFALT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Direct binding enabled.
#
# source://elftools//lib/elftools/constants.rb#27
ELFTools::Constants::DF::DF_1_DIRECT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Disp reloc applied at build time.
#
# source://elftools//lib/elftools/constants.rb#34
ELFTools::Constants::DF::DF_1_DISPRELDNE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Disp reloc applied at run-time.
#
# source://elftools//lib/elftools/constants.rb#35
ELFTools::Constants::DF::DF_1_DISPRELPND = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object is modified after built.
#
# source://elftools//lib/elftools/constants.rb#40
ELFTools::Constants::DF::DF_1_EDITED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Filtee terminates filters search.
#
# source://elftools//lib/elftools/constants.rb#33
ELFTools::Constants::DF::DF_1_ENDFILTEE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Set RTLD_GLOBAL for this object.
#
# source://elftools//lib/elftools/constants.rb#20
ELFTools::Constants::DF::DF_1_GLOBAL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Global auditing required.
#
# source://elftools//lib/elftools/constants.rb#43
ELFTools::Constants::DF::DF_1_GLOBAUDIT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Set RTLD_GROUP for this object.
#
# source://elftools//lib/elftools/constants.rb#21
ELFTools::Constants::DF::DF_1_GROUP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#37
ELFTools::Constants::DF::DF_1_IGNMULDEF = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Set RTLD_INITFIRST for this object
#
# source://elftools//lib/elftools/constants.rb#24
ELFTools::Constants::DF::DF_1_INITFIRST = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object is used to interpose.
#
# source://elftools//lib/elftools/constants.rb#29
ELFTools::Constants::DF::DF_1_INTERPOSE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#47
ELFTools::Constants::DF::DF_1_KMOD = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Trigger filtee loading at runtime.
#
# source://elftools//lib/elftools/constants.rb#23
ELFTools::Constants::DF::DF_1_LOADFLTR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#49
ELFTools::Constants::DF::DF_1_NOCOMMON = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Ignore default lib search path.
#
# source://elftools//lib/elftools/constants.rb#30
ELFTools::Constants::DF::DF_1_NODEFLIB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Set RTLD_NODELETE for this object.
#
# source://elftools//lib/elftools/constants.rb#22
ELFTools::Constants::DF::DF_1_NODELETE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object has no-direct binding.
#
# source://elftools//lib/elftools/constants.rb#36
ELFTools::Constants::DF::DF_1_NODIRECT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object can't be dldump'ed.
#
# source://elftools//lib/elftools/constants.rb#31
ELFTools::Constants::DF::DF_1_NODUMP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#39
ELFTools::Constants::DF::DF_1_NOHDR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#38
ELFTools::Constants::DF::DF_1_NOKSYMS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Set RTLD_NOOPEN for this object.
#
# source://elftools//lib/elftools/constants.rb#25
ELFTools::Constants::DF::DF_1_NOOPEN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#41
ELFTools::Constants::DF::DF_1_NORELOC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Set RTLD_NOW for this object.
#
# source://elftools//lib/elftools/constants.rb#19
ELFTools::Constants::DF::DF_1_NOW = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# $ORIGIN must be handled.
#
# source://elftools//lib/elftools/constants.rb#26
ELFTools::Constants::DF::DF_1_ORIGIN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object is a position-independent executable.
#
# source://elftools//lib/elftools/constants.rb#46
ELFTools::Constants::DF::DF_1_PIE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Singleton symbols are used.
#
# source://elftools//lib/elftools/constants.rb#44
ELFTools::Constants::DF::DF_1_SINGLETON = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#45
ELFTools::Constants::DF::DF_1_STUB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object has individual interposers.
#
# source://elftools//lib/elftools/constants.rb#42
ELFTools::Constants::DF::DF_1_SYMINTPOSE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#28
ELFTools::Constants::DF::DF_1_TRANS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#48
ELFTools::Constants::DF::DF_1_WEAKFILTER = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# No lazy binding for this object
#
# source://elftools//lib/elftools/constants.rb#16
ELFTools::Constants::DF::DF_BIND_NOW = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object may use DF_ORIGIN
#
# source://elftools//lib/elftools/constants.rb#13
ELFTools::Constants::DF::DF_ORIGIN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Module uses the static TLS model
#
# source://elftools//lib/elftools/constants.rb#17
ELFTools::Constants::DF::DF_STATIC_TLS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol resolutions starts here
#
# source://elftools//lib/elftools/constants.rb#14
ELFTools::Constants::DF::DF_SYMBOLIC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Object contains text relocations
#
# source://elftools//lib/elftools/constants.rb#15
ELFTools::Constants::DF::DF_TEXTREL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Dynamic table types, records in +d_tag+.
#
# source://elftools//lib/elftools/constants.rb#54
module ELFTools::Constants::DT; end
2023-12-14 15:34:15 +00:00
# see {DT_ADDRRNGLO}
#
# source://elftools//lib/elftools/constants.rb#115
ELFTools::Constants::DT::DT_ADDRRNGHI = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {DT_ADDRRNGLO} and {DT_ADDRRNGHI} use the +d_un.d_ptr+ field of the dynamic structure.
#
# source://elftools//lib/elftools/constants.rb#103
ELFTools::Constants::DT::DT_ADDRRNGLO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#111
ELFTools::Constants::DT::DT_AUDIT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#187
ELFTools::Constants::DT::DT_AUXILIARY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# if the loader needs to do relocate now, superseded by the DF_BIND_NOW flag
#
# source://elftools//lib/elftools/constants.rb#79
ELFTools::Constants::DT::DT_BIND_NOW = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#109
ELFTools::Constants::DT::DT_CONFIG = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# for debugging
#
# source://elftools//lib/elftools/constants.rb#76
ELFTools::Constants::DT::DT_DEBUG = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#110
ELFTools::Constants::DT::DT_DEPAUDIT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# just a lower bound
#
# source://elftools//lib/elftools/constants.rb#86
ELFTools::Constants::DT::DT_ENCODING = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#189
ELFTools::Constants::DT::DT_FILTER = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# where the termination function is
#
# source://elftools//lib/elftools/constants.rb#68
ELFTools::Constants::DT::DT_FINI = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of fini array
#
# source://elftools//lib/elftools/constants.rb#81
ELFTools::Constants::DT::DT_FINI_ARRAY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# total size of fini array
#
# source://elftools//lib/elftools/constants.rb#83
ELFTools::Constants::DT::DT_FINI_ARRAYSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# flags
#
# source://elftools//lib/elftools/constants.rb#85
ELFTools::Constants::DT::DT_FLAGS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# flags
#
# source://elftools//lib/elftools/constants.rb#120
ELFTools::Constants::DT::DT_FLAGS_1 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#107
ELFTools::Constants::DT::DT_GNU_CONFLICT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# the gnu hash
#
# source://elftools//lib/elftools/constants.rb#104
ELFTools::Constants::DT::DT_GNU_HASH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#108
ELFTools::Constants::DT::DT_GNU_LIBLIST = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of symbol hash table
#
# source://elftools//lib/elftools/constants.rb#59
ELFTools::Constants::DT::DT_HASH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {DT_LOOS}
#
# source://elftools//lib/elftools/constants.rb#96
ELFTools::Constants::DT::DT_HIOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {DT_LOPROC}
#
# source://elftools//lib/elftools/constants.rb#191
ELFTools::Constants::DT::DT_HIPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# where the initialization function is
#
# source://elftools//lib/elftools/constants.rb#67
ELFTools::Constants::DT::DT_INIT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address init array
#
# source://elftools//lib/elftools/constants.rb#80
ELFTools::Constants::DT::DT_INIT_ARRAY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# total size of init array
#
# source://elftools//lib/elftools/constants.rb#82
ELFTools::Constants::DT::DT_INIT_ARRAYSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of relocation entries associated solely with procedure linkage table
#
# source://elftools//lib/elftools/constants.rb#78
ELFTools::Constants::DT::DT_JMPREL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {DT_LOOS} and {DT_HIOS} are reserved for operating system-specific semantics.
#
# source://elftools//lib/elftools/constants.rb#95
ELFTools::Constants::DT::DT_LOOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {DT_LOPROC} and {DT_HIPROC} are reserved for processor-specific semantics.
#
# source://elftools//lib/elftools/constants.rb#127
ELFTools::Constants::DT::DT_LOPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of auxiliary +.dynamic+
#
# source://elftools//lib/elftools/constants.rb#181
ELFTools::Constants::DT::DT_MIPS_AUX_DYNAMIC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# base address of the segment
#
# source://elftools//lib/elftools/constants.rb#144
ELFTools::Constants::DT::DT_MIPS_BASE_ADDRESS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# size of compact relocation section (O32)
#
# source://elftools//lib/elftools/constants.rb#179
ELFTools::Constants::DT::DT_MIPS_COMPACT_SIZE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of +.conflict+ section
#
# source://elftools//lib/elftools/constants.rb#146
ELFTools::Constants::DT::DT_MIPS_CONFLICT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in the +.conflict+ section
#
# source://elftools//lib/elftools/constants.rb#149
ELFTools::Constants::DT::DT_MIPS_CONFLICTNO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# flags indicating information about C++ flavor
#
# source://elftools//lib/elftools/constants.rb#166
ELFTools::Constants::DT::DT_MIPS_CXX_FLAGS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta C++ class definition
#
# source://elftools//lib/elftools/constants.rb#156
ELFTools::Constants::DT::DT_MIPS_DELTA_CLASS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta symbols that hold class declarations
#
# source://elftools//lib/elftools/constants.rb#164
ELFTools::Constants::DT::DT_MIPS_DELTA_CLASSSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in {DT_MIPS_DELTA_CLASSSYM}
#
# source://elftools//lib/elftools/constants.rb#165
ELFTools::Constants::DT::DT_MIPS_DELTA_CLASSSYM_NO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in {DT_MIPS_DELTA_CLASS}
#
# source://elftools//lib/elftools/constants.rb#157
ELFTools::Constants::DT::DT_MIPS_DELTA_CLASS_NO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta C++ class instances
#
# source://elftools//lib/elftools/constants.rb#158
ELFTools::Constants::DT::DT_MIPS_DELTA_INSTANCE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in {DT_MIPS_DELTA_INSTANCE}
#
# source://elftools//lib/elftools/constants.rb#159
ELFTools::Constants::DT::DT_MIPS_DELTA_INSTANCE_NO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta relocations
#
# source://elftools//lib/elftools/constants.rb#160
ELFTools::Constants::DT::DT_MIPS_DELTA_RELOC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in {DT_MIPS_DELTA_RELOC}
#
# source://elftools//lib/elftools/constants.rb#161
ELFTools::Constants::DT::DT_MIPS_DELTA_RELOC_NO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta symbols that Delta relocations refer to
#
# source://elftools//lib/elftools/constants.rb#162
ELFTools::Constants::DT::DT_MIPS_DELTA_SYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in {DT_MIPS_DELTA_SYM}
#
# source://elftools//lib/elftools/constants.rb#163
ELFTools::Constants::DT::DT_MIPS_DELTA_SYM_NO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#175
ELFTools::Constants::DT::DT_MIPS_DYNSTR_ALIGN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# 32 bits of flags
#
# source://elftools//lib/elftools/constants.rb#143
ELFTools::Constants::DT::DT_MIPS_FLAGS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# index of first dynamic symbol in global offset table
#
# source://elftools//lib/elftools/constants.rb#153
ELFTools::Constants::DT::DT_MIPS_GOTSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GP value for auxiliary GOTs
#
# source://elftools//lib/elftools/constants.rb#180
ELFTools::Constants::DT::DT_MIPS_GP_VALUE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GOT index of the first PTE for a hidden symbol
#
# source://elftools//lib/elftools/constants.rb#171
ELFTools::Constants::DT::DT_MIPS_HIDDEN_GOTIDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of page table entries in global offset table
#
# source://elftools//lib/elftools/constants.rb#154
ELFTools::Constants::DT::DT_MIPS_HIPAGENO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# checksum of external strings and common sizes
#
# source://elftools//lib/elftools/constants.rb#141
ELFTools::Constants::DT::DT_MIPS_ICHECKSUM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of +.interface+
#
# source://elftools//lib/elftools/constants.rb#174
ELFTools::Constants::DT::DT_MIPS_INTERFACE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# size of the +.interface+ section
#
# source://elftools//lib/elftools/constants.rb#176
ELFTools::Constants::DT::DT_MIPS_INTERFACE_SIZE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# index of version string in string table
#
# source://elftools//lib/elftools/constants.rb#142
ELFTools::Constants::DT::DT_MIPS_IVERSION = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of +.liblist+ section
#
# source://elftools//lib/elftools/constants.rb#147
ELFTools::Constants::DT::DT_MIPS_LIBLIST = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in the +.liblist+ section
#
# source://elftools//lib/elftools/constants.rb#150
ELFTools::Constants::DT::DT_MIPS_LIBLISTNO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GOT index of the first PTE for a segment
#
# source://elftools//lib/elftools/constants.rb#169
ELFTools::Constants::DT::DT_MIPS_LOCALPAGE_GOTIDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GOT index of the first PTE for a local symbol
#
# source://elftools//lib/elftools/constants.rb#170
ELFTools::Constants::DT::DT_MIPS_LOCAL_GOTIDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of local global offset table entries
#
# source://elftools//lib/elftools/constants.rb#148
ELFTools::Constants::DT::DT_MIPS_LOCAL_GOTNO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#145
ELFTools::Constants::DT::DT_MIPS_MSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of +.MIPS.options+
#
# source://elftools//lib/elftools/constants.rb#173
ELFTools::Constants::DT::DT_MIPS_OPTIONS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# default suffix of DSO to be added by rld on +dlopen()+ calls
#
# source://elftools//lib/elftools/constants.rb#178
ELFTools::Constants::DT::DT_MIPS_PERF_SUFFIX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#167
ELFTools::Constants::DT::DT_MIPS_PIXIE_INIT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of the base of the PLTGOT
#
# source://elftools//lib/elftools/constants.rb#182
ELFTools::Constants::DT::DT_MIPS_PLTGOT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GOT index of the first PTE for a protected symbol
#
# source://elftools//lib/elftools/constants.rb#172
ELFTools::Constants::DT::DT_MIPS_PROTECTED_GOTIDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of run time loader map, used for debugging
#
# source://elftools//lib/elftools/constants.rb#155
ELFTools::Constants::DT::DT_MIPS_RLD_MAP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# relative offset of run time loader map
#
# source://elftools//lib/elftools/constants.rb#184
ELFTools::Constants::DT::DT_MIPS_RLD_MAP_REL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# size of +rld_text_resolve+ function stored in the GOT
#
# source://elftools//lib/elftools/constants.rb#177
ELFTools::Constants::DT::DT_MIPS_RLD_TEXT_RESOLVE_ADDR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# 32 bit version number for runtime linker interface
#
# source://elftools//lib/elftools/constants.rb#139
ELFTools::Constants::DT::DT_MIPS_RLD_VERSION = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# base of a writable PLT
#
# source://elftools//lib/elftools/constants.rb#183
ELFTools::Constants::DT::DT_MIPS_RWPLT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of +.MIPS.symlib+
#
# source://elftools//lib/elftools/constants.rb#168
ELFTools::Constants::DT::DT_MIPS_SYMBOL_LIB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in the +.dynsym+ section
#
# source://elftools//lib/elftools/constants.rb#151
ELFTools::Constants::DT::DT_MIPS_SYMTABNO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# time stamp
#
# source://elftools//lib/elftools/constants.rb#140
ELFTools::Constants::DT::DT_MIPS_TIME_STAMP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# index of first external dynamic symbol not referenced locally
#
# source://elftools//lib/elftools/constants.rb#152
ELFTools::Constants::DT::DT_MIPS_UNREFEXTNO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GNU-style hash table with xlat
#
# source://elftools//lib/elftools/constants.rb#185
ELFTools::Constants::DT::DT_MIPS_XHASH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#113
ELFTools::Constants::DT::DT_MOVETAB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# libraries need to be linked by loader
#
# source://elftools//lib/elftools/constants.rb#56
ELFTools::Constants::DT::DT_NEEDED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# marks the end of the _DYNAMIC array
#
# source://elftools//lib/elftools/constants.rb#55
ELFTools::Constants::DT::DT_NULL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of procedure linkage table or global offset table
#
# source://elftools//lib/elftools/constants.rb#58
ELFTools::Constants::DT::DT_PLTGOT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#112
ELFTools::Constants::DT::DT_PLTPAD = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# type of relocation entry, either {DT_REL} or {DT_RELA}
#
# source://elftools//lib/elftools/constants.rb#75
ELFTools::Constants::DT::DT_PLTREL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# total size of relocation entries
#
# source://elftools//lib/elftools/constants.rb#57
ELFTools::Constants::DT::DT_PLTRELSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# start of the .glink section
#
# source://elftools//lib/elftools/constants.rb#132
ELFTools::Constants::DT::DT_PPC64_GLINK = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# start of the .opd section
#
# source://elftools//lib/elftools/constants.rb#133
ELFTools::Constants::DT::DT_PPC64_OPD = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# size of the .opd section
#
# source://elftools//lib/elftools/constants.rb#134
ELFTools::Constants::DT::DT_PPC64_OPDSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# whether various optimisations are possible
#
# source://elftools//lib/elftools/constants.rb#135
ELFTools::Constants::DT::DT_PPC64_OPT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# global offset table
#
# source://elftools//lib/elftools/constants.rb#129
ELFTools::Constants::DT::DT_PPC_GOT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# whether various optimisations are possible
#
# source://elftools//lib/elftools/constants.rb#130
ELFTools::Constants::DT::DT_PPC_OPT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# pre-initialization functions array
#
# source://elftools//lib/elftools/constants.rb#87
ELFTools::Constants::DT::DT_PREINIT_ARRAY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# pre-initialization functions array size (bytes)
#
# source://elftools//lib/elftools/constants.rb#88
ELFTools::Constants::DT::DT_PREINIT_ARRAYSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# similar to {DT_RELA}
#
# source://elftools//lib/elftools/constants.rb#72
ELFTools::Constants::DT::DT_REL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of a relocation table
#
# source://elftools//lib/elftools/constants.rb#62
ELFTools::Constants::DT::DT_RELA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# relative relocation count
#
# source://elftools//lib/elftools/constants.rb#118
ELFTools::Constants::DT::DT_RELACOUNT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# size of each entry in the {DT_RELA} table
#
# source://elftools//lib/elftools/constants.rb#64
ELFTools::Constants::DT::DT_RELAENT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# total size of the {DT_RELA} table
#
# source://elftools//lib/elftools/constants.rb#63
ELFTools::Constants::DT::DT_RELASZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# relative relocation count
#
# source://elftools//lib/elftools/constants.rb#119
ELFTools::Constants::DT::DT_RELCOUNT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# size of each entry in the {DT_REL} table
#
# source://elftools//lib/elftools/constants.rb#74
ELFTools::Constants::DT::DT_RELENT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#91
ELFTools::Constants::DT::DT_RELR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#92
ELFTools::Constants::DT::DT_RELRENT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#90
ELFTools::Constants::DT::DT_RELRSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# total size of the {DT_REL} table
#
# source://elftools//lib/elftools/constants.rb#73
ELFTools::Constants::DT::DT_RELSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# has been superseded by {DT_RUNPATH}
#
# source://elftools//lib/elftools/constants.rb#70
ELFTools::Constants::DT::DT_RPATH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# path of libraries for searching
#
# source://elftools//lib/elftools/constants.rb#84
ELFTools::Constants::DT::DT_RUNPATH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# the shared object name
#
# source://elftools//lib/elftools/constants.rb#69
ELFTools::Constants::DT::DT_SONAME = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# index of an +STT_SPARC_REGISTER+ symbol within the {DT_SYMTAB} table
#
# source://elftools//lib/elftools/constants.rb#137
ELFTools::Constants::DT::DT_SPARC_REGISTER = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# total size of {DT_STRTAB}
#
# source://elftools//lib/elftools/constants.rb#65
ELFTools::Constants::DT::DT_STRSZ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of string table
#
# source://elftools//lib/elftools/constants.rb#60
ELFTools::Constants::DT::DT_STRTAB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# has been superseded by the DF_SYMBOLIC flag
#
# source://elftools//lib/elftools/constants.rb#71
ELFTools::Constants::DT::DT_SYMBOLIC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# size of each entry in {DT_SYMTAB}
#
# source://elftools//lib/elftools/constants.rb#66
ELFTools::Constants::DT::DT_SYMENT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#114
ELFTools::Constants::DT::DT_SYMINFO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of symbol table
#
# source://elftools//lib/elftools/constants.rb#61
ELFTools::Constants::DT::DT_SYMTAB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of the +SHT_SYMTAB_SHNDX+ section associated with {DT_SYMTAB} table
#
# source://elftools//lib/elftools/constants.rb#89
ELFTools::Constants::DT::DT_SYMTAB_SHNDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# has been superseded by the DF_TEXTREL flag
#
# source://elftools//lib/elftools/constants.rb#77
ELFTools::Constants::DT::DT_TEXTREL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#106
ELFTools::Constants::DT::DT_TLSDESC_GOT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#105
ELFTools::Constants::DT::DT_TLSDESC_PLT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#188
ELFTools::Constants::DT::DT_USED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {DT_VALRNGLO}
#
# source://elftools//lib/elftools/constants.rb#100
ELFTools::Constants::DT::DT_VALRNGHI = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {DT_VALRNGLO} and {DT_VALRNGHI} use the +d_un.d_val+ field of the dynamic structure.
#
# source://elftools//lib/elftools/constants.rb#99
ELFTools::Constants::DT::DT_VALRNGLO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of version definition table
#
# source://elftools//lib/elftools/constants.rb#121
ELFTools::Constants::DT::DT_VERDEF = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in {DT_VERDEF}
#
# source://elftools//lib/elftools/constants.rb#122
ELFTools::Constants::DT::DT_VERDEFNUM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address of version dependency table
#
# source://elftools//lib/elftools/constants.rb#123
ELFTools::Constants::DT::DT_VERNEED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# number of entries in {DT_VERNEED}
#
# source://elftools//lib/elftools/constants.rb#124
ELFTools::Constants::DT::DT_VERNEEDNUM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# section address of .gnu.version
#
# source://elftools//lib/elftools/constants.rb#117
ELFTools::Constants::DT::DT_VERSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ELF magic header
#
# source://elftools//lib/elftools/constants.rb#9
ELFTools::Constants::ELFMAG = T.let(T.unsafe(nil), String)
2023-12-14 15:34:15 +00:00
# These constants define the various ELF target machines.
#
# source://elftools//lib/elftools/constants.rb#196
module ELFTools::Constants::EM
class << self
2023-12-14 15:34:15 +00:00
# Return the architecture name according to +val+.
# Used by {ELFTools::ELFFile#machine}.
#
# Only supports famous archs.
#
# @example
# mapping(3)
# #=> 'Intel 80386'
# mapping(6)
# #=> 'Intel 80386'
# mapping(62)
# #=> 'Advanced Micro Devices X86-64'
# mapping(1337)
# #=> '<unknown>: 0x539'
# @param val [Integer] Value of +e_machine+.
# @return [String] Name of architecture.
#
# source://elftools//lib/elftools/constants.rb#427
def mapping(val); end
end
end
2023-12-14 15:34:15 +00:00
# Intel 80386
#
# source://elftools//lib/elftools/constants.rb#200
ELFTools::Constants::EM::EM_386 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Intel 80486
#
# source://elftools//lib/elftools/constants.rb#203
ELFTools::Constants::EM::EM_486 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Tachyum
#
# source://elftools//lib/elftools/constants.rb#397
ELFTools::Constants::EM::EM_56800EF = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas 78K0R
#
# source://elftools//lib/elftools/constants.rb#358
ELFTools::Constants::EM::EM_56800EX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Kalray VLIW core of the MPPA processor family
#
# source://elftools//lib/elftools/constants.rb#392
ELFTools::Constants::EM::EM_65816 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola MC68HC08 Microcontroller
#
# source://elftools//lib/elftools/constants.rb#256
ELFTools::Constants::EM::EM_68HC05 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola MC68HC11 Microcontroller
#
# source://elftools//lib/elftools/constants.rb#255
ELFTools::Constants::EM::EM_68HC08 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola MC68HC16 Microcontroller
#
# source://elftools//lib/elftools/constants.rb#254
ELFTools::Constants::EM::EM_68HC11 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola Coldfire
#
# source://elftools//lib/elftools/constants.rb#237
ELFTools::Constants::EM::EM_68HC12 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroelectronics ST7 8-bit microcontroller
#
# source://elftools//lib/elftools/constants.rb#253
ELFTools::Constants::EM::EM_68HC16 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola 68000
#
# source://elftools//lib/elftools/constants.rb#201
ELFTools::Constants::EM::EM_68K = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Broadcom VideoCore V processor
#
# source://elftools//lib/elftools/constants.rb#357
ELFTools::Constants::EM::EM_78K0R = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# QUALCOMM DSP6 Processor
#
# source://elftools//lib/elftools/constants.rb#324
ELFTools::Constants::EM::EM_8051 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Intel 80860
#
# source://elftools//lib/elftools/constants.rb#204
ELFTools::Constants::EM::EM_860 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola 88000
#
# source://elftools//lib/elftools/constants.rb#202
ELFTools::Constants::EM::EM_88K = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Sun's "v8plus"
#
# source://elftools//lib/elftools/constants.rb#216
ELFTools::Constants::EM::EM_960 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Intel K1OM
#
# source://elftools//lib/elftools/constants.rb#342
ELFTools::Constants::EM::EM_AARCH64 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# This is an interim value that we will use until the committee comes up with a final number.
#
# source://elftools//lib/elftools/constants.rb#402
ELFTools::Constants::EM::EM_ALPHA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Icera Semiconductor Inc. Deep Execution Processor
#
# source://elftools//lib/elftools/constants.rb#297
ELFTools::Constants::EM::EM_ALTERA_NIOS2 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Moxie processor family
#
# source://elftools//lib/elftools/constants.rb#378
ELFTools::Constants::EM::EM_AMDGPU = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Siemens Tricore embedded processor
#
# source://elftools//lib/elftools/constants.rb#229
ELFTools::Constants::EM::EM_ARC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Sharp embedded microprocessor
#
# source://elftools//lib/elftools/constants.rb#293
ELFTools::Constants::EM::EM_ARCA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# OpenRISC 32-bit embedded processor
#
# source://elftools//lib/elftools/constants.rb#277
ELFTools::Constants::EM::EM_ARC_COMPACT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# KIPO-KAIST Core-A 2nd generation processor family
#
# source://elftools//lib/elftools/constants.rb#353
ELFTools::Constants::EM::EM_ARC_COMPACT2 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# MOS Technology MCS 6502 processor
#
# source://elftools//lib/elftools/constants.rb#390
ELFTools::Constants::EM::EM_ARC_COMPACT3 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# C-SKY processor family
#
# source://elftools//lib/elftools/constants.rb#388
ELFTools::Constants::EM::EM_ARC_COMPACT3_64 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola M*Core
#
# source://elftools//lib/elftools/constants.rb#225
ELFTools::Constants::EM::EM_ARM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# SiTera Prism
#
# source://elftools//lib/elftools/constants.rb#267
ELFTools::Constants::EM::EM_AVR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ARM 64 bit
#
# source://elftools//lib/elftools/constants.rb#343
ELFTools::Constants::EM::EM_AVR32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Freescale 56800EX Digital Signal Controller (DSC)
#
# source://elftools//lib/elftools/constants.rb#359
ELFTools::Constants::EM::EM_BA1 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Beyond BA1 CPU architecture
#
# source://elftools//lib/elftools/constants.rb#360
ELFTools::Constants::EM::EM_BA2 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# TI msp430 micro controller
#
# source://elftools//lib/elftools/constants.rb#290
ELFTools::Constants::EM::EM_BLACKFIN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# CEVA X2 Processor Family
#
# source://elftools//lib/elftools/constants.rb#382
ELFTools::Constants::EM::EM_BPF = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola XGATE embedded processor
#
# source://elftools//lib/elftools/constants.rb#300
ELFTools::Constants::EM::EM_C116 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# KM211 KVARC processor
#
# source://elftools//lib/elftools/constants.rb#369
ELFTools::Constants::EM::EM_CDP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Microchip Technology dsPIC30F Digital Signal Controller
#
# source://elftools//lib/elftools/constants.rb#303
ELFTools::Constants::EM::EM_CE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Lanai 32-bit processor
#
# source://elftools//lib/elftools/constants.rb#380
ELFTools::Constants::EM::EM_CEVA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# CEVA Processor Architecture Family
#
# source://elftools//lib/elftools/constants.rb#381
ELFTools::Constants::EM::EM_CEVA_X2 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Tilera TILE-Gx
#
# source://elftools//lib/elftools/constants.rb#350
ELFTools::Constants::EM::EM_CLOUDSHIELD = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Paneve CDP architecture family
#
# source://elftools//lib/elftools/constants.rb#370
ELFTools::Constants::EM::EM_COGE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Stanford MIPS-X
#
# source://elftools//lib/elftools/constants.rb#236
ELFTools::Constants::EM::EM_COLDFIRE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cognitive Smart Memory Processor
#
# source://elftools//lib/elftools/constants.rb#371
ELFTools::Constants::EM::EM_COOL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# CloudShield architecture family
#
# source://elftools//lib/elftools/constants.rb#351
ELFTools::Constants::EM::EM_COREA_1ST = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# KIPO-KAIST Core-A 1st generation processor family
#
# source://elftools//lib/elftools/constants.rb#352
ELFTools::Constants::EM::EM_COREA_2ND = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# MAX Processor
#
# source://elftools//lib/elftools/constants.rb#287
ELFTools::Constants::EM::EM_CR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cyan Technology eCOG16 family
#
# source://elftools//lib/elftools/constants.rb#337
ELFTools::Constants::EM::EM_CR16 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# M2000 Reconfigurable RISC Microprocessor
#
# source://elftools//lib/elftools/constants.rb#332
ELFTools::Constants::EM::EM_CRAYNV2 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Digital VAX
#
# source://elftools//lib/elftools/constants.rb#260
ELFTools::Constants::EM::EM_CRIS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Altera Nios II soft-core processor
#
# source://elftools//lib/elftools/constants.rb#298
ELFTools::Constants::EM::EM_CRX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# NEC Vector Engine
#
# source://elftools//lib/elftools/constants.rb#387
ELFTools::Constants::EM::EM_CSKY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Nanoradio Optimized RISC
#
# source://elftools//lib/elftools/constants.rb#373
ELFTools::Constants::EM::EM_CSR_KALIMBA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Xilinx MicroBlaze
#
# source://elftools//lib/elftools/constants.rb#348
ELFTools::Constants::EM::EM_CUDA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Bogus old m32r magic number, used by old tools.
#
# source://elftools//lib/elftools/constants.rb#405
ELFTools::Constants::EM::EM_CYGNUS_M32R = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Also Panasonic/MEI MN10300, AM33
#
# source://elftools//lib/elftools/constants.rb#409
ELFTools::Constants::EM::EM_CYGNUS_MN10300 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroelectronics 64bit VLIW Data Signal Processor
#
# source://elftools//lib/elftools/constants.rb#320
ELFTools::Constants::EM::EM_CYPRESS_M8C = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Fujitsu FR30
#
# source://elftools//lib/elftools/constants.rb#269
ELFTools::Constants::EM::EM_D10V = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Mitsubishi D10V
#
# source://elftools//lib/elftools/constants.rb#270
ELFTools::Constants::EM::EM_D30V = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Sunplus S+core7 RISC processor
#
# source://elftools//lib/elftools/constants.rb#310
ELFTools::Constants::EM::EM_DSP24 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas M16C series microprocessors
#
# source://elftools//lib/elftools/constants.rb#302
ELFTools::Constants::EM::EM_DSPIC30F = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# eXcess: 16/32/64-bit configurable embedded CPU
#
# source://elftools//lib/elftools/constants.rb#296
ELFTools::Constants::EM::EM_DXP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Andes Technology compact code size embedded RISC processor family
#
# source://elftools//lib/elftools/constants.rb#327
ELFTools::Constants::EM::EM_ECOG1 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# MCST Elbrus general purpose hardware architecture
#
# source://elftools//lib/elftools/constants.rb#336
ELFTools::Constants::EM::EM_ECOG16 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cyan Technology eCOG1X family
#
# source://elftools//lib/elftools/constants.rb#328
ELFTools::Constants::EM::EM_ECOG1X = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Analog Devices SHARC family of 32-bit DSP processors
#
# source://elftools//lib/elftools/constants.rb#308
ELFTools::Constants::EM::EM_ECOG2 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# National Semiconductor CompactRISC 16-bit processor
#
# source://elftools//lib/elftools/constants.rb#338
ELFTools::Constants::EM::EM_ETPU = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Microprocessor series from PKU-Unity Ltd. and MPRC of Peking University
#
# source://elftools//lib/elftools/constants.rb#295
ELFTools::Constants::EM::EM_EXCESS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# National Semiconductor CompactRISC
#
# source://elftools//lib/elftools/constants.rb#288
ELFTools::Constants::EM::EM_F2MC16 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Infineon Technologies 32-bit embedded cpu
#
# source://elftools//lib/elftools/constants.rb#262
ELFTools::Constants::EM::EM_FIREPATH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# NEC V800 series
#
# source://elftools//lib/elftools/constants.rb#222
ELFTools::Constants::EM::EM_FR20 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Atmel AVR 8-bit microcontroller
#
# source://elftools//lib/elftools/constants.rb#268
ELFTools::Constants::EM::EM_FR30 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# NXP 56800EF Digital Signal Controller (DSC)
#
# source://elftools//lib/elftools/constants.rb#399
ELFTools::Constants::EM::EM_FRV = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Controls and Data Services VISIUMcore processor
#
# source://elftools//lib/elftools/constants.rb#376
ELFTools::Constants::EM::EM_FT32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Digital Equipment Corp. PDP-11
#
# source://elftools//lib/elftools/constants.rb#250
ELFTools::Constants::EM::EM_FX66 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Linux BPF - in-kernel virtual machine
#
# source://elftools//lib/elftools/constants.rb#383
ELFTools::Constants::EM::EM_GRAPHCORE_IPU = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas H8/300H
#
# source://elftools//lib/elftools/constants.rb#232
ELFTools::Constants::EM::EM_H8S = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ARC Cores
#
# source://elftools//lib/elftools/constants.rb#230
ELFTools::Constants::EM::EM_H8_300 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas H8/300
#
# source://elftools//lib/elftools/constants.rb#231
ELFTools::Constants::EM::EM_H8_300H = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas H8S
#
# source://elftools//lib/elftools/constants.rb#233
ELFTools::Constants::EM::EM_H8_500 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Donald Knuth's educational 64-bit processor
#
# source://elftools//lib/elftools/constants.rb#265
ELFTools::Constants::EM::EM_HUANY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas H8/500H
#
# source://elftools//lib/elftools/constants.rb#234
ELFTools::Constants::EM::EM_IA_64 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Graphcore Intelligent Processing Unit
#
# source://elftools//lib/elftools/constants.rb#384
ELFTools::Constants::EM::EM_IMG1 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Microchip 8-bit PIC(r) family
#
# source://elftools//lib/elftools/constants.rb#363
ELFTools::Constants::EM::EM_INTELGT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroelectronics ST200 microcontroller
#
# source://elftools//lib/elftools/constants.rb#285
ELFTools::Constants::EM::EM_IP2K = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Axis Communications 32-bit embedded processor
#
# source://elftools//lib/elftools/constants.rb#261
ELFTools::Constants::EM::EM_JAVELIN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Intel L1OM
#
# source://elftools//lib/elftools/constants.rb#341
ELFTools::Constants::EM::EM_K1OM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# LoongArch
#
# source://elftools//lib/elftools/constants.rb#394
ELFTools::Constants::EM::EM_KF32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Intel Graphics Technology
#
# source://elftools//lib/elftools/constants.rb#364
ELFTools::Constants::EM::EM_KM32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# KM211 KMX32 32-bit processor
#
# source://elftools//lib/elftools/constants.rb#366
ELFTools::Constants::EM::EM_KMX16 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# KM211 KM32 32-bit processor
#
# source://elftools//lib/elftools/constants.rb#365
ELFTools::Constants::EM::EM_KMX32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# KM211 KMX16 16-bit processor
#
# source://elftools//lib/elftools/constants.rb#367
ELFTools::Constants::EM::EM_KMX8 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# KM211 KMX8 8-bit processor
#
# source://elftools//lib/elftools/constants.rb#368
ELFTools::Constants::EM::EM_KVARC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Synopsys ARCv2.3 32-bit
#
# source://elftools//lib/elftools/constants.rb#391
ELFTools::Constants::EM::EM_KVX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Infineon Technologies SLE9X core
#
# source://elftools//lib/elftools/constants.rb#340
ELFTools::Constants::EM::EM_L1OM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# AMD GPU architecture
#
# source://elftools//lib/elftools/constants.rb#379
ELFTools::Constants::EM::EM_LANAI = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Broadcom VideoCore III processor
#
# source://elftools//lib/elftools/constants.rb#312
ELFTools::Constants::EM::EM_LATTICEMICO32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# WDC 65816/65C816
#
# source://elftools//lib/elftools/constants.rb#393
ELFTools::Constants::EM::EM_LOONGARCH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Infineon C16x/XC16x processor
#
# source://elftools//lib/elftools/constants.rb#301
ELFTools::Constants::EM::EM_M16C = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# AT&T WE 32100
#
# source://elftools//lib/elftools/constants.rb#198
ELFTools::Constants::EM::EM_M32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Freescale Communication Engine RISC core
#
# source://elftools//lib/elftools/constants.rb#304
ELFTools::Constants::EM::EM_M32C = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas V850
#
# source://elftools//lib/elftools/constants.rb#272
ELFTools::Constants::EM::EM_M32R = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# New Japan Radio (NJR) 16-bit DSP Processor
#
# source://elftools//lib/elftools/constants.rb#331
ELFTools::Constants::EM::EM_MANIK = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Ubicom IP2022 micro controller
#
# source://elftools//lib/elftools/constants.rb#286
ELFTools::Constants::EM::EM_MAX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cyan Technology eCOG1X family
#
# source://elftools//lib/elftools/constants.rb#329
ELFTools::Constants::EM::EM_MAXQ30 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# XMOS xCORE processor family
#
# source://elftools//lib/elftools/constants.rb#362
ELFTools::Constants::EM::EM_MCHP_PIC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Synopsys ARCv2.3 64-bit
#
# source://elftools//lib/elftools/constants.rb#389
ELFTools::Constants::EM::EM_MCS6502 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Imagination Technologies Meta processor architecture
#
# source://elftools//lib/elftools/constants.rb#335
ELFTools::Constants::EM::EM_MCST_ELBRUS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola Star*Core processor
#
# source://elftools//lib/elftools/constants.rb#243
ELFTools::Constants::EM::EM_ME16 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas RX family
#
# source://elftools//lib/elftools/constants.rb#334
ELFTools::Constants::EM::EM_METAG = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Tilera TILEPro
#
# source://elftools//lib/elftools/constants.rb#347
ELFTools::Constants::EM::EM_MICROBLAZE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# MIPS R3000 (officially, big-endian only)
#
# source://elftools//lib/elftools/constants.rb#205
ELFTools::Constants::EM::EM_MIPS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Next two are historical and binaries and
# modules of these types will be rejected by Linux.
#
# source://elftools//lib/elftools/constants.rb#210
ELFTools::Constants::EM::EM_MIPS_RS3_LE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# MIPS R3000 little-endian
#
# source://elftools//lib/elftools/constants.rb#211
ELFTools::Constants::EM::EM_MIPS_RS4_BE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# HP/Intel IA-64
#
# source://elftools//lib/elftools/constants.rb#235
ELFTools::Constants::EM::EM_MIPS_X = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola M68HC12
#
# source://elftools//lib/elftools/constants.rb#238
ELFTools::Constants::EM::EM_MMA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Texas Instruments Programmable Realtime Unit
#
# source://elftools//lib/elftools/constants.rb#319
ELFTools::Constants::EM::EM_MMDSP_PLUS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# LSI Logic's 16-bit DSP processor
#
# source://elftools//lib/elftools/constants.rb#264
ELFTools::Constants::EM::EM_MMIX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Matsushita MN10300
#
# source://elftools//lib/elftools/constants.rb#274
ELFTools::Constants::EM::EM_MN10200 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas M32R
#
# source://elftools//lib/elftools/constants.rb#273
ELFTools::Constants::EM::EM_MN10300 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# FTDI Chip FT32 high performance 32-bit RISC architecture
#
# source://elftools//lib/elftools/constants.rb#377
ELFTools::Constants::EM::EM_MOXIE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Fujitsu F2MC16
#
# source://elftools//lib/elftools/constants.rb#289
ELFTools::Constants::EM::EM_MSP430 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Siemens PCP
#
# source://elftools//lib/elftools/constants.rb#240
ELFTools::Constants::EM::EM_NCPU = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Sony nCPU embedded RISC processor
#
# source://elftools//lib/elftools/constants.rb#241
ELFTools::Constants::EM::EM_NDR1 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroelectronics STxP7x family
#
# source://elftools//lib/elftools/constants.rb#326
ELFTools::Constants::EM::EM_NDS32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Imagination Technologies
#
# source://elftools//lib/elftools/constants.rb#385
ELFTools::Constants::EM::EM_NFP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# none
#
# source://elftools//lib/elftools/constants.rb#197
ELFTools::Constants::EM::EM_NONE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Bluechip Systems CoolEngine
#
# source://elftools//lib/elftools/constants.rb#372
ELFTools::Constants::EM::EM_NORC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Thompson Multimedia General Purpose Processor
#
# source://elftools//lib/elftools/constants.rb#281
ELFTools::Constants::EM::EM_NS32K = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Synopsys ARCompact V2
#
# source://elftools//lib/elftools/constants.rb#354
ELFTools::Constants::EM::EM_OPEN8 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# picoJava
#
# source://elftools//lib/elftools/constants.rb#276
ELFTools::Constants::EM::EM_OPENRISC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# MIPS R4000 big-endian
#
# source://elftools//lib/elftools/constants.rb#213
ELFTools::Constants::EM::EM_PARISC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Fujitsu Multimedia Accelerator
#
# source://elftools//lib/elftools/constants.rb#239
ELFTools::Constants::EM::EM_PCP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Sony DSP Processor
#
# source://elftools//lib/elftools/constants.rb#248
ELFTools::Constants::EM::EM_PDP10 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Digital Equipment Corp. PDP-10
#
# source://elftools//lib/elftools/constants.rb#249
ELFTools::Constants::EM::EM_PDP11 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# AMD x86-64
#
# source://elftools//lib/elftools/constants.rb#247
ELFTools::Constants::EM::EM_PDSP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Matsushita MN10200
#
# source://elftools//lib/elftools/constants.rb#275
ELFTools::Constants::EM::EM_PJ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Intel 80960
#
# source://elftools//lib/elftools/constants.rb#217
ELFTools::Constants::EM::EM_PPC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# PowerPC
#
# source://elftools//lib/elftools/constants.rb#218
ELFTools::Constants::EM::EM_PPC64 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Harvard's machine-independent format
#
# source://elftools//lib/elftools/constants.rb#266
ELFTools::Constants::EM::EM_PRISM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# NXP Semiconductors TriMedia architecture family
#
# source://elftools//lib/elftools/constants.rb#323
ELFTools::Constants::EM::EM_QDSP6 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cypress M8C microprocessor
#
# source://elftools//lib/elftools/constants.rb#321
ELFTools::Constants::EM::EM_R32C = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# TRW RH32
#
# source://elftools//lib/elftools/constants.rb#224
ELFTools::Constants::EM::EM_RCE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Fujitsu FR20
#
# source://elftools//lib/elftools/constants.rb#223
ELFTools::Constants::EM::EM_RH32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Open8 8-bit RISC soft processor core
#
# source://elftools//lib/elftools/constants.rb#355
ELFTools::Constants::EM::EM_RL78 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Altium TSK3000 core
#
# source://elftools//lib/elftools/constants.rb#306
ELFTools::Constants::EM::EM_RS08 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cray Inc. NV2 vector architecture
#
# source://elftools//lib/elftools/constants.rb#333
ELFTools::Constants::EM::EM_RX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# IBM System/370
#
# source://elftools//lib/elftools/constants.rb#206
ELFTools::Constants::EM::EM_S370 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# PowerPC64
#
# source://elftools//lib/elftools/constants.rb#219
ELFTools::Constants::EM::EM_S390 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# This is the old interim value for S/390 architecture
#
# source://elftools//lib/elftools/constants.rb#407
ELFTools::Constants::EM::EM_S390_OLD = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cyan Technology eCOG2 microprocessor
#
# source://elftools//lib/elftools/constants.rb#309
ELFTools::Constants::EM::EM_SCORE7 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# S1C33 Family of Seiko Epson processors
#
# source://elftools//lib/elftools/constants.rb#292
ELFTools::Constants::EM::EM_SEP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# RISC processor for Lattice FPGA architecture
#
# source://elftools//lib/elftools/constants.rb#313
ELFTools::Constants::EM::EM_SE_C17 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ADI Blackfin Processor
#
# source://elftools//lib/elftools/constants.rb#291
ELFTools::Constants::EM::EM_SE_C33 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ARM 32 bit
#
# source://elftools//lib/elftools/constants.rb#226
ELFTools::Constants::EM::EM_SH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Freescale RS08 embedded processor
#
# source://elftools//lib/elftools/constants.rb#307
ELFTools::Constants::EM::EM_SHARC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Freescale Extended Time Processing Unit
#
# source://elftools//lib/elftools/constants.rb#339
ELFTools::Constants::EM::EM_SLE9X = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Tenor Network TPC processor
#
# source://elftools//lib/elftools/constants.rb#283
ELFTools::Constants::EM::EM_SNP1K = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# SPARC
#
# source://elftools//lib/elftools/constants.rb#199
ELFTools::Constants::EM::EM_SPARC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Fujitsu VPP500 (also some older versions of PowerPC)
#
# source://elftools//lib/elftools/constants.rb#215
ELFTools::Constants::EM::EM_SPARC32PLUS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# SuperH
#
# source://elftools//lib/elftools/constants.rb#227
ELFTools::Constants::EM::EM_SPARCV9 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# IBM S/390
#
# source://elftools//lib/elftools/constants.rb#220
ELFTools::Constants::EM::EM_SPU = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Toyota ME16 processor
#
# source://elftools//lib/elftools/constants.rb#244
ELFTools::Constants::EM::EM_ST100 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Silicon Graphics SVx
#
# source://elftools//lib/elftools/constants.rb#258
ELFTools::Constants::EM::EM_ST19 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Trebia SNP 1000 processor
#
# source://elftools//lib/elftools/constants.rb#284
ELFTools::Constants::EM::EM_ST200 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroelectronics ST9+ 8/16 bit microcontroller
#
# source://elftools//lib/elftools/constants.rb#252
ELFTools::Constants::EM::EM_ST7 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Siemens FX66 microcontroller
#
# source://elftools//lib/elftools/constants.rb#251
ELFTools::Constants::EM::EM_ST9PLUS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Denso NDR1 microprocessor
#
# source://elftools//lib/elftools/constants.rb#242
ELFTools::Constants::EM::EM_STARCORE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Atmel Corporation 32-bit microprocessor family
#
# source://elftools//lib/elftools/constants.rb#344
ELFTools::Constants::EM::EM_STM8 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Intel 8051 and variants
#
# source://elftools//lib/elftools/constants.rb#325
ELFTools::Constants::EM::EM_STXP7X = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Motorola MC68HC05 Microcontroller
#
# source://elftools//lib/elftools/constants.rb#257
ELFTools::Constants::EM::EM_SVX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# LAPIS nX-U16/U8
#
# source://elftools//lib/elftools/constants.rb#396
ELFTools::Constants::EM::EM_TACHYUM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroeletronics STM8 8-bit microcontroller
#
# source://elftools//lib/elftools/constants.rb#345
ELFTools::Constants::EM::EM_TILE64 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# NVIDIA CUDA architecture
#
# source://elftools//lib/elftools/constants.rb#349
ELFTools::Constants::EM::EM_TILEGX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Tilera TILE64 multicore architecture family
#
# source://elftools//lib/elftools/constants.rb#346
ELFTools::Constants::EM::EM_TILEPRO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroelectronics ST100 processor
#
# source://elftools//lib/elftools/constants.rb#245
ELFTools::Constants::EM::EM_TINYJ = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# The Texas Instruments TMS320C55x DSP family
#
# source://elftools//lib/elftools/constants.rb#317
ELFTools::Constants::EM::EM_TI_ARP32 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# The Texas Instruments TMS320C6000 DSP family
#
# source://elftools//lib/elftools/constants.rb#315
ELFTools::Constants::EM::EM_TI_C2000 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# The Texas Instruments TMS320C2000 DSP family
#
# source://elftools//lib/elftools/constants.rb#316
ELFTools::Constants::EM::EM_TI_C5500 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Seiko Epson C17 family
#
# source://elftools//lib/elftools/constants.rb#314
ELFTools::Constants::EM::EM_TI_C6000 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Texas Instruments Application Specific RISC Processor, 32bit fetch
#
# source://elftools//lib/elftools/constants.rb#318
ELFTools::Constants::EM::EM_TI_PRU = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Alphamosaic VideoCore processor
#
# source://elftools//lib/elftools/constants.rb#280
ELFTools::Constants::EM::EM_TMM_GPP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# National Semiconductor 32000 series
#
# source://elftools//lib/elftools/constants.rb#282
ELFTools::Constants::EM::EM_TPC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# SPARC v9 64-bit
#
# source://elftools//lib/elftools/constants.rb#228
ELFTools::Constants::EM::EM_TRICORE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas R32C series microprocessors
#
# source://elftools//lib/elftools/constants.rb#322
ELFTools::Constants::EM::EM_TRIMEDIA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Freescale Communication Engine RISC core
#
# source://elftools//lib/elftools/constants.rb#305
ELFTools::Constants::EM::EM_TSK3000 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ChipON KungFu32
#
# source://elftools//lib/elftools/constants.rb#395
ELFTools::Constants::EM::EM_U16_U8CORE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Arca RISC Microprocessor
#
# source://elftools//lib/elftools/constants.rb#294
ELFTools::Constants::EM::EM_UNICORE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Cell BE SPU
#
# source://elftools//lib/elftools/constants.rb#221
ELFTools::Constants::EM::EM_V800 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Mitsubishi D30V
#
# source://elftools//lib/elftools/constants.rb#271
ELFTools::Constants::EM::EM_V850 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# STMicroelectronics ST19 8-bit cpu
#
# source://elftools//lib/elftools/constants.rb#259
ELFTools::Constants::EM::EM_VAX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Netronome Flow Processor (NFP)
#
# source://elftools//lib/elftools/constants.rb#386
ELFTools::Constants::EM::EM_VE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Tensilica Xtensa Architecture
#
# source://elftools//lib/elftools/constants.rb#279
ELFTools::Constants::EM::EM_VIDEOCORE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# New Japan Radio (NJR) 24-bit DSP Processor
#
# source://elftools//lib/elftools/constants.rb#311
ELFTools::Constants::EM::EM_VIDEOCORE3 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Renesas RL78 family
#
# source://elftools//lib/elftools/constants.rb#356
ELFTools::Constants::EM::EM_VIDEOCORE5 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Zilog Z80
#
# source://elftools//lib/elftools/constants.rb#375
ELFTools::Constants::EM::EM_VISIUM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# HPPA
#
# source://elftools//lib/elftools/constants.rb#214
ELFTools::Constants::EM::EM_VPP500 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Advanced Logic Corp. TinyJ embedded processor
#
# source://elftools//lib/elftools/constants.rb#246
ELFTools::Constants::EM::EM_X86_64 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Beyond BA2 CPU architecture
#
# source://elftools//lib/elftools/constants.rb#361
ELFTools::Constants::EM::EM_XCORE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# National Semiconductor CRX
#
# source://elftools//lib/elftools/constants.rb#299
ELFTools::Constants::EM::EM_XGATE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Dallas Semiconductor MAXQ30 Core Micro-controllers
#
# source://elftools//lib/elftools/constants.rb#330
ELFTools::Constants::EM::EM_XIMO16 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ARC International ARCompact processor
#
# source://elftools//lib/elftools/constants.rb#278
ELFTools::Constants::EM::EM_XTENSA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# CSR Kalimba architecture family
#
# source://elftools//lib/elftools/constants.rb#374
ELFTools::Constants::EM::EM_Z80 = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Element 14 64-bit DSP processor
#
# source://elftools//lib/elftools/constants.rb#263
ELFTools::Constants::EM::EM_ZSP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# This module defines ELF file types.
#
# source://elftools//lib/elftools/constants.rb#446
module ELFTools::Constants::ET
class << self
2023-12-14 15:34:15 +00:00
# Return the type name according to +e_type+ in ELF file header.
#
# @return [String] Type in string format.
#
# source://elftools//lib/elftools/constants.rb#454
def mapping(type); end
end
end
2023-12-14 15:34:15 +00:00
# core file
#
# source://elftools//lib/elftools/constants.rb#451
ELFTools::Constants::ET::ET_CORE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# shared object
#
# source://elftools//lib/elftools/constants.rb#450
ELFTools::Constants::ET::ET_DYN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# executable file
#
# source://elftools//lib/elftools/constants.rb#449
ELFTools::Constants::ET::ET_EXEC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# no file type
#
# source://elftools//lib/elftools/constants.rb#447
ELFTools::Constants::ET::ET_NONE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# relocatable file
#
# source://elftools//lib/elftools/constants.rb#448
ELFTools::Constants::ET::ET_REL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Program header permission flags, records bitwise OR value in +p_flags+.
#
# source://elftools//lib/elftools/constants.rb#468
module ELFTools::Constants::PF; end
2023-12-14 15:34:15 +00:00
# readable
#
# source://elftools//lib/elftools/constants.rb#471
ELFTools::Constants::PF::PF_R = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# writable
#
# source://elftools//lib/elftools/constants.rb#470
ELFTools::Constants::PF::PF_W = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# executable
#
# source://elftools//lib/elftools/constants.rb#469
ELFTools::Constants::PF::PF_X = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Program header types, records in +p_type+.
#
# source://elftools//lib/elftools/constants.rb#476
module ELFTools::Constants::PT; end
2023-12-14 15:34:15 +00:00
# platform architecture compatibility information
#
# source://elftools//lib/elftools/constants.rb#509
ELFTools::Constants::PT::PT_AARCH64_ARCHEXT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# exception unwind tables
#
# source://elftools//lib/elftools/constants.rb#510
ELFTools::Constants::PT::PT_AARCH64_UNWIND = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# platform architecture compatibility information
#
# source://elftools//lib/elftools/constants.rb#501
ELFTools::Constants::PT::PT_ARM_ARCHEXT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# exception unwind tables
#
# source://elftools//lib/elftools/constants.rb#502
ELFTools::Constants::PT::PT_ARM_EXIDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# dynamic tags
#
# source://elftools//lib/elftools/constants.rb#479
ELFTools::Constants::PT::PT_DYNAMIC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# for exception handler
#
# source://elftools//lib/elftools/constants.rb#487
ELFTools::Constants::PT::PT_GNU_EH_FRAME = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Mbind segments (upper bound)
#
# source://elftools//lib/elftools/constants.rb#491
ELFTools::Constants::PT::PT_GNU_MBIND_HI = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Mbind segments (lower bound)
#
# source://elftools//lib/elftools/constants.rb#492
ELFTools::Constants::PT::PT_GNU_MBIND_LO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GNU property
#
# source://elftools//lib/elftools/constants.rb#490
ELFTools::Constants::PT::PT_GNU_PROPERTY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# read only after relocation
#
# source://elftools//lib/elftools/constants.rb#489
ELFTools::Constants::PT::PT_GNU_RELRO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# permission of stack
#
# source://elftools//lib/elftools/constants.rb#488
ELFTools::Constants::PT::PT_GNU_STACK = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# OS-specific
#
# source://elftools//lib/elftools/constants.rb#496
ELFTools::Constants::PT::PT_HIOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {PT_LOPROC}
#
# source://elftools//lib/elftools/constants.rb#514
ELFTools::Constants::PT::PT_HIPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# interpreter, same as .interp section
#
# source://elftools//lib/elftools/constants.rb#480
ELFTools::Constants::PT::PT_INTERP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# segment to be load
#
# source://elftools//lib/elftools/constants.rb#478
ELFTools::Constants::PT::PT_LOAD = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# OS-specific
#
# source://elftools//lib/elftools/constants.rb#486
ELFTools::Constants::PT::PT_LOOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {PT_LOPROC} and {PT_HIPROC} are reserved for processor-specific semantics.
#
# source://elftools//lib/elftools/constants.rb#499
ELFTools::Constants::PT::PT_LOPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# +.MIPS.abiflags+ section
#
# source://elftools//lib/elftools/constants.rb#507
ELFTools::Constants::PT::PT_MIPS_ABIFLAGS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# +.MIPS.options+ section
#
# source://elftools//lib/elftools/constants.rb#506
ELFTools::Constants::PT::PT_MIPS_OPTIONS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# register usage information
#
# source://elftools//lib/elftools/constants.rb#504
ELFTools::Constants::PT::PT_MIPS_REGINFO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# runtime procedure table
#
# source://elftools//lib/elftools/constants.rb#505
ELFTools::Constants::PT::PT_MIPS_RTPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# same as .note* section
#
# source://elftools//lib/elftools/constants.rb#481
ELFTools::Constants::PT::PT_NOTE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# null segment
#
# source://elftools//lib/elftools/constants.rb#477
ELFTools::Constants::PT::PT_NULL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Section for boot arguments
#
# source://elftools//lib/elftools/constants.rb#495
ELFTools::Constants::PT::PT_OPENBSD_BOOTDATA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Fill with random data
#
# source://elftools//lib/elftools/constants.rb#493
ELFTools::Constants::PT::PT_OPENBSD_RANDOMIZE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Program does W^X violations
#
# source://elftools//lib/elftools/constants.rb#494
ELFTools::Constants::PT::PT_OPENBSD_WXNEEDED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# where program header starts
#
# source://elftools//lib/elftools/constants.rb#483
ELFTools::Constants::PT::PT_PHDR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# 4k page table size
#
# source://elftools//lib/elftools/constants.rb#512
ELFTools::Constants::PT::PT_S390_PGSTE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# reserved
#
# source://elftools//lib/elftools/constants.rb#482
ELFTools::Constants::PT::PT_SHLIB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# thread local storage segment
#
# source://elftools//lib/elftools/constants.rb#484
ELFTools::Constants::PT::PT_TLS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Section flag mask types, records in +sh_flag+.
#
# source://elftools//lib/elftools/constants.rb#548
module ELFTools::Constants::SHF; end
2023-12-14 15:34:15 +00:00
# Occupies memory during execution
#
# source://elftools//lib/elftools/constants.rb#550
ELFTools::Constants::SHF::SHF_ALLOC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Section with compressed data.
#
# source://elftools//lib/elftools/constants.rb#559
ELFTools::Constants::SHF::SHF_COMPRESSED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Section is excluded unless referenced or allocated (Solaris).
#
# source://elftools//lib/elftools/constants.rb#565
ELFTools::Constants::SHF::SHF_EXCLUDE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Executable
#
# source://elftools//lib/elftools/constants.rb#551
ELFTools::Constants::SHF::SHF_EXECINSTR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Mbind section
#
# source://elftools//lib/elftools/constants.rb#563
ELFTools::Constants::SHF::SHF_GNU_MBIND = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Not to be GCed by linker.
#
# source://elftools//lib/elftools/constants.rb#562
ELFTools::Constants::SHF::SHF_GNU_RETAIN = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Section is member of a group.
#
# source://elftools//lib/elftools/constants.rb#557
ELFTools::Constants::SHF::SHF_GROUP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# `sh_info' contains SHT index
#
# source://elftools//lib/elftools/constants.rb#554
ELFTools::Constants::SHF::SHF_INFO_LINK = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Preserve order after combining
#
# source://elftools//lib/elftools/constants.rb#555
ELFTools::Constants::SHF::SHF_LINK_ORDER = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# OS-specific.
#
# source://elftools//lib/elftools/constants.rb#560
ELFTools::Constants::SHF::SHF_MASKOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Processor-specific
#
# source://elftools//lib/elftools/constants.rb#561
ELFTools::Constants::SHF::SHF_MASKPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Might be merged
#
# source://elftools//lib/elftools/constants.rb#552
ELFTools::Constants::SHF::SHF_MERGE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Special ordering requirement
#
# source://elftools//lib/elftools/constants.rb#564
ELFTools::Constants::SHF::SHF_ORDERED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Non-standard OS specific handling required
#
# source://elftools//lib/elftools/constants.rb#556
ELFTools::Constants::SHF::SHF_OS_NONCONFORMING = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Contains nul-terminated strings
#
# source://elftools//lib/elftools/constants.rb#553
ELFTools::Constants::SHF::SHF_STRINGS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Section hold thread-local data.
#
# source://elftools//lib/elftools/constants.rb#558
ELFTools::Constants::SHF::SHF_TLS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Writable
#
# source://elftools//lib/elftools/constants.rb#549
ELFTools::Constants::SHF::SHF_WRITE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Special indices to section. These are used when there is no valid index to section header.
# The meaning of these values is left upto the embedding header.
#
# source://elftools//lib/elftools/constants.rb#520
module ELFTools::Constants::SHN; end
2023-12-14 15:34:15 +00:00
# specifies absolute values for the corresponding reference
#
# source://elftools//lib/elftools/constants.rb#540
ELFTools::Constants::SHN::SHN_ABS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# symbols defined relative to this section are common symbols
#
# source://elftools//lib/elftools/constants.rb#541
ELFTools::Constants::SHN::SHN_COMMON = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {SHN_LOOS}
#
# source://elftools//lib/elftools/constants.rb#539
ELFTools::Constants::SHN::SHN_HIOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {SHN_LOPROC}
#
# source://elftools//lib/elftools/constants.rb#535
ELFTools::Constants::SHN::SHN_HIPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# end of reserved indices
#
# source://elftools//lib/elftools/constants.rb#543
ELFTools::Constants::SHN::SHN_HIRESERVE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {SHN_LOOS} and {SHN_HIOS} are reserved for operating system-specific semantics.
#
# source://elftools//lib/elftools/constants.rb#538
ELFTools::Constants::SHN::SHN_LOOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {SHN_LOPROC} and {SHN_HIPROC} are reserved for processor-specific semantics.
#
# source://elftools//lib/elftools/constants.rb#525
ELFTools::Constants::SHN::SHN_LOPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# start of reserved indices
#
# source://elftools//lib/elftools/constants.rb#522
ELFTools::Constants::SHN::SHN_LORESERVE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# defined and allocated common symbol
#
# source://elftools//lib/elftools/constants.rb#527
ELFTools::Constants::SHN::SHN_MIPS_ACOMMON = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# defined and allocated data symbol
#
# source://elftools//lib/elftools/constants.rb#529
ELFTools::Constants::SHN::SHN_MIPS_DATA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# small common symbol
#
# source://elftools//lib/elftools/constants.rb#530
ELFTools::Constants::SHN::SHN_MIPS_SCOMMON = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# small undefined symbol
#
# source://elftools//lib/elftools/constants.rb#531
ELFTools::Constants::SHN::SHN_MIPS_SUNDEFINED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# defined and allocated text symbol
#
# source://elftools//lib/elftools/constants.rb#528
ELFTools::Constants::SHN::SHN_MIPS_TEXT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# undefined section
#
# source://elftools//lib/elftools/constants.rb#521
ELFTools::Constants::SHN::SHN_UNDEF = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# large common symbol
#
# source://elftools//lib/elftools/constants.rb#533
ELFTools::Constants::SHN::SHN_X86_64_LCOMMON = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# escape value indicating that the actual section header index is too large to fit
#
# source://elftools//lib/elftools/constants.rb#542
ELFTools::Constants::SHN::SHN_XINDEX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Section header types, records in +sh_type+.
#
# source://elftools//lib/elftools/constants.rb#570
module ELFTools::Constants::SHT; end
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#661
ELFTools::Constants::SHT::SHT_AARCH64_ATTRIBUTES = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# object file compatibility attributes
#
# source://elftools//lib/elftools/constants.rb#614
ELFTools::Constants::SHT::SHT_ARM_ATTRIBUTES = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# support for debugging overlaid programs
#
# source://elftools//lib/elftools/constants.rb#615
ELFTools::Constants::SHT::SHT_ARM_DEBUGOVERLAY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# exception index table
#
# source://elftools//lib/elftools/constants.rb#612
ELFTools::Constants::SHT::SHT_ARM_EXIDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# support for debugging overlaid programs
#
# source://elftools//lib/elftools/constants.rb#616
ELFTools::Constants::SHT::SHT_ARM_OVERLAYSECTION = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# BPABI DLL dynamic linking pre-emption map
#
# source://elftools//lib/elftools/constants.rb#613
ELFTools::Constants::SHT::SHT_ARM_PREEMPTMAP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# object file compatibility attributes
#
# source://elftools//lib/elftools/constants.rb#663
ELFTools::Constants::SHT::SHT_CSKY_ATTRIBUTES = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# information of dynamic linking
#
# source://elftools//lib/elftools/constants.rb#577
ELFTools::Constants::SHT::SHT_DYNAMIC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# symbols for dynamic
#
# source://elftools//lib/elftools/constants.rb#582
ELFTools::Constants::SHT::SHT_DYNSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# array of termination functions
#
# source://elftools//lib/elftools/constants.rb#584
ELFTools::Constants::SHT::SHT_FINI_ARRAY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# object attributes
#
# source://elftools//lib/elftools/constants.rb#596
ELFTools::Constants::SHT::SHT_GNU_ATTRIBUTES = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GNU style symbol hash table
#
# source://elftools//lib/elftools/constants.rb#597
ELFTools::Constants::SHT::SHT_GNU_HASH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# incremental build data
#
# source://elftools//lib/elftools/constants.rb#595
ELFTools::Constants::SHT::SHT_GNU_INCREMENTAL_GOT_PLT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# incremental build data
#
# source://elftools//lib/elftools/constants.rb#592
ELFTools::Constants::SHT::SHT_GNU_INCREMENTAL_INPUTS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# incremental build data
#
# source://elftools//lib/elftools/constants.rb#594
ELFTools::Constants::SHT::SHT_GNU_INCREMENTAL_RELOCS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# incremental build data
#
# source://elftools//lib/elftools/constants.rb#593
ELFTools::Constants::SHT::SHT_GNU_INCREMENTAL_SYMTAB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# list of prelink dependencies
#
# source://elftools//lib/elftools/constants.rb#598
ELFTools::Constants::SHT::SHT_GNU_LIBLIST = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# versions defined by file
#
# source://elftools//lib/elftools/constants.rb#600
ELFTools::Constants::SHT::SHT_GNU_verdef = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# versions needed by file
#
# source://elftools//lib/elftools/constants.rb#602
ELFTools::Constants::SHT::SHT_GNU_verneed = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# symbol versions
#
# source://elftools//lib/elftools/constants.rb#604
ELFTools::Constants::SHT::SHT_GNU_versym = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# section group
#
# source://elftools//lib/elftools/constants.rb#586
ELFTools::Constants::SHT::SHT_GROUP = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# symbol hash table
#
# source://elftools//lib/elftools/constants.rb#576
ELFTools::Constants::SHT::SHT_HASH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {SHT_LOOS}
#
# source://elftools//lib/elftools/constants.rb#605
ELFTools::Constants::SHT::SHT_HIOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {SHT_LOPROC}
#
# source://elftools//lib/elftools/constants.rb#667
ELFTools::Constants::SHT::SHT_HIPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# see {SHT_LOUSER}
#
# source://elftools//lib/elftools/constants.rb#671
ELFTools::Constants::SHT::SHT_HIUSER = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# array of initialization functions
#
# source://elftools//lib/elftools/constants.rb#583
ELFTools::Constants::SHT::SHT_INIT_ARRAY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {SHT_LOOS} and {SHT_HIOS} are reserved for operating system-specific semantics.
#
# source://elftools//lib/elftools/constants.rb#591
ELFTools::Constants::SHT::SHT_LOOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {SHT_LOPROC} and {SHT_HIPROC} are reserved for processor-specific semantics.
#
# source://elftools//lib/elftools/constants.rb#608
ELFTools::Constants::SHT::SHT_LOPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Values between {SHT_LOUSER} and {SHT_HIUSER} are reserved for application programs.
#
# source://elftools//lib/elftools/constants.rb#670
ELFTools::Constants::SHT::SHT_LOUSER = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ABI related flags
#
# source://elftools//lib/elftools/constants.rb#658
ELFTools::Constants::SHT::SHT_MIPS_ABIFLAGS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#639
ELFTools::Constants::SHT::SHT_MIPS_AUXSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# list of symbols whose definitions conflict with shared objects
#
# source://elftools//lib/elftools/constants.rb#622
ELFTools::Constants::SHT::SHT_MIPS_CONFLICT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# description of contents of another section
#
# source://elftools//lib/elftools/constants.rb#631
ELFTools::Constants::SHT::SHT_MIPS_CONTENT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# register usage information
#
# source://elftools//lib/elftools/constants.rb#625
ELFTools::Constants::SHT::SHT_MIPS_DEBUG = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta C++ class table
#
# source://elftools//lib/elftools/constants.rb#646
ELFTools::Constants::SHT::SHT_MIPS_DELTACLASS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta C++ declarations
#
# source://elftools//lib/elftools/constants.rb#648
ELFTools::Constants::SHT::SHT_MIPS_DELTADECL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta C++ instance table
#
# source://elftools//lib/elftools/constants.rb#645
ELFTools::Constants::SHT::SHT_MIPS_DELTAINST = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# delta C++ symbol table
#
# source://elftools//lib/elftools/constants.rb#644
ELFTools::Constants::SHT::SHT_MIPS_DELTASYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#636
ELFTools::Constants::SHT::SHT_MIPS_DENSE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# DWARF debugging section
#
# source://elftools//lib/elftools/constants.rb#647
ELFTools::Constants::SHT::SHT_MIPS_DWARF = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# C++ exception handling region info
#
# source://elftools//lib/elftools/constants.rb#656
ELFTools::Constants::SHT::SHT_MIPS_EH_REGION = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# events section
#
# source://elftools//lib/elftools/constants.rb#650
ELFTools::Constants::SHT::SHT_MIPS_EVENTS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#635
ELFTools::Constants::SHT::SHT_MIPS_EXTSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#634
ELFTools::Constants::SHT::SHT_MIPS_FDESC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# global pointer table
#
# source://elftools//lib/elftools/constants.rb#623
ELFTools::Constants::SHT::SHT_MIPS_GPTAB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# interface information
#
# source://elftools//lib/elftools/constants.rb#630
ELFTools::Constants::SHT::SHT_MIPS_IFACE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# set of dynamic shared objects
#
# source://elftools//lib/elftools/constants.rb#620
ELFTools::Constants::SHT::SHT_MIPS_LIBLIST = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#642
ELFTools::Constants::SHT::SHT_MIPS_LINE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#641
ELFTools::Constants::SHT::SHT_MIPS_LOCSTR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#638
ELFTools::Constants::SHT::SHT_MIPS_LOCSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#621
ELFTools::Constants::SHT::SHT_MIPS_MSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# miscellaneous options
#
# source://elftools//lib/elftools/constants.rb#632
ELFTools::Constants::SHT::SHT_MIPS_OPTIONS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#640
ELFTools::Constants::SHT::SHT_MIPS_OPTSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#627
ELFTools::Constants::SHT::SHT_MIPS_PACKAGE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#628
ELFTools::Constants::SHT::SHT_MIPS_PACKSYM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#637
ELFTools::Constants::SHT::SHT_MIPS_PDESC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# runtime procedure descriptor table exception information
#
# source://elftools//lib/elftools/constants.rb#657
ELFTools::Constants::SHT::SHT_MIPS_PDR_EXCEPTION = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#652
ELFTools::Constants::SHT::SHT_MIPS_PIXIE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# section contains register usage information
#
# source://elftools//lib/elftools/constants.rb#626
ELFTools::Constants::SHT::SHT_MIPS_REGINFO = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#629
ELFTools::Constants::SHT::SHT_MIPS_RELD = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#643
ELFTools::Constants::SHT::SHT_MIPS_RFDESC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#633
ELFTools::Constants::SHT::SHT_MIPS_SHDR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# list of libraries the binary depends on
#
# source://elftools//lib/elftools/constants.rb#649
ELFTools::Constants::SHT::SHT_MIPS_SYMBOL_LIB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#651
ELFTools::Constants::SHT::SHT_MIPS_TRANSLATE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# microcode information
#
# source://elftools//lib/elftools/constants.rb#624
ELFTools::Constants::SHT::SHT_MIPS_UCODE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# intermediate code
#
# source://elftools//lib/elftools/constants.rb#655
ELFTools::Constants::SHT::SHT_MIPS_WHIRL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GNU style symbol hash table with xlat
#
# source://elftools//lib/elftools/constants.rb#659
ELFTools::Constants::SHT::SHT_MIPS_XHASH = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# address translation table
#
# source://elftools//lib/elftools/constants.rb#653
ELFTools::Constants::SHT::SHT_MIPS_XLATE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# SGI internal address translation table
#
# source://elftools//lib/elftools/constants.rb#654
ELFTools::Constants::SHT::SHT_MIPS_XLATE_DEBUG = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# section occupies no space
#
# source://elftools//lib/elftools/constants.rb#579
ELFTools::Constants::SHT::SHT_NOBITS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# section for notes
#
# source://elftools//lib/elftools/constants.rb#578
ELFTools::Constants::SHT::SHT_NOTE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# null section
#
# source://elftools//lib/elftools/constants.rb#571
ELFTools::Constants::SHT::SHT_NULL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#665
ELFTools::Constants::SHT::SHT_ORDERED = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# array of functions that are invoked before all other initialization functions
#
# source://elftools//lib/elftools/constants.rb#585
ELFTools::Constants::SHT::SHT_PREINIT_ARRAY = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# information defined by program itself
#
# source://elftools//lib/elftools/constants.rb#572
ELFTools::Constants::SHT::SHT_PROGBITS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# relocation
#
# source://elftools//lib/elftools/constants.rb#580
ELFTools::Constants::SHT::SHT_REL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# relocation with addends
#
# source://elftools//lib/elftools/constants.rb#575
ELFTools::Constants::SHT::SHT_RELA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# RELR relative relocations
#
# source://elftools//lib/elftools/constants.rb#588
ELFTools::Constants::SHT::SHT_RELR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# reserved
#
# source://elftools//lib/elftools/constants.rb#581
ELFTools::Constants::SHT::SHT_SHLIB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/constants.rb#610
ELFTools::Constants::SHT::SHT_SPARC_GOTDATA = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# string table section
#
# source://elftools//lib/elftools/constants.rb#574
ELFTools::Constants::SHT::SHT_STRTAB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# versions defined by file
#
# source://elftools//lib/elftools/constants.rb#599
ELFTools::Constants::SHT::SHT_SUNW_verdef = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# versions needed by file
#
# source://elftools//lib/elftools/constants.rb#601
ELFTools::Constants::SHT::SHT_SUNW_verneed = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# symbol versions
#
# source://elftools//lib/elftools/constants.rb#603
ELFTools::Constants::SHT::SHT_SUNW_versym = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# symbol table section
#
# source://elftools//lib/elftools/constants.rb#573
ELFTools::Constants::SHT::SHT_SYMTAB = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# indices for SHN_XINDEX entries
#
# source://elftools//lib/elftools/constants.rb#587
ELFTools::Constants::SHT::SHT_SYMTAB_SHNDX = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# x86_64 unwind information
#
# source://elftools//lib/elftools/constants.rb#618
ELFTools::Constants::SHT::SHT_X86_64_UNWIND = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol binding from Sym st_info field.
#
# source://elftools//lib/elftools/constants.rb#676
module ELFTools::Constants::STB; end
2023-12-14 15:34:15 +00:00
# Global symbol
#
# source://elftools//lib/elftools/constants.rb#678
ELFTools::Constants::STB::STB_GLOBAL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Unique symbol.
#
# source://elftools//lib/elftools/constants.rb#682
ELFTools::Constants::STB::STB_GNU_UNIQUE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# End of OS-specific
#
# source://elftools//lib/elftools/constants.rb#683
ELFTools::Constants::STB::STB_HIOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# End of processor-specific
#
# source://elftools//lib/elftools/constants.rb#685
ELFTools::Constants::STB::STB_HIPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Local symbol
#
# source://elftools//lib/elftools/constants.rb#677
ELFTools::Constants::STB::STB_LOCAL = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Start of OS-specific
#
# source://elftools//lib/elftools/constants.rb#681
ELFTools::Constants::STB::STB_LOOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Start of processor-specific
#
# source://elftools//lib/elftools/constants.rb#684
ELFTools::Constants::STB::STB_LOPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Number of defined types.
#
# source://elftools//lib/elftools/constants.rb#680
ELFTools::Constants::STB::STB_NUM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Weak symbol
#
# source://elftools//lib/elftools/constants.rb#679
ELFTools::Constants::STB::STB_WEAK = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol types from Sym st_info field.
#
# source://elftools//lib/elftools/constants.rb#690
module ELFTools::Constants::STT; end
2023-12-14 15:34:15 +00:00
# ARM: a THUMB label.
#
# source://elftools//lib/elftools/constants.rb#718
ELFTools::Constants::STT::STT_ARM_16BIT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# ARM: a THUMB function. This is not defined in ARM ELF Specification but
# used by the GNU tool-chain.
#
# source://elftools//lib/elftools/constants.rb#717
ELFTools::Constants::STT::STT_ARM_TFUNC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol is a common data object
#
# source://elftools//lib/elftools/constants.rb#696
ELFTools::Constants::STT::STT_COMMON = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol's name is file name
#
# source://elftools//lib/elftools/constants.rb#695
ELFTools::Constants::STT::STT_FILE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol is a code object
#
# source://elftools//lib/elftools/constants.rb#693
ELFTools::Constants::STT::STT_FUNC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# GNU extension: symbol value points to a function which is called
# at runtime to determine the final value of the symbol.
#
# source://elftools//lib/elftools/constants.rb#704
ELFTools::Constants::STT::STT_GNU_IFUNC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# End of OS-specific
#
# source://elftools//lib/elftools/constants.rb#707
ELFTools::Constants::STT::STT_HIOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# End of processor-specific
#
# source://elftools//lib/elftools/constants.rb#709
ELFTools::Constants::STT::STT_HIPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Start of OS-specific
#
# source://elftools//lib/elftools/constants.rb#706
ELFTools::Constants::STT::STT_LOOS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Start of processor-specific
#
# source://elftools//lib/elftools/constants.rb#708
ELFTools::Constants::STT::STT_LOPROC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol type is unspecified
#
# source://elftools//lib/elftools/constants.rb#691
ELFTools::Constants::STT::STT_NOTYPE = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Deprecated.
#
# source://elftools//lib/elftools/constants.rb#698
ELFTools::Constants::STT::STT_NUM = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol is a data object
#
# source://elftools//lib/elftools/constants.rb#692
ELFTools::Constants::STT::STT_OBJECT = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Complex relocation expression
#
# source://elftools//lib/elftools/constants.rb#699
ELFTools::Constants::STT::STT_RELC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol associated with a section
#
# source://elftools//lib/elftools/constants.rb#694
ELFTools::Constants::STT::STT_SECTION = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# The section type that must be used for register symbols on
# Sparc. These symbols initialize a global register.
#
# source://elftools//lib/elftools/constants.rb#713
ELFTools::Constants::STT::STT_SPARC_REGISTER = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Signed Complex relocation expression
#
# source://elftools//lib/elftools/constants.rb#700
ELFTools::Constants::STT::STT_SRELC = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Symbol is thread-local data object
#
# source://elftools//lib/elftools/constants.rb#697
ELFTools::Constants::STT::STT_TLS = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# Define common methods for dynamic sections and dynamic segments.
#
# @note This module can only be included by {ELFTools::Sections::DynamicSection}
# and {ELFTools::Segments::DynamicSegment} because methods here assume some
# attributes exist.
#
# source://elftools//lib/elftools/dynamic.rb#10
module ELFTools::Dynamic
2023-12-14 15:34:15 +00:00
# Iterate all tags.
#
# @note This method assume the following methods already exist:
# header
# tag_start
# @return [Enumerator<ELFTools::Dynamic::Tag>, Array<ELFTools::Dynamic::Tag>] If block is not given, an enumerator will be returned.
# Otherwise, return array of tags.
# @yieldparam tag [ELFTools::Dynamic::Tag]
#
# source://elftools//lib/elftools/dynamic.rb#21
def each_tags(&block); end
2023-12-14 15:34:15 +00:00
# Get the +n+-th tag.
#
# Tags are lazy loaded.
#
# @note This method assume the following methods already exist:
# header
# tag_start
# @note We cannot do bound checking of +n+ here since the only way to get size
# of tags is calling +tags.size+.
# @param n [Integer] The index.
# @return [ELFTools::Dynamic::Tag] The desired tag.
#
# source://elftools//lib/elftools/dynamic.rb#93
def tag_at(n); end
2023-12-14 15:34:15 +00:00
# Get a tag of specific type.
#
# @example
# dynamic = elf.segment_by_type(:dynamic)
# # type as integer
# dynamic.tag_by_type(0) # the null tag
# #=> #<ELFTools::Dynamic::Tag:0x0055b5a5ecad28 @header={:d_tag=>0, :d_val=>0}>
# dynamic.tag_by_type(ELFTools::Constants::DT_NULL)
# #=> #<ELFTools::Dynamic::Tag:0x0055b5a5ecad28 @header={:d_tag=>0, :d_val=>0}>
#
# # symbol
# dynamic.tag_by_type(:null)
# #=> #<ELFTools::Dynamic::Tag:0x0055b5a5ecad28 @header={:d_tag=>0, :d_val=>0}>
# dynamic.tag_by_type(:pltgot)
# #=> #<ELFTools::Dynamic::Tag:0x0055d3d2d91b28 @header={:d_tag=>3, :d_val=>6295552}>
#
# # string
# dynamic.tag_by_type('null')
# #=> #<ELFTools::Dynamic::Tag:0x0055b5a5ecad28 @header={:d_tag=>0, :d_val=>0}>
# dynamic.tag_by_type('DT_PLTGOT')
# #=> #<ELFTools::Dynamic::Tag:0x0055d3d2d91b28 @header={:d_tag=>3, :d_val=>6295552}>
# @param type [Integer, Symbol, String] Constant value, symbol, or string of type
# is acceptable. See examples for more information.
# @return [ELFTools::Dynamic::Tag] The desired tag.
#
# source://elftools//lib/elftools/dynamic.rb#64
def tag_by_type(type); end
2023-12-14 15:34:15 +00:00
# Use {#tags} to get all tags.
#
# @return [Array<ELFTools::Dynamic::Tag>] Array of tags.
#
# source://elftools//lib/elftools/dynamic.rb#36
def tags; end
2023-12-14 15:34:15 +00:00
# Get tags of specific type.
#
# @param type [Integer, Symbol, String] Constant value, symbol, or string of type
# is acceptable. See examples for more information.
# @return [Array<ELFTools::Dynamic::Tag>] The desired tags.
# @see #tag_by_type
#
# source://elftools//lib/elftools/dynamic.rb#76
def tags_by_type(type); end
private
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/dynamic.rb#108
def endian; end
2023-12-14 15:34:15 +00:00
# Get the DT_STRTAB's +d_val+ offset related to file.
#
# source://elftools//lib/elftools/dynamic.rb#113
def str_offset; end
end
2023-12-14 15:34:15 +00:00
# A tag class.
#
# source://elftools//lib/elftools/dynamic.rb#119
class ELFTools::Dynamic::Tag
2023-12-14 15:34:15 +00:00
# Instantiate a {ELFTools::Dynamic::Tag} object.
#
# @param header [ELF_Dyn] The dynamic tag header.
# @param stream [#pos=, #read] Streaming object.
# @param str_offset [Method] Call this method to get the string offset related
# to file.
# @return [Tag] a new instance of Tag
#
# source://elftools//lib/elftools/dynamic.rb#129
def initialize(header, stream, str_offset); end
2023-12-14 15:34:15 +00:00
# @return [ELFTools::Structs::ELF_Dyn] The dynamic tag header.
#
# source://elftools//lib/elftools/dynamic.rb#120
def header; end
2023-12-14 15:34:15 +00:00
# Return the name of this tag.
#
# Only tags with name would return a name.
# Others would return +nil+.
#
# @return [String, nil] The name.
#
# source://elftools//lib/elftools/dynamic.rb#171
def name; end
2023-12-14 15:34:15 +00:00
# Is this tag has a name?
#
# The criteria here is if this tag's type is in {TYPE_WITH_NAME}.
#
# @return [Boolean] Is this tag has a name.
#
# source://elftools//lib/elftools/dynamic.rb#162
def name?; end
2023-12-14 15:34:15 +00:00
# @return [#pos=, #read] Streaming object.
#
# source://elftools//lib/elftools/dynamic.rb#121
def stream; end
2023-12-14 15:34:15 +00:00
# Return the content of this tag records.
#
# For normal tags, this method just return
# +header.d_val+. For tags with +header.d_val+
# in meaning of string offset (e.g. DT_NEEDED), this method would
# return the string it specified.
# Tags with type in {TYPE_WITH_NAME} are those tags with name.
#
# @example
# dynamic = elf.segment_by_type(:dynamic)
# dynamic.tag_by_type(:init).value
# #=> 4195600 # 0x400510
# dynamic.tag_by_type(:needed).value
# #=> 'libc.so.6'
# @return [Integer, String] The content this tag records.
#
# source://elftools//lib/elftools/dynamic.rb#154
def value; end
end
2023-12-14 15:34:15 +00:00
# Some dynamic have name.
#
# source://elftools//lib/elftools/dynamic.rb#136
ELFTools::Dynamic::Tag::TYPE_WITH_NAME = T.let(T.unsafe(nil), Array)
2023-12-14 15:34:15 +00:00
# Raised on invalid ELF class (EI_CLASS).
#
# source://elftools//lib/elftools/exceptions.rb#11
class ELFTools::ELFClassError < ::ELFTools::ELFError; end
2023-12-14 15:34:15 +00:00
# Raised on invalid ELF data encoding (EI_DATA).
#
# source://elftools//lib/elftools/exceptions.rb#14
class ELFTools::ELFDataError < ::ELFTools::ELFError; end
2023-12-14 15:34:15 +00:00
# Being raised when parsing error.
#
# source://elftools//lib/elftools/exceptions.rb#5
class ELFTools::ELFError < ::StandardError; end
2023-12-14 15:34:15 +00:00
# The main class for using elftools.
#
# source://elftools//lib/elftools/elf_file.rb#12
class ELFTools::ELFFile
2023-12-14 15:34:15 +00:00
# Instantiate an {ELFFile} object.
#
# @example
# ELFFile.new(File.open('/bin/cat'))
# #=> #<ELFTools::ELFFile:0x00564b106c32a0 @elf_class=64, @endian=:little, @stream=#<File:/bin/cat>>
# @param stream [#pos=, #read] The +File+ object to be fetch information from.
# @return [ELFFile] a new instance of ELFFile
#
# source://elftools//lib/elftools/elf_file.rb#24
def initialize(stream); end
2023-12-14 15:34:15 +00:00
# Return the BuildID of ELF.
#
# @example
# elf.build_id
# #=> '73ab62cb7bc9959ce053c2b711322158708cdc07'
# @return [String, nil] BuildID in hex form will be returned.
# +nil+ is returned if the .note.gnu.build-id section
# is not found.
#
# source://elftools//lib/elftools/elf_file.rb#52
def build_id; end
2023-12-14 15:34:15 +00:00
# Iterate all sections.
#
# All sections are lazy loading, the section
# only be created whenever accessing it.
# This method is useful for {#section_by_name}
# since not all sections need to be created.
#
# @return [Enumerator<ELFTools::Sections::Section>, Array<ELFTools::Sections::Section>] As +Array#each+, if block is not given, a enumerator will be returned,
# otherwise, the whole sections will be returned.
# @yieldparam section [ELFTools::Sections::Section] A section.
# @yieldreturn [void]
#
# source://elftools//lib/elftools/elf_file.rb#122
def each_sections(&block); end
2023-12-14 15:34:15 +00:00
# Iterate all segments.
#
# All segments are lazy loading, the segment
# only be created whenever accessing it.
# This method is useful for {#segment_by_type}
# since not all segments need to be created.
#
# @return [Array<ELFTools::Segments::Segment>] Whole segments will be returned.
# @yieldparam segment [ELFTools::Segments::Segment] A segment.
# @yieldreturn [void]
#
# source://elftools//lib/elftools/elf_file.rb#195
def each_segments(&block); end
2023-12-14 15:34:15 +00:00
# @return [Integer] 32 or 64.
#
# source://elftools//lib/elftools/elf_file.rb#14
def elf_class; end
2023-12-14 15:34:15 +00:00
# Return the ELF type according to +e_type+.
#
# @example
# ELFFile.new(File.open('spec/files/libc.so.6')).elf_type
# #=> 'DYN'
# ELFFile.new(File.open('spec/files/amd64.elf')).elf_type
# #=> 'EXEC'
# @return [String] Type in string format.
#
# source://elftools//lib/elftools/elf_file.rb#82
def elf_type; end
2023-12-14 15:34:15 +00:00
# @return [Symbol] +:little+ or +:big+.
#
# source://elftools//lib/elftools/elf_file.rb#15
def endian; end
2023-12-14 15:34:15 +00:00
# Return the file header.
#
# Lazy loading.
#
# @return [ELFTools::Structs::ELF_Ehdr] The header.
#
# source://elftools//lib/elftools/elf_file.rb#35
def header; end
2023-12-14 15:34:15 +00:00
# Get machine architecture.
#
# Mappings of architecture can be found
# in {ELFTools::Constants::EM.mapping}.
#
# @example
# elf.machine
# #=> 'Advanced Micro Devices X86-64'
# @return [String] Name of architecture.
#
# source://elftools//lib/elftools/elf_file.rb#71
def machine; end
2023-12-14 15:34:15 +00:00
# Number of sections in this file.
#
# @example
# elf.num_sections
# #=> 29
# @return [Integer] The desired number.
#
# source://elftools//lib/elftools/elf_file.rb#93
def num_sections; end
2023-12-14 15:34:15 +00:00
# Number of segments in this file.
#
# @return [Integer] The desited number.
#
# source://elftools//lib/elftools/elf_file.rb#181
def num_segments; end
2023-12-14 15:34:15 +00:00
# Get the offset related to file, given virtual memory address.
#
# This method should work no matter ELF is a PIE or not.
# This method refers from (actually equals to) binutils/readelf.c#offset_from_vma.
#
# @example
# elf = ELFTools::ELFFile.new(File.open('/bin/cat'))
# elf.offset_from_vma(0x401337)
# #=> 4919 # 0x1337
# @param vma [Integer] The virtual address to be queried.
# @return [Integer] Related file offset.
#
# source://elftools//lib/elftools/elf_file.rb#293
def offset_from_vma(vma, size = T.unsafe(nil)); end
2023-12-14 15:34:15 +00:00
# The patch status.
#
# @return [Hash{Integer => String}]
#
# source://elftools//lib/elftools/elf_file.rb#301
def patches; end
2023-12-14 15:34:15 +00:00
# Apply patches and save as +filename+.
#
# @param filename [String]
# @return [void]
#
# source://elftools//lib/elftools/elf_file.rb#315
def save(filename); end
2023-12-14 15:34:15 +00:00
# Acquire the +n+-th section, 0-based.
#
# Sections are lazy loaded.
#
# @param n [Integer] The index.
# @return [ELFTools::Sections::Section, nil] The target section.
# If +n+ is out of bound, +nil+ is returned.
#
# source://elftools//lib/elftools/elf_file.rb#144
def section_at(n); end
2023-12-14 15:34:15 +00:00
# Acquire the section named as +name+.
#
# @example
# elf.section_by_name('.note.gnu.build-id')
# #=> #<ELFTools::Sections::Section:0x005647b1282428>
# elf.section_by_name('')
# #=> #<ELFTools::Sections::NullSection:0x005647b11da110>
# elf.section_by_name('no such section')
# #=> nil
# @param name [String] The desired section name.
# @return [ELFTools::Sections::Section, nil] The target section.
#
# source://elftools//lib/elftools/elf_file.rb#107
def section_by_name(name); end
2023-12-14 15:34:15 +00:00
# Simply use {#sections} to get all sections.
#
# @return [Array<ELFTools::Sections::Section>] Whole sections.
#
# source://elftools//lib/elftools/elf_file.rb#133
def sections; end
2023-12-14 15:34:15 +00:00
# Fetch all sections with specific type.
#
# The available types are listed in {ELFTools::Constants::PT}.
# This method accept giving block.
#
# @example
# elf = ELFTools::ELFFile.new(File.open('spec/files/amd64.elf'))
# elf.sections_by_type(:rela)
# #=> [#<ELFTools::Sections::RelocationSection:0x00563cd3219970>,
# # #<ELFTools::Sections::RelocationSection:0x00563cd3b89d70>]
# @param type [Integer, Symbol, String] The type needed, similar format as {#segment_by_type}.
# @return [Array<ELFTools::Sections::section>] The target sections.
# @yieldparam section [ELFTools::Sections::Section] A section in specific type.
# @yieldreturn [void]
#
# source://elftools//lib/elftools/elf_file.rb#163
def sections_by_type(type, &block); end
2023-12-14 15:34:15 +00:00
# Acquire the +n+-th segment, 0-based.
#
# Segments are lazy loaded.
#
# @param n [Integer] The index.
# @return [ELFTools::Segments::Segment, nil] The target segment.
# If +n+ is out of bound, +nil+ is returned.
#
# source://elftools//lib/elftools/elf_file.rb#278
def segment_at(n); end
2023-12-14 15:34:15 +00:00
# Get the first segment with +p_type=type+.
# The available types are listed in {ELFTools::Constants::PT}.
#
# @example
# # type as an integer
# elf.segment_by_type(ELFTools::Constants::PT_NOTE)
# #=> #<ELFTools::Segments::NoteSegment:0x005629dda1e4f8>
#
# elf.segment_by_type(4) # PT_NOTE
# #=> #<ELFTools::Segments::NoteSegment:0x005629dda1e4f8>
#
# # type as a symbol
# elf.segment_by_type(:PT_NOTE)
# #=> #<ELFTools::Segments::NoteSegment:0x005629dda1e4f8>
#
# # you can do this
# elf.segment_by_type(:note) # will be transformed into `PT_NOTE`
# #=> #<ELFTools::Segments::NoteSegment:0x005629dda1e4f8>
#
# # type as a string
# elf.segment_by_type('PT_NOTE')
# #=> #<ELFTools::Segments::NoteSegment:0x005629dda1e4f8>
#
# # this is ok
# elf.segment_by_type('note') # will be tranformed into `PT_NOTE`
# #=> #<ELFTools::Segments::NoteSegment:0x005629dda1e4f8>
# @example
# elf.segment_by_type(1337)
# # ArgumentError: No constants in Constants::PT is 1337
#
# elf.segment_by_type('oao')
# # ArgumentError: No constants in Constants::PT named "PT_OAO"
# @example
# elf.segment_by_type(0)
# #=> nil # no such segment exists
# @note This method will return the first segment found,
# to found all segments with specific type you can use {#segments_by_type}.
# @param type [Integer, Symbol, String] See examples for clear usage.
# @return [ELFTools::Segments::Segment] The target segment.
#
# source://elftools//lib/elftools/elf_file.rb#251
def segment_by_type(type); end
2023-12-14 15:34:15 +00:00
# Simply use {#segments} to get all segments.
#
# @return [Array<ELFTools::Segments::Segment>] Whole segments.
#
# source://elftools//lib/elftools/elf_file.rb#206
def segments; end
2023-12-14 15:34:15 +00:00
# Fetch all segments with specific type.
#
# If you want to find only one segment,
# use {#segment_by_type} instead.
# This method accept giving block.
#
# @param type [Integer, Symbol, String] The type needed, same format as {#segment_by_type}.
# @return [Array<ELFTools::Segments::Segment>] The target segments.
# @yieldparam segment [ELFTools::Segments::Segment] A segment in specific type.
# @yieldreturn [void]
#
# source://elftools//lib/elftools/elf_file.rb#266
def segments_by_type(type, &block); end
2023-12-14 15:34:15 +00:00
# @return [#pos=, #read] The +File+ object.
#
# source://elftools//lib/elftools/elf_file.rb#13
def stream; end
2023-12-14 15:34:15 +00:00
# Get the string table section.
#
# This section is acquired by using the +e_shstrndx+
# in ELF header.
#
# @return [ELFTools::Sections::StrTabSection] The desired section.
#
# source://elftools//lib/elftools/elf_file.rb#173
def strtab_section; end
private
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/elf_file.rb#359
def create_section(n); end
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/elf_file.rb#370
def create_segment(n); end
2023-12-14 15:34:15 +00:00
# @raise [ELFMagicError]
#
# source://elftools//lib/elftools/elf_file.rb#339
def identify; end
2023-12-14 15:34:15 +00:00
# bad idea..
#
# source://elftools//lib/elftools/elf_file.rb#327
def loaded_headers; end
end
2023-12-14 15:34:15 +00:00
# Raised on invalid ELF magic.
#
# source://elftools//lib/elftools/exceptions.rb#8
class ELFTools::ELFMagicError < ::ELFTools::ELFError; end
2023-12-14 15:34:15 +00:00
# A helper class for {ELFTools} easy to implement
# 'lazy loading' objects.
# Mainly used when loading sections, segments, and
# symbols.
#
# source://elftools//lib/elftools/lazy_array.rb#29
class ELFTools::LazyArray < ::SimpleDelegator
2023-12-14 15:34:15 +00:00
# Instantiate a {LazyArray} object.
#
# @example
# arr = LazyArray.new(10) { |i| p "calc #{i}"; i * i }
# p arr[2]
# # "calc 2"
# # 4
#
# p arr[3]
# # "calc 3"
# # 9
#
# p arr[3]
# # 9
# @param size [Integer] The size of array.
# @return [LazyArray] a new instance of LazyArray
# @yieldparam i [Integer] Needs the +i+-th element.
# @yieldreturn [Object] Value of the +i+-th element.
#
# source://elftools//lib/elftools/lazy_array.rb#30
def initialize(size, &block); end
2023-12-14 15:34:15 +00:00
# To access elements like a normal array.
#
# Elements are lazy loaded at the first time
# access it.
#
# @return [Object] The element, returned type is the
# return type of block given in {#initialize}.
#
# source://elftools//lib/elftools/lazy_array.rb#42
def [](i); end
end
2023-12-14 15:34:15 +00:00
# Since both note sections and note segments refer to notes, this module
# defines common methods for {ELFTools::Sections::NoteSection} and
# {ELFTools::Segments::NoteSegment}.
#
# @note This module can only be included in {ELFTools::Sections::NoteSection} and
# {ELFTools::Segments::NoteSegment} since some methods here assume some
# attributes already exist.
#
# source://elftools//lib/elftools/note.rb#15
module ELFTools::Note
2023-12-14 15:34:15 +00:00
# Iterate all notes in a note section or segment.
#
# Structure of notes are:
# +---------------+
# | Note 1 header |
# +---------------+
# | Note 1 name |
# +---------------+
# | Note 1 desc |
# +---------------+
# | Note 2 header |
# +---------------+
# | ... |
# +---------------+
#
# @note This method assume following methods exist:
# stream
# note_start
# note_total_size
# @return [Enumerator<ELFTools::Note::Note>, Array<ELFTools::Note::Note>] If block is not given, an enumerator will be returned.
# Otherwise, return the array of notes.
#
# source://elftools//lib/elftools/note.rb#44
def each_notes; end
2023-12-14 15:34:15 +00:00
# Simply +#notes+ to get all notes.
#
# @return [Array<ELFTools::Note::Note>] Whole notes.
#
# source://elftools//lib/elftools/note.rb#67
def notes; end
private
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/note.rb#81
def create_note(cur); end
2023-12-14 15:34:15 +00:00
# Get the endian.
#
# @note This method assume method +header+ exists.
# @return [Symbol] +:little+ or +:big+.
#
# source://elftools//lib/elftools/note.rb#77
def endian; end
end
2023-12-14 15:34:15 +00:00
# Class of a note.
#
# source://elftools//lib/elftools/note.rb#87
class ELFTools::Note::Note
2023-12-14 15:34:15 +00:00
# Instantiate a {ELFTools::Note::Note} object.
#
# @param header [ELF_Nhdr] The note header.
# @param stream [#pos=, #read] Streaming object.
# @param offset [Integer] Start address of this note, includes the header.
# @return [Note] a new instance of Note
#
# source://elftools//lib/elftools/note.rb#97
def initialize(header, stream, offset); end
2023-12-14 15:34:15 +00:00
# Description of this note.
#
# @return [String] The description.
#
# source://elftools//lib/elftools/note.rb#114
def desc; end
2023-12-14 15:34:15 +00:00
# Description of this note.
# If someone likes to use full name.
#
# @return [String] The description.
#
# source://elftools//lib/elftools/note.rb#114
def description; end
2023-12-14 15:34:15 +00:00
# @return [ELFTools::Structs::ELF_Nhdr] Note header.
#
# source://elftools//lib/elftools/note.rb#88
def header; end
2023-12-14 15:34:15 +00:00
# Name of this note.
#
# @return [String] The name.
#
# source://elftools//lib/elftools/note.rb#105
def name; end
2023-12-14 15:34:15 +00:00
# @return [Integer] Address of this note start, includes note header.
#
# source://elftools//lib/elftools/note.rb#90
def offset; end
2023-12-14 15:34:15 +00:00
# @return [#pos=, #read] Streaming object.
#
# source://elftools//lib/elftools/note.rb#89
def stream; end
end
2023-12-14 15:34:15 +00:00
# Since size of {ELFTools::Structs::ELF_Nhdr} will not change no matter in
# what endian and what arch, we can do this here. This value should equal
# to 12.
#
# source://elftools//lib/elftools/note.rb#19
ELFTools::Note::SIZE_OF_NHDR = T.let(T.unsafe(nil), Integer)
2023-12-14 15:34:15 +00:00
# A relocation entry.
#
# Can be either a REL or RELA relocation.
# XXX: move this to an independent file?
#
# source://elftools//lib/elftools/sections/relocation_section.rb#77
class ELFTools::Relocation
2023-12-14 15:34:15 +00:00
# Instantiate a {Relocation} object.
#
# @return [Relocation] a new instance of Relocation
#
# source://elftools//lib/elftools/sections/relocation_section.rb#82
def initialize(header, stream); end
2023-12-14 15:34:15 +00:00
# @return [ELFTools::Structs::ELF_Rel, ELFTools::Structs::ELF_Rela] Rel(a) header.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#78
def header; end
2023-12-14 15:34:15 +00:00
# +r_info+ contains sym and type, use two methods
# to access them easier.
#
# @return [Integer] sym infor.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#90
def r_info_sym; end
2023-12-14 15:34:15 +00:00
# +r_info+ contains sym and type, use two methods
# to access them easier.
#
# @return [Integer] type infor.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#98
def r_info_type; end
2023-12-14 15:34:15 +00:00
# @return [#pos=, #read] Streaming object.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#79
def stream; end
2023-12-14 15:34:15 +00:00
# +r_info+ contains sym and type, use two methods
# to access them easier.
#
# @return [Integer] sym infor.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#90
def symbol_index; end
2023-12-14 15:34:15 +00:00
# +r_info+ contains sym and type, use two methods
# to access them easier.
#
# @return [Integer] type infor.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#98
def type; end
private
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/sections/relocation_section.rb#105
def mask_bit; end
end
2023-12-14 15:34:15 +00:00
# Defines different types of sections in this module.
#
# source://elftools//lib/elftools/sections/section.rb#5
module ELFTools::Sections; end
2023-12-14 15:34:15 +00:00
# Class for dynamic table section.
#
# This section should always be named .dynamic.
# This class knows how to get the list of dynamic tags.
#
# source://elftools//lib/elftools/sections/dynamic_section.rb#12
class ELFTools::Sections::DynamicSection < ::ELFTools::Sections::Section
include ::ELFTools::Dynamic
2023-12-14 15:34:15 +00:00
# Get the start address of tags.
#
# @return [Integer] Start address of tags.
#
# source://elftools//lib/elftools/sections/dynamic_section.rb#17
def tag_start; end
end
2023-12-14 15:34:15 +00:00
# Class of note section.
# Note section records notes
#
# source://elftools//lib/elftools/sections/note_section.rb#11
class ELFTools::Sections::NoteSection < ::ELFTools::Sections::Section
include ::ELFTools::Note
2023-12-14 15:34:15 +00:00
# Address offset of notes start.
#
# @return [Integer] The offset.
#
# source://elftools//lib/elftools/sections/note_section.rb#16
def note_start; end
2023-12-14 15:34:15 +00:00
# The total size of notes in this section.
#
# @return [Integer] The size.
#
# source://elftools//lib/elftools/sections/note_section.rb#22
def note_total_size; end
end
2023-12-14 15:34:15 +00:00
# Class of null section.
# Null section is for specific the end
# of linked list (+sh_link+) between sections.
#
# source://elftools//lib/elftools/sections/null_section.rb#12
class ELFTools::Sections::NullSection < ::ELFTools::Sections::Section
2023-12-14 15:34:15 +00:00
# Is this a null section?
#
# @return [Boolean] Yes it is.
#
# source://elftools//lib/elftools/sections/null_section.rb#13
def null?; end
end
2023-12-14 15:34:15 +00:00
# Class of note section.
# Note section records notes
#
# source://elftools//lib/elftools/sections/relocation_section.rb#13
class ELFTools::Sections::RelocationSection < ::ELFTools::Sections::Section
2023-12-14 15:34:15 +00:00
# Iterate all relocations.
#
# All relocations are lazy loading, the relocation
# only be created whenever accessing it.
#
# @return [Enumerator<ELFTools::Relocation>, Array<ELFTools::Relocation>] If block is not given, an enumerator will be returned.
# Otherwise, the whole relocations will be returned.
# @yieldparam rel [ELFTools::Relocation] A relocation object.
# @yieldreturn [void]
#
# source://elftools//lib/elftools/sections/relocation_section.rb#45
def each_relocations(&block); end
2023-12-14 15:34:15 +00:00
# Number of relocations in this section.
#
# @return [Integer] The number.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#20
def num_relocations; end
2023-12-14 15:34:15 +00:00
# Is this relocation a RELA or REL type.
#
# @return [Boolean] If is RELA.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#14
def rela?; end
2023-12-14 15:34:15 +00:00
# Acquire the +n+-th relocation, 0-based.
#
# relocations are lazy loaded.
#
# @param n [Integer] The index.
# @return [ELFTools::Relocation, nil] The target relocation.
# If +n+ is out of bound, +nil+ is returned.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#31
def relocation_at(n); end
2023-12-14 15:34:15 +00:00
# Simply use {#relocations} to get all relocations.
#
# @return [Array<ELFTools::Relocation>] Whole relocations.
#
# source://elftools//lib/elftools/sections/relocation_section.rb#56
def relocations; end
private
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/sections/relocation_section.rb#62
def create_relocation(n); end
end
2023-12-14 15:34:15 +00:00
# Base class of sections.
#
# source://elftools//lib/elftools/sections/section.rb#7
class ELFTools::Sections::Section
2023-12-14 15:34:15 +00:00
# Instantiate a {Section} object.
#
# @param header [ELFTools::Structs::ELF_Shdr] The section header object.
# @param stream [#pos=, #read] The streaming object for further dump.
# @param strtab [ELFTools::Sections::StrTabSection, Proc] The string table object. For fetching section names.
# If +Proc+ if given, it will call at the first
# time access +#name+.
# @param offset_from_vma [Method] The method to get offset of file, given virtual memory address.
# @return [Section] a new instance of Section
#
# source://elftools//lib/elftools/sections/section.rb#22
def initialize(header, stream, offset_from_vma: T.unsafe(nil), strtab: T.unsafe(nil), **_kwargs); end
2023-12-14 15:34:15 +00:00
# Fetch data of this section.
#
# @return [String] Data.
#
# source://elftools//lib/elftools/sections/section.rb#44
def data; end
2023-12-14 15:34:15 +00:00
# @return [ELFTools::Structs::ELF_Shdr] Section header.
#
# source://elftools//lib/elftools/sections/section.rb#8
def header; end
2023-12-14 15:34:15 +00:00
# Get name of this section.
#
# @return [String] The name.
#
# source://elftools//lib/elftools/sections/section.rb#38
def name; end
2023-12-14 15:34:15 +00:00
# Is this a null section?
#
# @return [Boolean] No it's not.
#
# source://elftools//lib/elftools/sections/section.rb#51
def null?; end
2023-12-14 15:34:15 +00:00
# @return [#pos=, #read] Streaming object.
#
# source://elftools//lib/elftools/sections/section.rb#9
def stream; end
2023-12-14 15:34:15 +00:00
# Return +header.sh_type+ in a simplier way.
#
# @return [Integer] The type, meaning of types are defined in {Constants::SHT}.
#
# source://elftools//lib/elftools/sections/section.rb#32
def type; end
class << self
2023-12-14 15:34:15 +00:00
# Use different class according to +header.sh_type+.
#
# @param header [ELFTools::Structs::ELF_Shdr] Section header.
# @param stream [#pos=, #read] Streaming object.
# @return [ELFTools::Sections::Section] Return object dependes on +header.sh_type+.
#
# source://elftools//lib/elftools/sections/sections.rb#24
def create(header, stream, *args, **kwargs); end
end
end
2023-12-14 15:34:15 +00:00
# Class of string table section.
# Usually for section .strtab and .dynstr,
# which record names.
#
# source://elftools//lib/elftools/sections/str_tab_section.rb#15
class ELFTools::Sections::StrTabSection < ::ELFTools::Sections::Section
2023-12-14 15:34:15 +00:00
# Return the section or symbol name.
#
# @param offset [Integer] Usually from +shdr.sh_name+ or +sym.st_name+.
# @return [String] The name without null bytes.
#
# source://elftools//lib/elftools/sections/str_tab_section.rb#16
def name_at(offset); end
end
2023-12-14 15:34:15 +00:00
# Class of symbol table section.
# Usually for section .symtab and .dynsym,
# which will refer to symbols in ELF file.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#20
class ELFTools::Sections::SymTabSection < ::ELFTools::Sections::Section
2023-12-14 15:34:15 +00:00
# Instantiate a {SymTabSection} object.
# There's a +section_at+ lambda for {SymTabSection}
# to easily fetch other sections.
#
# @param header [ELFTools::Structs::ELF_Shdr] See {Section#initialize} for more information.
# @param stream [#pos=, #read] See {Section#initialize} for more information.
# @param section_at [Proc] The method for fetching other sections by index.
# This lambda should be {ELFTools::ELFFile#section_at}.
# @return [SymTabSection] a new instance of SymTabSection
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#21
def initialize(header, stream, section_at: T.unsafe(nil), **_kwargs); end
2023-12-14 15:34:15 +00:00
# Iterate all symbols.
#
# All symbols are lazy loading, the symbol
# only be created whenever accessing it.
# This method is useful for {#symbol_by_name}
# since not all symbols need to be created.
#
# @return [Enumerator<ELFTools::Sections::Symbol>, Array<ELFTools::Sections::Symbol>] If block is not given, an enumerator will be returned.
# Otherwise return array of symbols.
# @yieldparam sym [ELFTools::Sections::Symbol] A symbol object.
# @yieldreturn [void]
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#59
def each_symbols(&block); end
2023-12-14 15:34:15 +00:00
# Number of symbols.
#
# @example
# symtab.num_symbols
# #=> 75
# @return [Integer] The number.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#32
def num_symbols; end
2023-12-14 15:34:15 +00:00
# Acquire the +n+-th symbol, 0-based.
#
# Symbols are lazy loaded.
#
# @param n [Integer] The index.
# @return [ELFTools::Sections::Symbol, nil] The target symbol.
# If +n+ is out of bound, +nil+ is returned.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#43
def symbol_at(n); end
2023-12-14 15:34:15 +00:00
# Get symbol by its name.
#
# @param name [String] The name of symbol.
# @return [ELFTools::Sections::Symbol] Desired symbol.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#78
def symbol_by_name(name); end
2023-12-14 15:34:15 +00:00
# Simply use {#symbols} to get all symbols.
#
# @return [Array<ELFTools::Sections::Symbol>] The whole symbols.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#70
def symbols; end
2023-12-14 15:34:15 +00:00
# Return the symbol string section.
# Lazy loaded.
#
# @return [ELFTools::Sections::StrTabSection] The string table section.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#85
def symstr; end
private
2023-12-14 15:34:15 +00:00
# source://elftools//lib/elftools/sections/sym_tab_section.rb#91
def create_symbol(n); end
end
2023-12-14 15:34:15 +00:00
# Class of symbol.
#
# XXX: Should this class be defined in an independent file?
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#102
class ELFTools::Sections::Symbol
2023-12-14 15:34:15 +00:00
# Instantiate a {ELFTools::Sections::Symbol} object.
#
# @param header [ELFTools::Structs::ELF32_sym, ELFTools::Structs::ELF64_sym] The symbol header.
# @param stream [#pos=, #read] The streaming object.
# @param symstr [ELFTools::Sections::StrTabSection, Proc] The symbol string section.
# If +Proc+ is given, it will be called at the first time
# access {Symbol#name}.
# @return [Symbol] a new instance of Symbol
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#114
def initialize(header, stream, symstr: T.unsafe(nil)); end
2023-12-14 15:34:15 +00:00
# @return [ELFTools::Structs::ELF32_sym, ELFTools::Structs::ELF64_sym] Section header.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#103
def header; end
2023-12-14 15:34:15 +00:00
# Return the symbol name.
#
# @return [String] The name.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#122
def name; end
2023-12-14 15:34:15 +00:00
# @return [#pos=, #read] Streaming object.
#
# source://elftools//lib/elftools/sections/sym_tab_section.rb#104
def stream; end
end
2023-12-14 15:34:15 +00:00
# Module for defining different types of segments.
#
# source://elftools//lib/elftools/segments/segment.rb#4
module ELFTools::Segments; end
2023-12-14 15:34:15 +00:00
# Class for dynamic table segment.
#
# This class knows how to get the list of dynamic tags.
#
# source://elftools//lib/elftools/segments/dynamic_segment.rb#11
class ELFTools::Segments::DynamicSegment < ::ELFTools::Segments::Segment
include ::ELFTools::Dynamic
2023-12-14 15:34:15 +00:00
# Get the start address of tags.
#
# @return [Integer] Start address of tags.
#
# source://elftools//lib/elftools/segments/dynamic_segment.rb#15
def tag_start; end
end
2023-12-14 15:34:15 +00:00
# For DT_INTERP segment, knows how to get path of
# ELF interpreter.
#
# source://elftools//lib/elftools/segments/interp_segment.rb#14
class ELFTools::Segments::InterpSegment < ::ELFTools::Segments::Segment
2023-12-14 15:34:15 +00:00
# Get the path of interpreter.
#
# @example
# interp_segment.interp_name
# #=> '/lib64/ld-linux-x86-64.so.2'
# @return [String] Path to the interpreter.
#
# source://elftools//lib/elftools/segments/interp_segment.rb#15
def interp_name; end
end
2023-12-14 15:34:15 +00:00
# For DT_LOAD segment.
# Able to query between file offset and virtual memory address.
#
# source://elftools//lib/elftools/segments/load_segment.rb#12
class ELFTools::Segments::LoadSegment < ::ELFTools::Segments::Segment
2023-12-14 15:34:15 +00:00
# Returns the start of this segment.
#
# @return [Integer] The file offset.
#
# source://elftools//lib/elftools/segments/load_segment.rb#13
def file_head; end
2023-12-14 15:34:15 +00:00
# Returns the end of this segment.
#
# @return [Integer] The file offset.
#
# source://elftools//lib/elftools/segments/load_segment.rb#27
def file_tail; end
2023-12-14 15:34:15 +00:00
# Returns the start virtual address of this segment.
#
# @return [Integer] The vma.
#
# source://elftools//lib/elftools/segments/load_segment.rb#34
def mem_head; end
2023-12-14 15:34:15 +00:00
# Returns size in memory.
#
# @return [Integer] The size.
#
# source://elftools//lib/elftools/segments/load_segment.rb#41
def mem_size; end
2023-12-14 15:34:15 +00:00
# Returns the end virtual address of this segment.
#
# @return [Integer] The vma.
#
# source://elftools//lib/elftools/segments/load_segment.rb#48
def mem_tail; end
2023-12-14 15:34:15 +00:00
# Query if the given file offset located in this segment.
#
# @param offset [Integer] File offset.
# @param size [Integer] Size.
# @return [Boolean]
#
# source://elftools//lib/elftools/segments/load_segment.rb#58
def offset_in?(offset, size = T.unsafe(nil)); end
2023-12-14 15:34:15 +00:00
# Convert file offset into virtual memory address.
#
# @param offset [Integer] File offset.
# @return [Integer]
#
# source://elftools//lib/elftools/segments/load_segment.rb#66
def offset_to_vma(offset); end
2023-12-14 15:34:15 +00:00
# Returns size in file.
#
# @return [Integer] The size.
#
# source://elftools//lib/elftools/segments/load_segment.rb#20
def size; end
2023-12-14 15:34:15 +00:00
# Query if the given virtual memory address located in this segment.
#
# @param vma [Integer] Virtual memory address.
# @param size [Integer] Size.
# @return [Boolean]
#
# source://elftools//lib/elftools/segments/load_segment.rb#77
def vma_in?(vma, size = T.unsafe(nil)); end
2023-12-14 15:34:15 +00:00
# Convert virtual memory address into file offset.
#
# @param vma [Integer] Virtual memory address.
# @return [Integer]
#
# source://elftools//lib/elftools/segments/load_segment.rb#86
def vma_to_offset(vma); end
end
2023-12-14 15:34:15 +00:00
# Class of note segment.
#
# source://elftools//lib/elftools/segments/note_segment.rb#10
class ELFTools::Segments::NoteSegment < ::ELFTools::Segments::Segment
include ::ELFTools::Note
2023-12-14 15:34:15 +00:00
# Address offset of notes start.
#
# @return [Integer] The offset.
#
# source://elftools//lib/elftools/segments/note_segment.rb#15
def note_start; end
2023-12-14 15:34:15 +00:00
# The total size of notes in this segment.
#
# @return [Integer] The size.
#
# source://elftools//lib/elftools/segments/note_segment.rb#21
def note_total_size; end
end
2023-12-14 15:34:15 +00:00
# Base class of segments.
#
# source://elftools//lib/elftools/segments/segment.rb#6
class ELFTools::Segments::Segment
2023-12-14 15:34:15 +00:00
# Instantiate a {Segment} object.
#
# @param header [ELFTools::Structs::ELF32_Phdr, ELFTools::Structs::ELF64_Phdr] Program header.
# @param stream [#pos=, #read] Streaming object.
# @param offset_from_vma [Method] The method to get offset of file, given virtual memory address.
# @return [Segment] a new instance of Segment
#
# source://elftools//lib/elftools/segments/segment.rb#17
def initialize(header, stream, offset_from_vma: T.unsafe(nil)); end
2023-12-14 15:34:15 +00:00
# The content in this segment.
#
# @return [String] The content.
#
# source://elftools//lib/elftools/segments/segment.rb#32
def data; end
2023-12-14 15:34:15 +00:00
# Is this segment executable?
#
# @return [Boolean] Ture or false.
#
# source://elftools//lib/elftools/segments/segment.rb#51
def executable?; end
2023-12-14 15:34:15 +00:00
# @return [ELFTools::Structs::ELF32_Phdr, ELFTools::Structs::ELF64_Phdr] Program header.
#
# source://elftools//lib/elftools/segments/segment.rb#7
def header; end
2023-12-14 15:34:15 +00:00
# Is this segment readable?
#
# @return [Boolean] Ture or false.
#
# source://elftools//lib/elftools/segments/segment.rb#39
def readable?; end
2023-12-14 15:34:15 +00:00
# @return [#pos=, #read] Streaming object.
#
# source://elftools//lib/elftools/segments/segment.rb#8
def stream; end
2023-12-14 15:34:15 +00:00
# Return +header.p_type+ in a simplier way.
#
# @return [Integer] The type, meaning of types are defined in {Constants::PT}.
#
# source://elftools//lib/elftools/segments/segment.rb#26
def type; end
2023-12-14 15:34:15 +00:00
# Is this segment writable?
#
# @return [Boolean] Ture or false.
#
# source://elftools//lib/elftools/segments/segment.rb#45
def writable?; end
class << self
2023-12-14 15:34:15 +00:00
# Use different class according to +header.p_type+.
#
# @param header [ELFTools::Structs::ELF32_Phdr, ELFTools::Structs::ELF64_Phdr] Program header of a segment.
# @param stream [#pos=, #read] Streaming object.
# @return [ELFTools::Segments::Segment] Return object dependes on +header.p_type+.
#
# source://elftools//lib/elftools/segments/segments.rb#22
def create(header, stream, *args, **kwargs); end
end
end
2023-12-14 15:34:15 +00:00
# Define ELF related structures in this module.
#
# Structures are fetched from https://github.com/torvalds/linux/blob/master/include/uapi/linux/elf.h.
# Use gem +bindata+ to have these structures support 32/64 bits and little/big endian simultaneously.
#
# source://elftools//lib/elftools/structs.rb#10
module ELFTools::Structs; end
2023-12-14 15:34:15 +00:00
# Program header structure for 32-bit.
#
# source://elftools//lib/elftools/structs.rb#123
class ELFTools::Structs::ELF32_Phdr < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Symbol structure for 32-bit.
#
# source://elftools//lib/elftools/structs.rb#155
class ELFTools::Structs::ELF32_sym < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Program header structure for 64-bit.
#
# source://elftools//lib/elftools/structs.rb#136
class ELFTools::Structs::ELF64_Phdr < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Symbol structure for 64-bit.
#
# source://elftools//lib/elftools/structs.rb#166
class ELFTools::Structs::ELF64_sym < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# The base structure to define common methods.
#
# source://elftools//lib/elftools/structs.rb#13
class ELFTools::Structs::ELFStruct < ::BinData::Record
2023-12-14 15:34:15 +00:00
# @return [Integer] 32 or 64.
#
# source://elftools//lib/elftools/structs.rb#18
def elf_class; end
2023-12-14 15:34:15 +00:00
# @return [Integer] 32 or 64.
#
# source://elftools//lib/elftools/structs.rb#18
def elf_class=(_arg0); end
2023-12-14 15:34:15 +00:00
# @return [Integer] The file offset of this header.
#
# source://elftools//lib/elftools/structs.rb#19
def offset; end
2023-12-14 15:34:15 +00:00
# @return [Integer] The file offset of this header.
#
# source://elftools//lib/elftools/structs.rb#19
def offset=(_arg0); end
2023-12-14 15:34:15 +00:00
# Records which fields have been patched.
#
# @return [Hash{Integer => Integer}] Patches.
#
# source://elftools//lib/elftools/structs.rb#23
def patches; end
2023-12-14 15:34:15 +00:00
# BinData hash(Snapshot) that behaves like HashWithIndifferentAccess
#
# source://bindata/2.4.15/lib/bindata/struct.rb#106
def to_h; end
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# Hooks the constructor.
#
# +BinData::Record+ doesn't allow us to override +#initialize+, so we hack +new+ here.
#
# source://elftools//lib/elftools/structs.rb#34
def new(*args); end
2023-12-14 15:34:15 +00:00
# Packs an integer to string.
#
# @param val [Integer]
# @param bytes [Integer]
# @raise [ArgumentError]
# @return [String]
#
# source://elftools//lib/elftools/structs.rb#64
def pack(val, bytes); end
2023-12-14 15:34:15 +00:00
# Gets the endianness of current class.
#
# @return [:little, :big] The endianness.
#
# source://elftools//lib/elftools/structs.rb#56
def self_endian; end
end
end
2023-12-14 15:34:15 +00:00
# DRY. Many fields have different type in different arch.
#
# source://elftools//lib/elftools/structs.rb#14
ELFTools::Structs::ELFStruct::CHOICE_SIZE_T = T.let(T.unsafe(nil), Proc)
2023-12-14 15:34:15 +00:00
# Dynamic tag header.
#
# source://elftools//lib/elftools/structs.rb#191
class ELFTools::Structs::ELF_Dyn < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# ELF header structure.
#
# source://elftools//lib/elftools/structs.rb#80
class ELFTools::Structs::ELF_Ehdr < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Note header.
#
# source://elftools//lib/elftools/structs.rb#183
class ELFTools::Structs::ELF_Nhdr < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Gets the class of program header according to bits.
#
# source://elftools//lib/elftools/structs.rb#149
ELFTools::Structs::ELF_Phdr = T.let(T.unsafe(nil), Hash)
2023-12-14 15:34:15 +00:00
# Rel header in .rel section.
#
# source://elftools//lib/elftools/structs.rb#200
class ELFTools::Structs::ELF_Rel < ::ELFTools::Structs::ELFStruct
2023-12-14 15:34:15 +00:00
# Compatibility with ELF_Rela, both can be used interchangeably
#
# source://elftools//lib/elftools/structs.rb#206
def r_addend; end
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Rela header in .rela section.
#
# source://elftools//lib/elftools/structs.rb#212
class ELFTools::Structs::ELF_Rela < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Section header structure.
#
# source://elftools//lib/elftools/structs.rb#108
class ELFTools::Structs::ELF_Shdr < ::ELFTools::Structs::ELFStruct
class << self
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/base.rb#53
def inherited(subclass); end
2023-12-14 15:34:15 +00:00
# source://bindata/2.4.15/lib/bindata/dsl.rb#279
def new(*args); end
end
end
2023-12-14 15:34:15 +00:00
# Get symbol header class according to bits.
#
# source://elftools//lib/elftools/structs.rb#177
ELFTools::Structs::ELF_sym = T.let(T.unsafe(nil), Hash)
2023-12-14 15:34:15 +00:00
# Define some util methods.
#
# source://elftools//lib/elftools/util.rb#5
module ELFTools::Util
extend ::ELFTools::Util::ClassMethods
end
2023-12-14 15:34:15 +00:00
# Class methods.
#
# source://elftools//lib/elftools/util.rb#7
module ELFTools::Util::ClassMethods
2023-12-14 15:34:15 +00:00
# Round up the number to be mulitple of
# +2**bit+.
#
# @example
# align(10, 1) #=> 10
# align(10, 2) #=> 12
# align(10, 3) #=> 16
# align(10, 4) #=> 16
# align(10, 5) #=> 32
# @param num [Integer] Number to be rounded-up.
# @param bit [Integer] How many bit to be aligned.
# @return [Integer] See examples.
#
# source://elftools//lib/elftools/util.rb#19
def align(num, bit); end
2023-12-14 15:34:15 +00:00
# Read from stream until reach a null-byte.
#
# @example
# Util.cstring(File.open('/bin/cat'), 0)
# #=> "\x7FELF\x02\x01\x01"
# @param stream [#pos=, #read] Streaming object
# @param offset [Integer] Start from here.
# @return [String] Result string will never contain null byte.
#
# source://elftools//lib/elftools/util.rb#61
def cstring(stream, offset); end
2023-12-14 15:34:15 +00:00
# Select objects from enumerator with +.type+ property
# equals to +type+.
#
# Different from naive +Array#select+ is this method
# will yield block whenever find a desired object.
#
# This method is used to simplify the same logic in methods
# {ELFFile#sections_by_type}, {ELFFile#segments_by_type}, etc.
#
# @param enum [Enumerator] An enumerator for further select.
# @param type [Object] The type you want.
# @return [Array<Object>] The return value will be objects in +enum+ with attribute
# +.type+ equals to +type+.
#
# source://elftools//lib/elftools/util.rb#88
def select_by_type(enum, type); end
2023-12-14 15:34:15 +00:00
# Fetch the correct value from module +mod+.
#
# See {ELFTools::ELFFile#segment_by_type} for how to
# use this method.
#
# @param mod [Module] The module defined constant numbers.
# @param val [Integer, Symbol, String] Desired value.
# @raise [ArgumentError]
# @return [Integer] Currently this method always return a value
# from {ELFTools::Constants}.
#
# source://elftools//lib/elftools/util.rb#36
def to_constant(mod, val); end
end
2023-12-14 15:34:15 +00:00
# Current gem version
#
# source://elftools//lib/elftools/version.rb#5
ELFTools::VERSION = T.let(T.unsafe(nil), String)