1 /*  BEGIN INCLUDE FILE pascal_context_.incl.pl1   */
  2 
  3 
  4 /****^  HISTORY COMMENTS:
  5   1) change(86-09-16,JPFauche), approve(86-09-16,MCR7521),
  6      audit(86-09-16,Martinson), install(86-11-12,MR12.0-1208):
  7      Added ref_table to support version 8.03 of pascal.
  8                                                    END HISTORY COMMENTS */
  9 
 10 /* Created J.M. Athane 05 / 80 */
 11 
 12 /* include file for common declarations (int static and constants)
 13    for procedures of PASCAL compiler */
 14 
 15      dcl     pascal_context_$segs   (5) ext ptr;            /* array of ptrs to temp segs */
 16 
 17      dcl     pascal_context_$text_ptr ext ptr;
 18      dcl     pascal_context_$def_ptr ext ptr;
 19      dcl     pascal_context_$statlink_ptr ext ptr;
 20      dcl     pascal_context_$symb_ptr ext ptr;
 21      dcl     pascal_context_$rel_ptr ext ptr;
 22 
 23      dcl     pascal_context_$ps_segs (3) ext ptr;
 24 
 25      dcl     pascal_context_$ps_def_ptr ext ptr;
 26      dcl     pascal_context_$ps_link_ptr ext ptr;
 27      dcl     pascal_context_$ps_symb_ptr ext ptr;
 28 
 29      dcl     pascal_context_$stats_ptr ext ptr;
 30      dcl     pascal_context_$links_ptr ext ptr;
 31      dcl     pascal_context_$map_ptr ext ptr;
 32      dcl     pascal_context_$prof_ptr ext ptr;
 33      dcl     pascal_context_$source_dir_name char (168) ext;
 34      dcl     pascal_context_$source_entry_name char (32) ext;
 35 
 36      dcl     pascal_context_$option_list char (168) varying ext;
 37      dcl     pascal_context_$time   fixed bin (71) ext;
 38      dcl     pascal_context_$cpu    fixed bin (71) ext;
 39      dcl     pascal_context_$time_string char (24) ext;
 40      dcl     pascal_context_$working_dir_name char (168) ext;
 41      dcl     pascal_context_$object_entry_name char (32) ext;
 42      dcl     pascal_context_$compiler_created fixed bin (71) ext;
 43      dcl     pascal_context_$user_id char (32) ext;
 44      dcl     pascal_context_$ps_ok  fixed bin ext;
 45      dcl     pascal_context_$object_ok fixed bin ext;
 46      dcl     pascal_context_$abort_comp_label label ext;
 47      dcl     pascal_context_$int_error_label label ext;
 48      dcl     pascal_context_$link_offset bit (18) ext;
 49      dcl     pascal_context_$object_ptr ptr ext;
 50      dcl     pascal_context_$link_base fixed bin (35) ext;
 51      dcl     pascal_context_$out_ptr ptr ext;
 52      dcl     pascal_context_$usednamesaddr ptr ext;
 53      dcl     pascal_context_$realformataddr ptr ext;
 54      dcl     pascal_context_$integerformataddr ptr ext;
 55      dcl     pascal_context_$asciiformataddr ptr ext;
 56      dcl     pascal_context_$octalformataddr ptr ext;
 57      dcl     pascal_context_$nilformataddr ptr ext;
 58      dcl     pascal_context_$realformatstring char (32) ext;
 59      dcl     pascal_context_$integerformatstring char (32) ext;
 60      dcl     pascal_context_$octalformatstring char (32) ext;
 61      dcl     pascal_context_$asciiformatstring char (32) ext;
 62      dcl     pascal_context_$nilformatstring char (32) ext;
 63 
 64      dcl     1 pascal_context_$options ext,
 65                2 list               bit (1) unal,           /* output listing requested */
 66                2 bind               bit (1) unal,           /* object bindable */
 67                2 profile            bit (1) unal,           /* profile tables requested */
 68                2 long_profile       bit (1) unal,           /* long_profile tables requested */
 69                2 table              bit (1) unal,           /* symbol table and statement map table requested */
 70                2 brief_table        bit (1) unal,           /* statement map table requested */
 71                2 ps                 bit (1) unal,           /* exportable variables in private_storage segment */
 72                2 map                bit (1) unal,           /* listing includes symbol and statemment map */
 73                2 brief_map          bit (1) unal,           /* listing includes statement map */
 74                2 generated_code     bit (1) unal,           /* listing includes generated code, symbol and statement map */
 75                2 add_exportable_names bit (1) unal,         /* exportable names are added to object */
 76                2 interactive        bit (1) unal,           /* text files are in interactive mode */
 77                2 ref_table          bit (1) unal,           /* ref table - table including references */
 78                2 pad                bit (23) unal;
 79 
 80      dcl     pascal_context_$text_word_count ext fixed bin (35); /* word count for the text section generation */
 81      dcl     pascal_context_$last_def_ptr ext ptr;          /* ptr to the last generated definition */
 82      dcl     pascal_context_$ps_last_def_ptr ext ptr;
 83      dcl     pascal_context_$segname_def_ptr ext ptr;       /* ptr to the definition for the segname */
 84      dcl     pascal_context_$ps_segname_def_ptr ext ptr;
 85      dcl     pascal_context_$def_word_count ext fixed bin (35); /* word count for def section generation */
 86      dcl     pascal_context_$ps_def_word_count ext fixed bin (35);
 87      dcl     pascal_context_$stat_half_word_count ext fixed bin (35); /* word count for static generation */
 88      dcl     pascal_context_$ps_stat_half_word_count ext fixed bin (35);
 89      dcl     pascal_context_$symb_word_count fixed bin (35) ext; /* word count for symb sect generation */
 90      dcl     pascal_context_$ps_symb_word_count fixed bin (35) ext;
 91 
 92 
 93      dcl     1 pascal_context_$err_info ext,                /* err_info for internal error status */
 94                2 string             char (256) varying,
 95                2 status_code        fixed bin (35);
 96 
 97 
 98      dcl     txt                    fixed bin int static options (constant) init (1);
 99      dcl     def                    fixed bin int static options (constant) init (2);
