| 1 | /* Copyright (c) 1979 Regents of the University of California */ |
| 2 | |
| 3 | /* static char sccsid[] = "@(#)objfmt.h 4.1 10/10/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 |