1 /* Copyright (c) 1979 Regents of the University of California */
2 
3 /* sccsid[] = "@(#)h00vars.h 1.1 10/30/80"; */
4 
5 #include <stdio.h>
6 
7 #define PXPFILE		"pmon.out"
8 #define	BITSPERBYTE	8
9 #define	BITSPERLONG	(BITSPERBYTE * sizeof(long))
10 #define HZ		60
11 #define	TRUE		1
12 #define	FALSE		0
13 #define	MAXLVL		20
14 #define NAMSIZ		76
15 #define MAXFILES	32
16 #define PREDEF		2
17 #define STDLVL		((struct iorec *)(0x7ffffff1))
18 #define GLVL		((struct iorec *)(0x7ffffff0))
19 #define FILNIL		((struct iorec *)(0))
20 #define INPUT		((struct iorec *)(&input))
21 #define OUTPUT		((struct iorec *)(&output))
22 #define ERR		((struct iorec *)(&_err))
23 
24 /*
25  * runtime display structure
26  */
27 struct display {
28 	char	*ap;
29 	char	*fp;
30 };
31 
32 /*
33  * formal routine structure
34  */
35 struct formalrtn {
36 	long		(*entryaddr)();
37 	long		cbn;
38 	struct display	disp[2*MAXLVL];
39 };
40 
41 /*
42  * program variables
43  */
44 extern struct display	_disply[MAXLVL];/* runtime display */
45 extern int		_argc;		/* number of passed args */
46 extern char		**_argv;	/* values of passed args */
47 extern long		_stlim;		/* statement limit */
48 extern long		_stcnt;		/* statement count */
49 extern char		*_maxptr;	/* maximum valid pointer */
50 extern char		*_minptr;	/* minimum valid pointer */
51 extern long		_pcpcount[];	/* pxp buffer */
52 
53 /*
54  * file structures
55  */
56 struct iorechd {
57 	char		*fileptr;	/* ptr to file window */
58 	long		lcount;		/* number of lines printed */
59 	long		llimit;		/* maximum number of text lines */
60 	FILE		*fbuf;		/* FILE ptr */
61 	struct iorec	*fchain;	/* chain to next file */
62 	struct iorec	*flev;		/* ptr to associated file variable */
63 	char		*pfname;	/* ptr to name of file */
64 	short		funit;		/* file status flags */
65 	short		fblk;		/* index into active file table */
66 	long		fsize;		/* size of elements in the file */
67 	char		fname[NAMSIZ];	/* name of associated UNIX file */
68 };
69 
70 struct iorec {
71 	char		*fileptr;	/* ptr to file window */
72 	long		lcount;		/* number of lines printed */
73 	long		llimit;		/* maximum number of text lines */
74 	FILE		*fbuf;		/* FILE ptr */
75 	struct iorec	*fchain;	/* chain to next file */
76 	struct iorec	*flev;		/* ptr to associated file variable */
77 	char		*pfname;	/* ptr to name of file */
78 	short		funit;		/* file status flags */
79 	short		fblk;		/* index into active file table */
80 	long		fsize;		/* size of elements in the file */
81 	char		fname[NAMSIZ];	/* name of associated UNIX file */
82 	char		buf[BUFSIZ];	/* I/O buffer */
83 	char		window[1];	/* file window element */
84 };
85 
86 /*
87  * unit flags
88  */
89 #define	FDEF	0x80	/* 1 => reserved file name */
90 #define	FTEXT	0x40	/* 1 => text file, process EOLN */
91 #define	FWRITE	0x20	/* 1 => open for writing */
92 #define	FREAD	0x10	/* 1 => open for reading */
93 #define	TEMP	0x08	/* 1 => temporary file */
94 #define	SYNC	0x04	/* 1 => window is out of sync */
95 #define	EOLN	0x02	/* 1 => at end of line */
96 #define	EOFF	0x01	/* 1 => at end of file */
97 
98 /*
99  * file routines
100  */
101 extern struct iorec	*GETNAME();
102 extern char		*MKTEMP();
103 extern char		*PALLOC();
104 
105 /*
106  * file record variables
107  */
108 extern struct iorechd	_fchain;	/* head of active file chain */
109 extern struct iorec	*_actfile[];	/* table of active files */
110 extern long		_filefre;	/* last used entry in _actfile */
111 
112 /*
113  * standard files
114  */
115 extern struct iorechd	input;
116 extern struct iorechd	output;
117 extern struct iorechd	_err;
118