7b03bfcb630758e210ea2180c652722572da1ab6
[clinton/Virtual-Jaguar-Rx.git] / src / debugger / ELFManager.h
1
2
3 #ifndef __ELFMANAGER_H__
4 #define __ELFMANAGER_H__
5
6
7 typedef enum {
8 ELF_NO_TYPE = -1,
9 ELF_NULL_TYPE = 0,
10 ELF_text_TYPE,
11 ELF_rodata_TYPE,
12 ELF_data_TYPE,
13 ELF_bss_TYPE,
14 ELF_heap_TYPE,
15 ELF_debug_aranges_TYPE,
16 ELF_debug_info_TYPE,
17 ELF_debug_abbrev_TYPE,
18 ELF_debug_line_TYPE,
19 ELF_debug_frame_TYPE,
20 ELF_debug_str_TYPE,
21 ELF_debug_loc_TYPE,
22 ELF_debug_ranges_TYPE,
23 ELF_comment_TYPE,
24 ELF_shstrtab_TYPE,
25 ELF_symtab_TYPE,
26 ELF_strtab_TYPE,
27 ELF_END_TYPE
28 }ELFSECTIONTYPE;
29
30
31 // Internal manager
32 extern void ELFManager_Init(void);
33 extern bool ELFManager_DwarfInit(Elf *PtrElfMem);
34 extern Elf *ELFManager_MemOpen(char *PtrELFExe, size_t Size);
35 extern int ELFManager_MemEnd(void);
36 extern void ELFManager_Reset(void);
37 extern void ELFManager_Close(void);
38 extern bool ELFManager_AddTab(void *Ptr, size_t type);
39 extern void *ELFManager_ExeCopy(void *src, size_t size);
40
41 // Sections manager
42 extern size_t ELFManager_GetSectionType(char *SectionName);
43
44 // Symbols manager
45 extern size_t ELFManager_GetAdrFromSymbolName(char *SymbolName);
46 extern char *ELFManager_GetSymbolnameFromAdr(size_t Adr);
47
48 // Functions manager
49 extern char *ELFManager_GetFunctionName(size_t Adr);
50
51
52 #endif // __ELFMANAGER_H__