comm1.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /* @(#)comm1.h 1.5 */
  2. /*
  3. * variable declarations
  4. */
  5. #ifdef extern
  6. #define INIT(x) = x
  7. #else
  8. #define INIT(x) /* empty */
  9. #endif
  10. extern short pass INIT(PASS_1);
  11. /* PASS 1, 2 or 3 */
  12. extern short peekc; /* push back symbol (PASS_1) */
  13. extern short unresolved; /* number of unresolved references */
  14. extern short lineno; /* input line number */
  15. extern short hllino; /* high-level language line number */
  16. extern short nerrors; /* terminate at end of pass if set */
  17. extern short sflag INIT(SYM_DEF);
  18. /* -s option (symbol table info) */
  19. extern char *progname; /* for error messages */
  20. extern char *modulename; /* for error messages */
  21. #ifdef ASLD
  22. extern short archmode; /* scanning archives */
  23. extern long archsize; /* size of individual archive entries */
  24. #else
  25. extern short uflag; /* if 1 make undefineds extern */
  26. /* symbol table index for last S_UND */
  27. #endif
  28. #ifdef LISTING
  29. extern short dflag; /* -d option (list mode) */
  30. #endif
  31. #ifdef ASLD
  32. #ifdef RELOCATION
  33. extern short rflag; /* -r option (relocation info) */
  34. #endif RELOCATION
  35. #else
  36. #define rflag 1
  37. extern valu_t relonami;
  38. #endif ASLD
  39. #ifdef THREE_PASS
  40. extern short bflag; /* -b option (no optimizations) */
  41. #endif
  42. extern char *aoutpath INIT("a.out");
  43. extern char temppath[50];
  44. extern FILE *input;
  45. extern FILE *tempfile;
  46. #ifdef AOUTSEEK
  47. extern FILE *aoutfile;
  48. extern int aoutpart INIT(-1);
  49. extern long aoutseek[PARTS];
  50. #else
  51. extern FILE *aoutfile[PARTS];
  52. #endif
  53. extern char stringbuf[STRINGMAX];
  54. /* contains last string value */
  55. extern sect_t sect[SECTMAX];
  56. /*
  57. * specials for the location counter
  58. */
  59. extern sect_t *DOTSCT; /* &sect[DOTTYP-S_MIN] or NULL */
  60. extern addr_t DOTVAL; /* DOTSCT->s_size + DOTSCT->s_base */
  61. extern short DOTTYP; /* S_MIN..S_MAX or S_UND */
  62. extern item_t *hashtab[H_TOTAL];
  63. extern short hashindex; /* see item_search() */
  64. extern item_t *fb_ptr[4*FB_SIZE];
  65. #ifdef THREE_PASS
  66. extern char bittab[BITMAX>>3];
  67. /* one bit per small-large decision */
  68. extern short nbits; /* number of decisions so far */
  69. #endif
  70. #ifdef LISTING
  71. extern short listmode; /* -d option for current pass */
  72. extern short listtemp; /* listmode if .list seen */
  73. extern short listflag; /* copied from listtemp at '\n' */
  74. extern short listcolm; /* column on output */
  75. extern short listeoln INIT(1);
  76. /* set by endline, tested by emit1 */
  77. extern FILE *listfile; /* copy of source text */
  78. extern char listpath[50];
  79. #endif
  80. #ifndef extern
  81. extern item_t keytab[];
  82. extern struct outhead outhead;
  83. #endif
  84. /* forward function declarations */
  85. extern char *libname();
  86. extern char *readident();
  87. extern char *remember();
  88. extern item_t *fb_shift();
  89. extern item_t *fb_alloc();
  90. extern item_t *item_alloc();
  91. extern item_t *item_search();
  92. extern valu_t load();
  93. extern FILE *ffcreat();
  94. extern FILE *fftemp();
  95. /* some library functions used */
  96. extern long atol();
  97. extern char *mktemp();
  98. extern char *sbrk();
  99. extern char *getenv();
  100. /* ========== Machine dependent C declarations ========== */
  101. #include "mach1.c"