Support for files created with the sdcc librarian
[fw/sdcc] / as / mcs51 / aslink.h
index 51b61bf2cf14b5bd0087ffcfde26ea86a99c048d..01988e13223cb58d8a07f22ad57d94c74c6b35a6 100644 (file)
 #define        OTHERSYSTEM 
 #endif
 
+/*
+ * PATH_MAX
+ */
+#include <limits.h>
+#ifndef PATH_MAX               /* POSIX, but not required   */
+ #if defined(__BORLANDC__) || defined(_MSC_VER)
+  #include <stdlib.h>
+  #define PATH_MAX     _MAX_PATH
+ #else
+  #define PATH_MAX     255     /* define a reasonable value */
+ #endif
+#endif
+
 /*
  * This file defines the format of the
  * relocatable binary file.
 
 #define NCPS   80              /* characters per symbol (JLH: change from 8) */
 #define        NDATA   16              /* actual data */
-#define        NINPUT  128             /* Input buffer size */
+#define        NINPUT  PATH_MAX        /* Input buffer size */
 #define        NHASH   64              /* Buckets in hash table */
 #define        HMASK   077             /* Hash mask */
 #define        NLPP    60              /* Lines per page */
 #define        NTXT    16              /* T values */
-#define        FILSPC  80              /* File spec length */
 
 /*
  *     The "R_" relocation constants define values used in
@@ -421,6 +433,7 @@ struct lbfile {
        char            *libspc;
        char            *relfil;
        char            *filspc;
+       long            offset; /*>=0 if rel file is embedded in a lib file at this offset*/
 };
 
 /*
@@ -442,7 +455,7 @@ extern      char    *rp;            /*      pointer into the LST file
 extern char    rb[NINPUT];     /*      LST file text line being
                                 *      address relocated
                                 */
-extern char    ctype[];        /*      array of character types, one per
+extern unsigned char   ctype[];        /*      array of character types, one per
                                 *      ASCII character
                                 */
 
@@ -558,6 +571,8 @@ extern      int     oflag;          /*      Output file type flag
                                 */
 extern int     mflag;          /*      Map output flag
                                 */
+extern int     sflag;          /*      JCF: Memory usage output flag
+                                */
 extern int     jflag;          /*      NoICE output flag
                                 */
 extern int     xflag;          /*      Map file radix type flag
@@ -608,6 +623,10 @@ extern     struct lbfile *lbfhead; /*      pointer to the first
                                 */
 extern Addr_T iram_size;       /*      internal ram size
                                 */
+extern long xram_size; /*      external ram size
+                                */
+extern long code_size; /*      code size
+                                */
 
 
 /* C Library function definitions */
@@ -632,6 +651,8 @@ extern      FILE *          afile();
 extern VOID            bassav();
 extern VOID            gblsav();
 extern VOID            iramsav();
+extern VOID            xramsav();
+extern VOID            codesav();
 extern VOID            iramcheck();
 extern VOID            link_main();
 extern VOID            lkexit();
@@ -648,6 +669,7 @@ extern      char            endline();
 extern char            get();
 extern VOID            getfid();
 extern VOID            getid();
+extern VOID            getSid();
 extern int             getline();
 extern int             getmap();
 extern char            getnb();
@@ -733,13 +755,17 @@ extern    VOID            s19();
 /* lkihx.c */
 extern VOID            ihx();
 extern VOID            ihxEntendedLinearAddress(Addr_T);
+extern VOID            newArea();
+
 /* lkstore.c */
 extern char            *StoreString( char *str );
 
 /* lknoice.c */
 extern void             DefineNoICE( char *name, Addr_T value, int page );
 
-/* SD added this to change
-       strcmpi --> strcmp (strcmpi NOT ANSI) */
-#define strcmpi strcmp
+/* JCF: lkmem.c */
+extern int summary(struct area * xp);
 
+/* JCF: lkaomf51.c */
+extern void SaveLinkedFilePath(char * filepath);
+extern void CreateAOMF51(void);