X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=as%2Fmcs51%2Faslink.h;h=01988e13223cb58d8a07f22ad57d94c74c6b35a6;hb=6759759919e30144ebe7a372cdeb240ddce63874;hp=b0c9a969a1186d0a7eb57b5ea496337dfd633534;hpb=e84c096709aa5210c71156dee96fea5e3c661f11;p=fw%2Fsdcc diff --git a/as/mcs51/aslink.h b/as/mcs51/aslink.h index b0c9a969..01988e13 100644 --- a/as/mcs51/aslink.h +++ b/as/mcs51/aslink.h @@ -79,6 +79,19 @@ #define OTHERSYSTEM #endif +/* + * PATH_MAX + */ +#include +#ifndef PATH_MAX /* POSIX, but not required */ + #if defined(__BORLANDC__) || defined(_MSC_VER) + #include + #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. @@ -86,12 +99,11 @@ #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 @@ -184,7 +196,7 @@ /* * General assembler address type */ -typedef unsigned int addr_t; +typedef unsigned int Addr_T; /* * The structures of head, area, areax, and sym are created @@ -230,8 +242,8 @@ struct area { struct area *a_ap; /* Area link */ struct areax *a_axp; /* Area extension link */ - addr_t a_addr; /* Beginning address of area */ - addr_t a_size; /* Total size of the area */ + Addr_T a_addr; /* Beginning address of area */ + Addr_T a_size; /* Total size of the area */ char a_type; /* Area subtype */ char a_flag; /* Flag byte */ char a_id[NCPS]; /* Name */ @@ -257,8 +269,8 @@ struct areax struct areax *a_axp; /* Area extension link */ struct area *a_bap; /* Base area link */ struct head *a_bhp; /* Base header link */ - addr_t a_addr; /* Beginning address of section */ - addr_t a_size; /* Size of the area in section */ + Addr_T a_addr; /* Beginning address of section */ + Addr_T a_size; /* Size of the area in section */ }; /* @@ -279,7 +291,7 @@ struct sym struct areax *s_axp; /* Symbol area link */ char s_type; /* Symbol subtype */ char s_flag; /* Flag byte */ - addr_t s_addr; /* Address */ + Addr_T s_addr; /* Address */ char *s_id; /* Name: JLH change from [NCPS] */ }; @@ -328,7 +340,7 @@ struct sdp { struct area *s_area; /* Paged Area link */ struct areax *s_areax; /* Paged Area Extension Link */ - addr_t s_addr; /* Page address offset */ + Addr_T s_addr; /* Page address offset */ }; /* @@ -345,9 +357,9 @@ struct rerr { int aindex; /* Linking area */ int mode; /* Relocation mode */ - addr_t rtbase; /* Base address in section */ + Addr_T rtbase; /* Base address in section */ int rindex; /* Area/Symbol reloaction index */ - addr_t rval; /* Area/Symbol offset value */ + Addr_T rval; /* Area/Symbol offset value */ }; /* @@ -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 @@ -583,7 +598,7 @@ extern int pass; /* linker pass number extern int rtcnt; /* count of elements in the * rtval[] and rtflg[] arrays */ -extern addr_t rtval[]; /* data associated with relocation +extern Addr_T rtval[]; /* data associated with relocation */ extern int rtflg[]; /* indicates if rtval[] value is * to be sent to the output file. @@ -606,7 +621,11 @@ extern struct lbname *lbnhead; /* pointer to the first extern struct lbfile *lbfhead; /* pointer to the first * library file structure */ -extern addr_t iram_size; /* internal ram size +extern Addr_T iram_size; /* internal ram size + */ +extern long xram_size; /* external ram size + */ +extern long code_size; /* code size */ @@ -632,8 +651,10 @@ extern FILE * afile(); extern VOID bassav(); extern VOID gblsav(); extern VOID iramsav(); +extern VOID xramsav(); +extern VOID codesav(); extern VOID iramcheck(); -extern VOID link(); +extern VOID link_main(); extern VOID lkexit(); extern int main(); extern VOID map(); @@ -648,12 +669,14 @@ extern char endline(); extern char get(); extern VOID getfid(); extern VOID getid(); +extern VOID getSid(); extern int getline(); extern int getmap(); extern char getnb(); extern int more(); extern VOID skip(); extern VOID unget(); +extern VOID chop_crlf(); /* lkarea.c */ extern VOID lkparea(); @@ -674,14 +697,14 @@ extern VOID symdef(); extern int symeq(); extern VOID syminit(); extern VOID symmod(); -extern addr_t symval(); +extern Addr_T symval(); /* lkeval.c */ extern int digit(); -extern addr_t eval(); -extern addr_t expr(); +extern Addr_T eval(); +extern Addr_T expr(); extern int oprio(); -extern addr_t term(); +extern Addr_T term(); /* lklist.c */ extern int dgt(); @@ -693,17 +716,17 @@ extern VOID newpag(); extern VOID slew(); /* lkrloc.c */ -extern addr_t adb_b(); -extern addr_t adb_hi(); -extern addr_t adb_lo(); -extern addr_t adb_24_hi(addr_t v, int i); -extern addr_t adb_24_mid(addr_t v, int i); -extern addr_t adb_24_lo(addr_t v, int i); -extern addr_t adw_w(); -extern addr_t adw_24(addr_t, int); -extern addr_t adw_hi(); -extern addr_t adw_lo(); -extern addr_t evword(); +extern Addr_T adb_b(); +extern Addr_T adb_hi(); +extern Addr_T adb_lo(); +extern Addr_T adb_24_hi(Addr_T v, int i); +extern Addr_T adb_24_mid(Addr_T v, int i); +extern Addr_T adb_24_lo(Addr_T v, int i); +extern Addr_T adw_w(); +extern Addr_T adw_24(Addr_T, int); +extern Addr_T adw_hi(); +extern Addr_T adw_lo(); +extern Addr_T evword(); extern VOID rele(); extern VOID reloc(); extern VOID relt(); @@ -731,14 +754,18 @@ extern VOID s19(); /* lkihx.c */ extern VOID ihx(); -extern VOID ihxEntendedLinearAddress(addr_t); +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 ); +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);