* src/pic16/devices.inc,
[fw/sdcc] / src / pic16 / device.h
index 717b681cda49051b4881d43b0d1d29b32510406a..63b83572d15d3047f68267b507725b23711ddce7 100644 (file)
 #ifndef  __DEVICE_H__
 #define  __DEVICE_H__
 
-#if defined(__BORLANDC__) || defined(_MSC_VER)
-#define STRCASECMP stricmp
-#else
-#define STRCASECMP strcasecmp
-#endif
-
 #define CONFIGURATION_WORDS    20
 #define IDLOCATION_BYTES       20
 
@@ -72,15 +66,15 @@ typedef struct {
 #define PROCESSOR_NAMES    4
 /* Processor unique attributes */
 typedef struct PIC16_device {
-  char *name[PROCESSOR_NAMES];/* aliases for the processor name */
-
-  int maxRAMaddress;           /* maximum value for a data address */
+  char *name[PROCESSOR_NAMES];  /* aliases for the processor name */
+  /* RAMsize *must* be the first item to copy for 'using' */
   int RAMsize;                 /* size of Data RAM - VR 031120 */
   int acsSplitOfs;             /* access bank split offset */
-  int extMIface;               /* device has external memory interface */
   sfrRangeInfo_t sfrRange;     /* SFR range */
   configWordsInfo_t cwInfo;    /* configuration words info */
   idBytesInfo_t idInfo;                /* ID Locations info */
+  /* next *must* be the first field NOT being copied via 'using' */
+  struct PIC16_device *next;    /* linked list */
 } PIC16_device;
 
 /* Given a pointer to a register, this macro returns the bank that it is in */
@@ -109,13 +103,19 @@ typedef struct {
   unsigned int debgen;
 } pic16_options_t;
 
+extern int xinst;
+
 #define STACK_MODEL_SMALL      (pic16_options.stack_model == 0)
 #define STACK_MODEL_LARGE      (pic16_options.stack_model == 1)
 
 extern set *fix_idataSymSet;
 extern set *rel_idataSymSet;
 
+#if 0
+/* This is an experimental code for #pragma inline
+   and is temporarily disabled for 2.5.0 release */
 extern set *asmInlineMap;
+#endif  /* 0 */
 
 typedef struct {
   unsigned long isize;
@@ -135,7 +135,6 @@ void pic16_assignConfigWordValue(int address, unsigned int value);
 void pic16_assignIdByteValue(int address, char value);
 int pic16_isREGinBank(regs *reg, int bank);
 int pic16_REGallBanks(regs *reg);
-void pic16_setMaxRAM(int size);
 int PIC16_IS_CONFIG_ADDRESS(int address);
 int PIC16_IS_IDLOC_ADDRESS(int address);
 int PIC16_IS_HWREG_ADDRESS(int address);
@@ -145,3 +144,4 @@ int checkAddSym(set **set, symbol *reg);
 int checkSym(set *set, symbol *reg);
 
 #endif  /* __DEVICE_H__ */
+