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