1#ifndef SYMBIAN_E32_IMPORTS_H_
2#define SYMBIAN_E32_IMPORTS_H_
11#include <absl/status/statusor.h>
35struct ResolvedImports {
36 std::vector<ImportBlock> blocks;
37 std::map<std::string, uint32_t> functions;
38 std::map<std::string, uint32_t> objects;
39 std::set<uint32_t> object_slots;
40 std::map<std::string, uint32_t> plt_functions;
41 std::map<uint32_t, uint32_t> data_function_pointers;
43 size_t dynamic_index = 0;
44 size_t relocation_index = 0;
45 size_t data_relocation_index = 0;
49 std::string_view elf,
const std::vector<Section>& sections,
50 const Segment&
code,
const std::vector<std::string>& proxies);
52absl::StatusOr<std::string>
SymbolName(std::string_view elf,
53 const std::vector<Section>& sections,
54 const Section& symbols,
size_t symbol);
57 uint32_t location, uint32_t
type,
58 uint32_t slot_offset);
60std::string
EncodeImports(
const std::vector<ImportBlock>& imports);
61absl::StatusOr<std::vector<ImportBlock>>
DecodeImports(std::string_view section,
62 std::string_view
code,
69 std::string_view section, std::string_view
code, uint32_t text_size,
std::vector< uint32_t > code
Definition e32.cc:70
std::string EncodeImports(const std::vector< ImportBlock > &imports)
Definition imports.cc:534
std::string EncodePeImports(const std::vector< ImportBlock > &imports)
Definition imports.cc:605
absl::StatusOr< std::vector< ImportBlock > > DecodePeImports(std::string_view section, std::string_view code, uint32_t text_size, uint32_t count)
Definition imports.cc:615
absl::StatusOr< std::string > SymbolName(std::string_view elf, const std::vector< Section > §ions, const Section &symbols, size_t symbol)
Definition imports.cc:69
absl::StatusOr< std::vector< ImportBlock > > DecodeImports(std::string_view section, std::string_view code, uint32_t count)
Definition imports.cc:557
absl::StatusOr< ResolvedImports > ResolveImports(std::string_view elf, const std::vector< Section > §ions, const Segment &code, const std::vector< std::string > &proxies)
Definition imports.cc:84
absl::Status CheckImportCall(std::string_view elf, const Segment &code, uint32_t location, uint32_t type, uint32_t slot_offset)
Definition imports.cc:470
uint32_t entry_size
Definition exports.cc:73
uint32_t link
Definition exports.cc:72
uint32_t offset
Definition exports.cc:70
uint32_t size
Definition exports.cc:71
uint32_t address
Definition exports.cc:69
uint32_t type
Definition exports.cc:68