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