ack/mach/proto/as/comm1.h

130 lines
3.2 KiB
C
Raw Normal View History

1994-06-24 14:02:31 +00:00
/* $Id$ */
1987-03-09 19:15:41 +00:00
/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
1985-04-12 16:56:43 +00:00
/* @(#)comm1.h 1.5 */
/*
* variable declarations
*/
#ifdef extern
#define INIT(x) = x
#else
#define INIT(x) /* empty */
#endif
extern short pass INIT(PASS_1);
/* PASS 1, 2 or 3 */
extern short peekc; /* push back symbol (PASS_1) */
extern short unresolved; /* number of unresolved references */
1988-06-13 15:28:19 +00:00
extern long lineno; /* input line number */
1985-04-12 16:56:43 +00:00
extern short hllino; /* high-level language line number */
extern short nerrors; /* terminate at end of pass if set */
extern short sflag INIT(SYM_DEF);
/* -s option (symbol table info) */
extern char *progname; /* for error messages */
extern char *modulename; /* for error messages */
1986-12-01 15:41:29 +00:00
extern common_t *commons; /* header of commons list */
1985-04-12 16:56:43 +00:00
#ifdef ASLD
extern short archmode; /* scanning archives */
extern long archsize; /* size of individual archive entries */
#else
extern short uflag; /* if 1 make undefineds extern */
/* symbol table index for last S_UND */
#endif
#ifdef LISTING
extern short dflag; /* -d option (list mode) */
#endif
#ifdef ASLD
#ifdef RELOCATION
extern short rflag; /* -r option (relocation info) */
#endif /* RELOCATION */
1985-04-12 16:56:43 +00:00
#else
#define rflag 1
extern valu_t relonami;
#endif /* ASLD */
1985-04-12 16:56:43 +00:00
#ifdef THREE_PASS
extern short bflag; /* -b option (no optimizations) */
#endif
extern char *aoutpath INIT("a.out");
extern char temppath[50];
extern FILE *input;
extern FILE *tempfile;
1990-08-01 14:30:45 +00:00
extern char *stringbuf; /* contains last string value */
extern int stringlen; /* contains length of last string value */
1985-04-12 16:56:43 +00:00
extern sect_t sect[SECTMAX];
/*
* specials for the location counter
*/
extern sect_t *DOTSCT; /* &sect[DOTTYP-S_MIN] or NULL */
extern ADDR_T DOTVAL; /* DOTSCT->s_size + DOTSCT->s_base */
1985-04-12 16:56:43 +00:00
extern short DOTTYP; /* S_MIN..S_MAX or S_UND */
extern unsigned short nname; /* Counts name table index in PASS_3 */
1986-12-01 15:41:29 +00:00
1985-04-12 16:56:43 +00:00
extern item_t *hashtab[H_TOTAL];
extern short hashindex; /* see item_search() */
extern item_t *fb_ptr[4*FB_SIZE];
#ifdef THREE_PASS
1988-06-16 13:24:10 +00:00
#define BITCHUNK (8 * MEMINCR)
extern int nbits;
extern int bitindex; /* bitindex * MEMINCR * 8 + nbits gives
number of decisions so far
*/
1985-04-12 16:56:43 +00:00
#endif
#ifdef LISTING
extern short listmode; /* -d option for current pass */
extern short listtemp; /* listmode if .list seen */
extern short listflag; /* copied from listtemp at '\n' */
extern short listcolm; /* column on output */
extern short listeoln INIT(1);
/* set by endline, tested by emit1 */
extern FILE *listfile; /* copy of source text */
extern char listpath[50];
#endif
#ifndef extern
extern item_t keytab[];
extern struct outhead outhead;
#endif
extern int curr_token;
1985-04-12 16:56:43 +00:00
/* forward function declarations */
#ifdef ASLD
1985-04-12 16:56:43 +00:00
extern char *readident();
#endif
1985-04-12 16:56:43 +00:00
extern char *remember();
extern item_t *fb_shift();
extern item_t *fb_alloc();
extern item_t *item_alloc();
extern item_t *item_search();
extern valu_t load();
extern FILE *ffcreat();
extern FILE *fftemp();
/* some library functions used */
extern char *mktemp();
1987-08-06 13:04:20 +00:00
extern char *malloc();
1990-08-01 14:30:45 +00:00
extern char *realloc();
extern char *calloc();
1985-04-12 16:56:43 +00:00
extern char *getenv();
1989-01-19 16:41:55 +00:00
extern char *strncpy();
1985-04-12 16:56:43 +00:00
/* ========== Machine dependent C declarations ========== */
#include "mach1.c"