start moving arm core/bcm support into platform specific functions
[AROS.git] / rom / debug / debug_intern.h
blob165356f2a98731e65fb8ee07c7b38c80998eb88e
1 /*
2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc:
6 */
8 #include <aros/config.h>
9 #include <dos/bptr.h>
10 #include <exec/libraries.h>
11 #include <exec/semaphores.h>
12 #include <libraries/debug.h>
14 typedef struct
16 char *s_name; /* Symbol name */
17 void *s_lowest; /* Start address */
18 void *s_highest; /* End address */
19 } dbg_sym_t;
21 struct segment;
23 typedef struct
25 struct MinNode m_node; /* For linking into a list */
26 BPTR m_seg; /* First segment pointer */
27 char *m_shstr; /* Section headers table */
28 char *m_str; /* Symbol names table */
29 struct segment **m_segments; /* Sorted array of segments */
30 unsigned int m_segcnt; /* Count of segments */
31 #if AROS_MODULES_DEBUG
32 char *m_seggdbhlp; /* Pre-built string for add-symbol-file */
33 #endif
34 dbg_sym_t *m_symbols; /* Array of associated symbols */
35 unsigned long m_symcnt; /* Number of symbols in the array */
36 void *m_lowest; /* Lowest address of all segments */
37 void *m_highest; /* Highest address of all segments */
38 void *m_gaplowest; /* Lowest address of biggest gap */
39 void *m_gaphighest; /* Highest address of biggest gap */
40 char m_name[1]; /* Module name, variable length */
41 } module_t;
43 struct segment
45 struct MinNode s_node; /* For linking into the list */
46 BPTR s_seg; /* DOS segment pointer */
47 void * s_lowest; /* Start address */
48 void * s_highest; /* End address */
49 module_t * s_mod; /* Module descriptor */
50 char * s_name; /* Segment name */
51 unsigned int s_num; /* Segment number */
54 struct DebugBase
56 struct Library db_Lib;
57 struct MinList db_Modules;
58 struct SignalSemaphore db_ModSem;
59 APTR db_KernelBase;
62 #define DBGBASE(x) ((struct DebugBase *)x)
63 #define KernelBase DBGBASE(DebugBase)->db_KernelBase
65 void RegisterModule_ELF(const char *name, BPTR segList, struct elfheader *eh, struct sheader *sections,
66 struct Library *DebugBase);