RetroArch
Classes | Functions | Variables
main.cpp File Reference
#include <algorithm>
#include <fstream>
#include <iterator>
#include <iostream>
#include <string>
#include <vector>
#include <memory>
#include <zlib.h>
#include "elf.h"
Include dependency graph for main.cpp:

Classes

struct  RplLibsDef
 
struct  ElfFile
 
struct  ElfFile::Symbol
 
struct  ElfFile::Relocation
 
struct  ElfFile::DataSection
 
struct  ElfFile::RplImport
 
struct  ElfFile::RplImportLibrary
 
struct  InputSection
 
struct  OutputSection
 

Functions

static ElfFile::SymbolfindSymbol (ElfFile &file, uint32_t address)
 
static ElfFile::RplImportfindImport (ElfFile &file, uint32_t address)
 
template<typename Type >
static TypegetLoaderDataPtr (std::vector< InputSection > &inSections, uint32_t address)
 
static elf::SymbolgetSectionSymbol (InputSection &section, size_t index)
 
static bool read (ElfFile &file, const std::string &filename)
 
template<typename SymbolIterator >
SymbolIterator addSection (ElfFile &file, std::vector< OutputSection *> &outSections, SymbolIterator symbolIterator, OutputSection *section)
 
static uint32_t getSectionIndex (std::vector< OutputSection *> &outSections, uint32_t address)
 
static uint32_t getSectionIndex (std::vector< OutputSection *> &outSections, const std::string &name)
 
static bool write (ElfFile &file, const std::string &filename)
 
int main (int argc, char **argv)
 

Variables

static const uint32_t LoadAddress = 0x01000000u
 
static const uint32_t CodeAddress = 0x02000000u
 
static const uint32_t DataAddress = 0x10000000u
 
static const uint32_t WiiuLoadAddress = 0xC0000000u
 

Function Documentation

◆ addSection()

template<typename SymbolIterator >
SymbolIterator addSection ( ElfFile file,
std::vector< OutputSection *> &  outSections,
SymbolIterator  symbolIterator,
OutputSection section 
)
Here is the caller graph for this function:

◆ findImport()

static ElfFile::RplImport* findImport ( ElfFile file,
uint32_t  address 
)
static
Here is the caller graph for this function:

◆ findSymbol()

static ElfFile::Symbol* findSymbol ( ElfFile file,
uint32_t  address 
)
static
Here is the caller graph for this function:

◆ getLoaderDataPtr()

template<typename Type >
static Type* getLoaderDataPtr ( std::vector< InputSection > &  inSections,
uint32_t  address 
)
static

◆ getSectionIndex() [1/2]

static uint32_t getSectionIndex ( std::vector< OutputSection *> &  outSections,
uint32_t  address 
)
static
Here is the caller graph for this function:

◆ getSectionIndex() [2/2]

static uint32_t getSectionIndex ( std::vector< OutputSection *> &  outSections,
const std::string name 
)
static

◆ getSectionSymbol()

static elf::Symbol* getSectionSymbol ( InputSection section,
size_t  index 
)
static
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char **  argv 
)

This file contains the main entrypoints for the Wii U executable that set up the call to main().

Here is the call graph for this function:

◆ read()

static bool read ( ElfFile file,
const std::string filename 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ write()

static bool write ( ElfFile file,
const std::string filename 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ CodeAddress

const uint32_t CodeAddress = 0x02000000u
static

◆ DataAddress

const uint32_t DataAddress = 0x10000000u
static

◆ LoadAddress

const uint32_t LoadAddress = 0x01000000u
static

◆ WiiuLoadAddress

const uint32_t WiiuLoadAddress = 0xC0000000u
static