1736Speter /* Copyright (c) 1979 Regents of the University of California */ 2736Speter 3*1210Speter /* static char sccsid[] = "@(#)objfmt.h 1.2 10/04/80"; */ 4736Speter 5736Speter #ifdef OBJ 6736Speter /* 7736Speter * the creation time, the size and the magic number of the obj file 8736Speter */ 9736Speter struct pxhdr { 10736Speter int maketime; 11736Speter int objsize; 12736Speter short magicnum; 13736Speter }; 14736Speter 15736Speter # define HEADER_BYTES 1024 /* the size of px_header */ 16*1210Speter # define PX_HEADER "/usr/lib/px_header" /* px_header's name */ 17*1210Speter # define PX_INTRP "/usr/ucb/px" /* the interpreter's name */ 18736Speter #endif OBJ 19736Speter 20736Speter /* 21736Speter * the file of error messages created by mkstr 22736Speter */ 23736Speter #ifdef OBJ 24736Speter # define ERR_STRNGS "/usr/lib/pi2.0strings" 25736Speter # define ERR_PATHLEN 9 26736Speter #endif OBJ 27736Speter #ifdef PC 28736Speter # define ERR_STRNGS "/usr/lib/pc2.0strings" 29736Speter # define ERR_PATHLEN 9 30736Speter #endif PC 31736Speter 32736Speter /* 33736Speter * these are because of varying sizes of pointers 34736Speter */ 35736Speter #ifdef VAX 36736Speter # define INDX 2 /* log2 of sizeof( * ) */ 37736Speter # define PTR_AS O_AS4 38736Speter # define PTR_RV O_RV4 39736Speter # define PTR_IND O_IND4 40736Speter # define PTR_DCL unsigned long /* for pointer variables */ 41736Speter # define SHORTADDR 32768 /* maximum short address */ 42736Speter # define TOOMUCH 65536 /* maximum variable size */ 43736Speter # define MAXSET 65536 /* maximum set size */ 44736Speter /* 45736Speter * Offsets due to the structure of the runtime stack. 46736Speter * DPOFF1 is the amount of fixed storage in each block allocated 47736Speter * as local variables for the runtime system. 48736Speter * since locals are allocated negative offsets, 49736Speter * -DPOFF1 is the last used implicit local offset. 50736Speter * DPOFF2 is the size of the block mark. 51736Speter * since arguments are allocated positive offsets, 52736Speter * DPOFF2 is the end of the implicit arguments. 53736Speter * for obj, the first argument has the highest offset 54736Speter * from the stackpointer. and the block mark is an 55736Speter * implicit last parameter. 56736Speter * for pc, the first argument has the lowest offset 57736Speter * from the argumentpointer. and the block mark is an 58736Speter * implicit first parameter. 59736Speter */ 60736Speter # ifdef OBJ 61736Speter # define DPOFF1 0 62736Speter # define DPOFF2 32 63736Speter # define INPUT_OFF -8 /* offset of `input' */ 64736Speter # define OUTPUT_OFF -4 /* offset of `output' */ 65736Speter # endif OBJ 66736Speter # ifdef PC 67736Speter # define DPOFF1 ( sizeof rtlocs - sizeof rtlocs.unwind ) 68736Speter # define DPOFF2 ( sizeof (long) ) 69736Speter # define INPUT_OFF 0 70736Speter # define OUTPUT_OFF 0 71736Speter # endif PC 72736Speter # define MAGICNUM 0403 /* obj magic number */ 73736Speter #endif VAX 74736Speter 75736Speter #ifdef PDP11 76736Speter # define INDX 1 77736Speter # define PTR_AS O_AS2 78736Speter # define PTR_RV O_RV2 79736Speter # define PTR_IND O_IND2 80736Speter # define PTR_DCL char * 81736Speter # define TOOMUCH 50000 82736Speter # define SHORTADDR 65536 83736Speter # define MAXSET 65536 /* maximum set size */ 84736Speter # define DPOFF2 16 85736Speter # define INPUT_OFF -2 86736Speter # define OUTPUT_OFF -4 87736Speter # define MAGICNUM 0404 88736Speter #endif PDP11 89