struct set ;
struct value ;
+struct eBBlock;
+
typedef struct memmap{
- unsigned char pageno;/* page no for this variable */
+ unsigned char pageno; /* page no for this variable */
const char *sname; /* character prefix for map */
- char dbName ; /* debugger address space name */
- int slbl ; /* label counter for space */
- unsigned sloc ; /* starting location */
- unsigned fmap : 1; /* 1 = 16bit addressing reqd */
- unsigned paged : 1; /* this is a paged mem space */
- unsigned direct: 1; /* 1= indirect access only */
- unsigned bitsp: 1; /* 1 = bit addressable space */
- unsigned codesp:1; /* 1 = code space */
- unsigned regsp: 1; /* 1= sfr space */
- FILE *oFile ; /* object file associated */
- struct set *syms; /* symbols defined in this segment */
+ char dbName ; /* debugger address space name */
+ int ptrType; /* pointer Type for this space */
+ int slbl ; /* label counter for space */
+ unsigned sloc ; /* starting location */
+ unsigned fmap : 1; /* 1 = 16bit addressing reqd */
+ unsigned paged : 1; /* this is a paged mem space */
+ unsigned direct: 1; /* 1= indirect access only */
+ unsigned bitsp: 1; /* 1 = bit addressable space */
+ unsigned codesp:1; /* 1 = code space */
+ unsigned regsp: 1; /* 1= sfr space */
+ FILE *oFile ; /* object file associated */
+ struct set *syms; /* symbols defined in this segment */
} memmap ;
extern FILE *junkFile ;
#define BIT_NAME port->mem.bit_name
#define REG_NAME port->mem.reg_name
#define STATIC_NAME port->mem.static_name
+#define HOME_NAME port->mem.home_name
/* forward definition for variables */
extern memmap *xstack; /* xternal stack data */
extern memmap *_const; /* constant segment */
extern memmap *generic; /* unknown */
extern memmap *overlay; /* the overlay segment */
+extern memmap *eeprom; /* eepromp space */
+extern memmap *eeprom; /* eepromp space */
+extern memmap *home; /* Non-banked home space */
+
+extern int fatalError;
extern struct set *ovrSetSets;
+extern int maxRegBank;
+
/* easy access macros */
#define IN_BITSPACE(map) (map && map->bitsp)
#define IN_STACK(x) (IS_SPEC(x) && (SPEC_OCLS(x) == xstack || SPEC_OCLS(x) == istack ))
#define IN_DIRSPACE(map) (map && map->direct)
#define IN_PAGEDSPACE(map) (map && map->paged )
#define IN_CODESPACE(map) (map && map->codesp)
+#define IN_REGSP(map) (map && map->regsp)
+#define PTR_TYPE(map) (map ? (map->ptrType ? map->ptrType : POINTER)\
+ : GPOINTER)
/* forward decls for functions */
-memmap *allocMap (char,char,char,char,char,char,unsigned, const char *,char );
+memmap *allocMap (char,char,char,char,char,char,unsigned, const char *,char,int );
void initMem ( );
void allocGlobal (struct symbol * );
void allocLocal (struct symbol * );
void overlay2Set ( );
void overlay2data ( );
void redoStackOffsets( );
-
+void printAllocInfo (struct symbol *, FILE * );
+void doOverlays (struct eBBlock **, int count );
#endif