xref: /csrg-svn/usr.bin/pascal/src/objfmt.h (revision 736)
1*736Speter /* Copyright (c) 1979 Regents of the University of California */
2*736Speter 
3*736Speter /* static	char sccsid[] = "@(#)objfmt.h 1.1 08/27/80"; */
4*736Speter 
5*736Speter #ifdef OBJ
6*736Speter 	/*
7*736Speter 	 *	the creation time, the size and the magic number of the obj file
8*736Speter 	 */
9*736Speter     struct pxhdr {
10*736Speter 	    int	maketime;
11*736Speter 	    int	objsize;
12*736Speter 	    short	magicnum;
13*736Speter     };
14*736Speter 
15*736Speter #   define	HEADER_BYTES	1024		/* the size of px_header */
16*736Speter #   define PX_HEADER "/usr/lib/npx_header"	/* px_header's name */
17*736Speter #   define PX_INTRP "/usr/new/px"		/* the interpreter's name */
18*736Speter #endif OBJ
19*736Speter 
20*736Speter     /*
21*736Speter      *	the file of error messages created by mkstr
22*736Speter      */
23*736Speter #ifdef OBJ
24*736Speter #   define	ERR_STRNGS	"/usr/lib/pi2.0strings"
25*736Speter #   define	ERR_PATHLEN	9
26*736Speter #endif OBJ
27*736Speter #ifdef PC
28*736Speter #   define	ERR_STRNGS	"/usr/lib/pc2.0strings"
29*736Speter #   define	ERR_PATHLEN	9
30*736Speter #endif PC
31*736Speter 
32*736Speter 	    /*
33*736Speter 	     *	these are because of varying sizes of pointers
34*736Speter 	     */
35*736Speter #ifdef VAX
36*736Speter #	define INDX 2				/* log2 of sizeof( * ) */
37*736Speter #	define PTR_AS O_AS4
38*736Speter #	define PTR_RV O_RV4
39*736Speter #	define PTR_IND O_IND4
40*736Speter #	define PTR_DCL unsigned long		/* for pointer variables */
41*736Speter #	define SHORTADDR 32768			/* maximum short address */
42*736Speter #	define TOOMUCH 65536			/* maximum variable size */
43*736Speter #	define MAXSET 65536			/* maximum set size */
44*736Speter 	    /*
45*736Speter 	     * Offsets due to the structure of the runtime stack.
46*736Speter 	     * DPOFF1	is the amount of fixed storage in each block allocated
47*736Speter 	     * 		as local variables for the runtime system.
48*736Speter 	     *		since locals are allocated negative offsets,
49*736Speter 	     *		-DPOFF1 is the last used implicit local offset.
50*736Speter 	     * DPOFF2	is the size of the block mark.
51*736Speter 	     *		since arguments are allocated positive offsets,
52*736Speter 	     *		DPOFF2 is the end of the implicit arguments.
53*736Speter 	     *		for obj, the first argument has the highest offset
54*736Speter 	     *		from the stackpointer.  and the block mark is an
55*736Speter 	     *		implicit last parameter.
56*736Speter 	     *		for pc, the first argument has the lowest offset
57*736Speter 	     *		from the argumentpointer.  and the block mark is an
58*736Speter 	     *		implicit first parameter.
59*736Speter 	     */
60*736Speter #	ifdef OBJ
61*736Speter #	    define DPOFF1		0
62*736Speter #	    define DPOFF2		32
63*736Speter #	    define INPUT_OFF		-8	/* offset of `input' */
64*736Speter #	    define OUTPUT_OFF		-4	/* offset of `output' */
65*736Speter #	endif OBJ
66*736Speter #	ifdef	PC
67*736Speter #	    define DPOFF1	( sizeof rtlocs - sizeof rtlocs.unwind )
68*736Speter #	    define DPOFF2	( sizeof (long) )
69*736Speter #	    define INPUT_OFF	0
70*736Speter #	    define OUTPUT_OFF	0
71*736Speter #	endif PC
72*736Speter #	define MAGICNUM 0403			/* obj magic number */
73*736Speter #endif VAX
74*736Speter 
75*736Speter #ifdef PDP11
76*736Speter #	define INDX 1
77*736Speter #	define PTR_AS O_AS2
78*736Speter #	define PTR_RV O_RV2
79*736Speter #	define PTR_IND O_IND2
80*736Speter #	define PTR_DCL char *
81*736Speter #	define TOOMUCH 50000
82*736Speter #	define SHORTADDR 65536
83*736Speter #	define MAXSET 65536			/* maximum set size */
84*736Speter #	define DPOFF2 16
85*736Speter #	define INPUT_OFF -2
86*736Speter #	define OUTPUT_OFF -4
87*736Speter #	define MAGICNUM 0404
88*736Speter #endif PDP11
89