libdragon
Loading...
Searching...
No Matches
dso_format.h
Go to the documentation of this file.
1
5#ifndef __DSO_FORMAT_H
6#define __DSO_FORMAT_H
7
8#include <stdint.h>
9#include <stdbool.h>
10
12#define DSO_MAGIC 0x44534F30 //'DSO0'
14#define DSO_MAINEXE_SYM_DATA_MAGIC 0x4D53594D //'MSYM'
15
17#define DSO_SYMS_OFS 0x18
19#define DSO_NUM_IMPORT_SYMS_OFS 0x20
21#define DSO_SYM_SIZE 0xC
22
24typedef struct dso_sym_s {
25 char *name;
26 uint32_t value;
27 uint32_t info;
28} dso_sym_t;
29
31typedef struct dso_reloc_s {
32 uint32_t offset;
33 uint32_t info;
35
37typedef struct dso_module_s {
38 uint32_t magic;
39 struct dso_module_s *prev;
40 struct dso_module_s *next;
41 uint32_t ref_count;
42 char *src_elf;
43 char *filename;
45 uint32_t num_syms;
46 uint32_t num_import_syms;
48 uint32_t num_relocs;
49 void *prog_base;
50 uint32_t prog_size;
51 uint32_t ehframe_obj[6];
52 uint32_t sym_romofs;
53 uint32_t mode;
55
57typedef struct mainexe_sym_info_s {
58 uint32_t magic;
59 uint32_t size;
60 uint32_t num_syms;
62
63#endif
char * filename
Filename data.
Definition dso_format.h:43
uint32_t sym_romofs
Debug symbol data rom address.
Definition dso_format.h:52
uint32_t info
Top bit: absolute flag; Next bit: weak flag; lowest 30 bits: size.
Definition dso_format.h:27
uint32_t num_syms
Number of symbols (includes dummy symbol at start of array)
Definition dso_format.h:45
uint32_t size
Size of data to load.
Definition dso_format.h:59
uint32_t num_relocs
Number of relocations.
Definition dso_format.h:48
uint32_t num_import_syms
Number of symbols imported.
Definition dso_format.h:46
uint32_t magic
Magic number.
Definition dso_format.h:58
struct dso_module_s * next
Next loaded dynamic library.
Definition dso_format.h:40
uint32_t offset
Program-relative offset of relocation target.
Definition dso_format.h:32
char * name
Name of symbol.
Definition dso_format.h:25
uint32_t magic
Magic number.
Definition dso_format.h:38
dso_sym_t * syms
Symbols array.
Definition dso_format.h:44
uint32_t info
Top 8 bits: type; lowest 24 bits: symbol index.
Definition dso_format.h:33
uint32_t prog_size
Size of program memory image.
Definition dso_format.h:50
uint32_t value
Pointer to symbol.
Definition dso_format.h:26
void * prog_base
Pointer to program memory image.
Definition dso_format.h:49
uint32_t ref_count
Dynamic library reference count.
Definition dso_format.h:41
uint32_t mode
Dynamic library flags.
Definition dso_format.h:53
struct dso_module_s * prev
Previous loaded dynamic library.
Definition dso_format.h:39
char * src_elf
Path to Source ELF.
Definition dso_format.h:42
dso_reloc_t * relocs
Relocation array.
Definition dso_format.h:47
uint32_t num_syms
Number of symbols in this symbol table.
Definition dso_format.h:60
DSO module data.
Definition dso_format.h:37
DSO relocation.
Definition dso_format.h:31
DSO symbol.
Definition dso_format.h:24
Information to load main executable symbol table.
Definition dso_format.h:57