mirror of
https://github.com/zeldaret/oot.git
synced 2024-12-19 00:47:42 +00:00
eadc477187
* Update makefiles * git subrepo clone git@github.com:EllipticEllipsis/fado.git tools/fado subrepo: subdir: "tools/fado" merged: "46c4d751a" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "46c4d751a" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * git subrepo pull tools/fado subrepo: subdir: "tools/fado" merged: "88114ebce" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "88114ebce" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * A few ideas for computing dependencies * Remove reserved identifiers from spec.h and util.h and add required headers * Fix a couple more headers * Program for reloc prerequisites * git subrepo pull tools/fado subrepo: subdir: "tools/fado" merged: "36a905f72" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "36a905f72" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * Update makefile to make dependency files and use overlay's name * git subrepo pull tools/fado subrepo: subdir: "tools/fado" merged: "43c339a59" upstream: origin: "git@github.com:EllipticEllipsis/fado.git" branch: "master" commit: "43c339a59" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596" * Change awk to grep, delete ZAPD files, gitignore elf * Delete all the cfg files * Fix memory leaks * Rename and add coloured errors * Makefile tweaks - preprocess spec before grep - split order prerequisites via phony target to reduce dependency edges - remove `resources` target - remove separate overlays targets - use `$(SPEC)` throughout - change to using filenames of relocs for overlay names via `$*` - Rearrange targets to better reflect their categories * Update gitignore * Review * Add a check for the reloc file name * get_segment_by_name * get_stmt_id_by_stmt_name * Cleaning up * algorithm change * function rename * Fix typos Co-authored-by: angie <angheloalf95@gmail.com>
75 lines
1.2 KiB
C
75 lines
1.2 KiB
C
#ifndef ELF_H
|
|
#define ELF_H
|
|
|
|
#include <stddef.h>
|
|
|
|
enum
|
|
{
|
|
ELF_MACHINE_NONE = 0,
|
|
ELF_MACHINE_MIPS = 8,
|
|
};
|
|
|
|
enum
|
|
{
|
|
ELF_TYPE_RELOC = 1,
|
|
ELF_TYPE_EXEC,
|
|
ELF_TYPE_SHARED,
|
|
ELF_TYPE_CORE,
|
|
};
|
|
|
|
struct Elf32
|
|
{
|
|
uint8_t endian;
|
|
uint16_t type;
|
|
uint16_t machine;
|
|
uint32_t version;
|
|
uint32_t entry;
|
|
uint32_t phoff;
|
|
uint32_t shoff;
|
|
uint16_t ehsize;
|
|
uint16_t phentsize;
|
|
uint16_t phnum;
|
|
uint16_t shentsize;
|
|
uint16_t shnum;
|
|
uint16_t shstrndx;
|
|
int symtabndx;
|
|
int strtabndx;
|
|
int numsymbols;
|
|
|
|
const uint8_t *data;
|
|
size_t dataSize;
|
|
uint16_t (*read16)(const uint8_t *);
|
|
uint32_t (*read32)(const uint8_t *);
|
|
};
|
|
|
|
enum
|
|
{
|
|
SHT_NULL = 0,
|
|
SHT_PROGBITS,
|
|
SHT_SYMTAB,
|
|
SHT_STRTAB,
|
|
};
|
|
|
|
struct Elf32_Section
|
|
{
|
|
const char *name;
|
|
uint32_t type;
|
|
uint32_t flags;
|
|
uint32_t addr;
|
|
uint32_t offset;
|
|
uint32_t addralign;
|
|
uint32_t entsize;
|
|
};
|
|
|
|
struct Elf32_Symbol
|
|
{
|
|
const char *name;
|
|
uint32_t value;
|
|
};
|
|
|
|
bool elf32_init(struct Elf32 *e, const void *data, size_t size);
|
|
bool elf32_get_section(struct Elf32 *e, struct Elf32_Section *sec, int secnum);
|
|
bool elf32_get_symbol(struct Elf32 *e, struct Elf32_Symbol *sym, int symnum);
|
|
|
|
#endif
|