/* Header file for C programs that supplement the Pascal code */ /* Copyright (c) 1979 Regents of the University of California */ /* sccsid[] = "@(#)h00vars.h 1.11 5/8/84"; */ /* THIS VERSION COMES BACK FROM SUN AND ALLEGEDLY MATCHES OUR CURRENT COMPILER 8/4/84 */ #include /* #include "whoami.h" --- no, don't bother; it's empty --- don (8/7/89) */ #define PXPFILE "pmon.out" #define BITSPERBYTE 8 #define BITSPERLONG (BITSPERBYTE * sizeof(long)) #define LG2BITSBYTE 03 #define MSKBITSBYTE 07 #define LG2BITSLONG 05 #define MSKBITSLONG 037 #define HZ 60 #define MAXLVL 20 #define MAXERRS 75 #define NAMSIZ 76 #define MAXFILES 32 #define PREDEF 2 #ifdef ADDR32 #define STDLVL ((struct iorec *)(0x7ffffff1)) #define GLVL ((struct iorec *)(0x7ffffff0)) #endif ADDR32 #ifdef ADDR16 #define STDLVL ((struct iorec *)(0xfff1)) #define GLVL ((struct iorec *)(0xfff0)) #endif ADDR16 #define FILNIL ((struct iorec *)(0)) #define INPUT ((struct iorec *)(&input)) #define OUTPUT ((struct iorec *)(&output)) #define ERR ((struct iorec *)(&_err)) typedef enum {FALSE, TRUE} bool; #define MAXINT 2147483647 #define MININT -2147483648 /* * runtime display structure */ struct display { char *ap; char *fp; }; /* * formal routine structure */ struct formalrtn { long (*fentryaddr)(); /* formal entry point */ long fbn; /* block number of function */ struct display fdisp[ MAXLVL ]; /* saved at first passing */ }; /* * program variables */ extern struct display _disply[MAXLVL];/* runtime display */ extern int _argc; /* number of passed args */ extern char **_argv; /* values of passed args */ extern long _stlim; /* statement limit */ extern long _stcnt; /* statement count */ extern long _seed; /* random number seed */ extern char *_maxptr; /* maximum valid pointer */ extern char *_minptr; /* minimum valid pointer */ extern long _pcpcount[]; /* pxp buffer */ /* * file structures */ struct iorechd { char *fileptr; /* ptr to file window */ long lcount; /* number of lines printed */ long llimit; /* maximum number of text lines */ FILE *fbuf; /* FILE ptr */ struct iorec *fchain; /* chain to next file */ struct iorec *flev; /* ptr to associated file variable */ char *pfname; /* ptr to name of file */ short funit; /* file status flags */ unsigned short fblk; /* index into active file table */ long fsize; /* size of elements in the file */ char fname[NAMSIZ]; /* name of associated UNIX file */ }; struct iorec { char *fileptr; /* ptr to file window */ long lcount; /* number of lines printed */ long llimit; /* maximum number of text lines */ FILE *fbuf; /* FILE ptr */ struct iorec *fchain; /* chain to next file */ struct iorec *flev; /* ptr to associated file variable */ char *pfname; /* ptr to name of file */ short funit; /* file status flags */ unsigned short fblk; /* index into active file table */ long fsize; /* size of elements in the file */ char fname[NAMSIZ]; /* name of associated UNIX file */ char buf[BUFSIZ]; /* I/O buffer */ char window[1]; /* file window element */ }; /* * unit flags */ #define SPEOLN 0x100 /* 1 => pseudo EOLN char read at EOF */ #define FDEF 0x080 /* 1 => reserved file name */ #define FTEXT 0x040 /* 1 => text file, process EOLN */ #define FWRITE 0x020 /* 1 => open for writing */ #define FREAD 0x010 /* 1 => open for reading */ #define TEMP 0x008 /* 1 => temporary file */ #define SYNC 0x004 /* 1 => window is out of sync */ #define EOLN 0x002 /* 1 => at end of line */ #define EOFF 0x001 /* 1 => at end of file */ /* * file routines */ extern struct iorec *GETNAME(); extern char *MKTEMP(); extern char *PALLOC(); /* * file record variables */ extern struct iorechd _fchain; /* head of active file chain */ extern struct iorec *_actfile[]; /* table of active files */ extern long _filefre; /* last used entry in _actfile */ /* * standard files */ extern struct iorechd input; extern struct iorechd output; extern struct iorechd _err; /* * seek pointer struct for TELL, SEEK extensions */ struct seekptr { long cnt; };