#include #include #include #include "../ll/elf.h" enum { NHASH = 10007, NHUNK = 100000, STRINGSZ = 200, MINLC = 1, MAXIO = 6*8192, MAXHIST = 20, /* limit of path elements for history symbols */ }; extern char thechar; extern char* thestring; #ifndef EXTERN #define EXTERN extern #endif EXTERN vlong HEADR; EXTERN int HEADTYPE; EXTERN vlong INITDAT; EXTERN char* INITENTRY; /* entry point */ EXTERN vlong INITRND; EXTERN vlong INITTEXT; EXTERN vlong INITTEXTP; EXTERN long bsssize; EXTERN int cbc; EXTERN char* cbp; EXTERN int cout; EXTERN vlong datsize; EXTERN char debug[128]; EXTERN char* hunk; EXTERN long lcsize; EXTERN int nerrors; EXTERN long nhunk; EXTERN char* outfile; EXTERN long spsize; EXTERN long symsize; EXTERN vlong textsize; EXTERN long thunk; EXTERN union { struct { char obuf[MAXIO]; /* output buffer */ uchar ibuf[MAXIO]; /* input buffer */ } u; char dbuf[1]; } buf; #define cbuf u.obuf #define xbuf u.ibuf void gethunk(void); void* mysbrk(usize); void errorexit(void); void strnput(char*, int); void cflush(void); vlong entryvalue(void); void wput(long); void wputl(long); void llput(vlong v); void llputl(vlong v); void lput(long); void lputl(long); void cput(uint); vlong atolwhex(char*); /* implementation */ void diag(char*, ...); #pragma varargck argpos diag 1