|
|
1.1 root 1: /* Copyright (c) 1979 Regents of the University of California */
2:
3: /* sccsid[] = "@(#)h00vars.h 1.11 4/7/87"; */
4:
5: #include <stdio.h>
6: #include "whoami.h"
7:
8: #define PXPFILE "pmon.out"
9: #define BITSPERBYTE 8
10: #define BITSPERLONG (BITSPERBYTE * sizeof(long))
11: #define LG2BITSBYTE 03
12: #define MSKBITSBYTE 07
13: #define LG2BITSLONG 05
14: #define MSKBITSLONG 037
15: #define HZ 60
16: #define MAXLVL 20
17: #define MAXERRS 75
18: #define NAMSIZ 76
19: #define MAXFILES 32
20: #define PREDEF 2
21: #ifdef ADDR32
22: #ifndef tahoe
23: #define STDLVL ((struct iorec *)(0x7ffffff1))
24: #define GLVL ((struct iorec *)(0x7ffffff0))
25: #else tahoe
26: #define STDLVL ((struct iorec *)(0xbffffff1))
27: #define GLVL ((struct iorec *)(0xbffffff0))
28: #endif tahoe
29: #endif ADDR32
30: #ifdef ADDR16
31: #define STDLVL ((struct iorec *)(0xfff1))
32: #define GLVL ((struct iorec *)(0xfff0))
33: #endif ADDR16
34: #define FILNIL ((struct iorec *)(0))
35: #define INPUT ((struct iorec *)(&input))
36: #define OUTPUT ((struct iorec *)(&output))
37: #define ERR ((struct iorec *)(&_err))
38: typedef enum {FALSE, TRUE} bool;
39:
40: /*
41: * runtime display structure
42: */
43: struct display {
44: char *ap;
45: char *fp;
46: };
47:
48: /*
49: * formal routine structure
50: */
51: struct formalrtn {
52: long (*fentryaddr)(); /* formal entry point */
53: long fbn; /* block number of function */
54: struct display fdisp[ MAXLVL ]; /* saved at first passing */
55: };
56:
57: /*
58: * program variables
59: */
60: extern struct display _disply[MAXLVL];/* runtime display */
61: extern int _argc; /* number of passed args */
62: extern char **_argv; /* values of passed args */
63: extern long _stlim; /* statement limit */
64: extern long _stcnt; /* statement count */
65: extern long _seed; /* random number seed */
66: extern char *_maxptr; /* maximum valid pointer */
67: extern char *_minptr; /* minimum valid pointer */
68: extern long _pcpcount[]; /* pxp buffer */
69:
70: /*
71: * file structures
72: */
73: struct iorechd {
74: char *fileptr; /* ptr to file window */
75: long lcount; /* number of lines printed */
76: long llimit; /* maximum number of text lines */
77: FILE *fbuf; /* FILE ptr */
78: struct iorec *fchain; /* chain to next file */
79: struct iorec *flev; /* ptr to associated file variable */
80: char *pfname; /* ptr to name of file */
81: short funit; /* file status flags */
82: unsigned short fblk; /* index into active file table */
83: long fsize; /* size of elements in the file */
84: char fname[NAMSIZ]; /* name of associated UNIX file */
85: };
86:
87: struct iorec {
88: char *fileptr; /* ptr to file window */
89: long lcount; /* number of lines printed */
90: long llimit; /* maximum number of text lines */
91: FILE *fbuf; /* FILE ptr */
92: struct iorec *fchain; /* chain to next file */
93: struct iorec *flev; /* ptr to associated file variable */
94: char *pfname; /* ptr to name of file */
95: short funit; /* file status flags */
96: unsigned short fblk; /* index into active file table */
97: long fsize; /* size of elements in the file */
98: char fname[NAMSIZ]; /* name of associated UNIX file */
99: char buf[BUFSIZ]; /* I/O buffer */
100: char window[1]; /* file window element */
101: };
102:
103: /*
104: * unit flags
105: */
106: #define SPEOLN 0x100 /* 1 => pseudo EOLN char read at EOF */
107: #define FDEF 0x080 /* 1 => reserved file name */
108: #define FTEXT 0x040 /* 1 => text file, process EOLN */
109: #define FWRITE 0x020 /* 1 => open for writing */
110: #define FREAD 0x010 /* 1 => open for reading */
111: #define TEMP 0x008 /* 1 => temporary file */
112: #define SYNC 0x004 /* 1 => window is out of sync */
113: #define EOLN 0x002 /* 1 => at end of line */
114: #define EOFF 0x001 /* 1 => at end of file */
115:
116: /*
117: * file routines
118: */
119: extern struct iorec *GETNAME();
120: extern char *MKTEMP();
121: extern char *PALLOC();
122:
123: /*
124: * file record variables
125: */
126: extern struct iorechd _fchain; /* head of active file chain */
127: extern struct iorec *_actfile[]; /* table of active files */
128: extern long _filefre; /* last used entry in _actfile */
129:
130: /*
131: * standard files
132: */
133: extern struct iorechd input;
134: extern struct iorechd output;
135: extern struct iorechd _err;
136:
137: /*
138: * seek pointer struct for TELL, SEEK extensions
139: */
140: struct seekptr {
141: long cnt;
142: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.