100      dcl     lnk                    fixed bin int static options (constant) init (3);
101      dcl     sym                    fixed bin int static options (constant) init (4);
102 
103      dcl     ps_def                 fixed bin int static options (constant) init (5);
104 
105 
106 /* relocation codes */
107 
108      dcl     abs                    bit (5) int static options (constant) init ("0"b);
109      dcl     def_rel                bit (5) int static options (constant) init ("10101"b);
110      dcl     text_rel               bit (5) int static options (constant) init ("10000"b);
111      dcl     symb_rel               bit (5) int static options (constant) init ("10110"b);
112      dcl     link15                 bit (5) int static options (constant) init ("10100"b);
113      dcl     link18                 bit (5) int static options (constant) init ("10010"b);
114      dcl     int15                  bit (5) int static options (constant) init ("11001"b);
115      dcl     int18                  bit (5) int static options (constant) init ("11000"b);
116      dcl     profile                bit (5) int static options (constant) init ("11010"b);
117      dcl     expabs                 bit (5) int static options (constant) init ("11110"b);
118      dcl     self_rel               bit (5) int static options (constant) init ("10001"b);
119 
120 /* relocation bits generation */
121 
122      dcl     1 rel_info             (5) based (pascal_context_$rel_ptr),
123                2 nbr_of_calls       fixed bin (35),
124                2 nbr_of_zeros       fixed bin (35),
125                2 string             bit (387000) varying;
126 
127 /* compiler id */
128 
129      dcl     pascal_compiler_id$version char (32) varying external;
130      dcl     pascal_compiler_id$version_number fixed bin external;
131      dcl     pascal_compiler_id$gen_id char (100) var ext;
132 
133 
134 
135 /* END INCLUDE FILE pascal_context_.incl.pl1  */