home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
language
/
sozobon2
/
ld.h
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-23
|
2KB
|
102 lines
/* Copyright (c) 1988 by Sozobon, Limited. Author: Johann Ruegg
*
* Permission is granted to anyone to use this software for any purpose
* on any computer system, and to redistribute it freely, with the
* following restrictions:
* 1) No charge may be made other than reasonable charges for reproduction.
* 2) Modified versions must be clearly marked as such.
* 3) The authors are not responsible for any harmful consequences
* of using this software, even if they result from defects in it.
*/
#ifdef NULL
#undef NULL
#endif
#define NULL 0L
#ifdef dLibs
#define OPENBR(x) open(x,0)
#define OPENBW(x) creat(x,0)
#else
FILE *fopen();
#define OPENBR(x) openb(x,0)
#define OPENBW(x) openb(x,1)
#endif
#define MAXFI 60 /* max no. of files */
#define MAXSYM 1000 /* max global syms in final obj */
#define MAXLOC 400 /* max syms in one .o */
#define MAXOBJ 100 /* max objects actually loaded */
#define MAXLIB 200 /* max library objects skipped */
#define NHASH 64 /* power of 2 */
#define HMASK 0x3f /* bits for NHASH */
#define AMAGIC 0xff65
#define OMAGIC 0x601a
struct hdr {
int magic;
long tsize, dsize, bsize;
long syms;
long f1,f2;
int f3;
} h;
struct finfo {
char *fname;
int fd;
} files[MAXFI];
int nfiles;
struct oinfo {
int fno;
char aname[14];
struct hdr oh;
long tbase, dbase, bbase;
long im_td, im_rel;
char *im_sym;
} obj[MAXOBJ];
int nobj;
struct skipstr {
long offs;
char aname[14];
struct hdr oh;
char *ims;
};
struct skipstr *skip;
int nskip;
struct sym {
char name[8];
char flags;
char mark;
long value;
};
struct sym *lsym;
struct sinfo {
int onum;
struct sym sy;
struct sinfo *hchain;
} sym[MAXSYM];
int nsym;
struct arch {
char anm[14];
long modti;
long amagic;
long asize;
int fill;
};
struct sinfo *hashs[NHASH];
#define LBUFSZ 6000
#define LBUFCNT (LBUFSZ/2)
short *lbuf;
short *rbuf;
long textsize, datasize, bsssize, comsize;