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