1 /*  BEGIN INCLUDE FILE runtime_symbol_info_.incl.pl1 */
  2 
  3 
  4 /****^  HISTORY COMMENTS:
  5   1) change(86-09-05,JMAthane), approve(86-09-05,MCR7525),
  6      audit(86-09-11,Martinson), install(86-11-12,MR12.0-1208):
  7      Added runtime_symbol_info_$subrange entry which was missing.  Added
  8      has_dimensions and has subrange_limits fields in type_info record.
  9      Structure version numbers have not been changed since this change does not
 10      affect existing programs.
 11                                                    END HISTORY COMMENTS */
 12 
 13 /* Declarations for using the various entry points in runtime_symbol_info_ */
 14 /* NOTE: These entries do not support PL/1 version 1. */
 15 
 16 /* Made structures aligned, removed variable extent from runtime_array_info.bounds 08/25/83 S. Herbst */
 17 /* Added version strings to structures 10/05/83 S. Herbst */
 18 /* Added has_dimensions and has_subrange_limits bits in type_info
 19 Added subrange entry. JMAthane 08/31/84 */
 20 
 21 
 22      dcl     runtime_symbol_info_$type entry (ptr, ptr, fixed bin (35));
 23 
 24      dcl     1 runtime_type_info    aligned based,
 25                2 version            char (8),               /* = "RUNTYP_1" */
 26                2 flags,
 27                  3 aligned          bit (1) unal,
 28                  3 packed           bit (1) unal,
 29                  3 size_is_encoded  bit (1) unal,
 30                  3 has_dimensions   bit (1) unal,
 31                  3 has_subrange_limits bit (1) unal,
 32                  3 pad              bit (23) unal,
 33                2 scale              fixed bin (7) unal,
 34                2 (type, base_type)  fixed bin (18) unsigned unal,
 35                2 (type_addr, base_type_addr) ptr,
 36                2 size               fixed bin (35);
 37 
 38      dcl     runtime_symbol_info_$father entry (ptr) returns (ptr);
 39 
 40      dcl     runtime_symbol_info_$brother entry (ptr) returns (ptr);
 41 
 42      dcl     runtime_symbol_info_$father_type entry (ptr) returns (ptr);
 43 
 44      dcl     runtime_symbol_info_$son entry (ptr) returns (ptr);
 45 
 46      dcl     runtime_symbol_info_$successor entry (ptr) returns (ptr);
 47 
 48      dcl     runtime_symbol_info_$name entry (ptr) returns (ptr);
 49 
 50      dcl     runtime_symbol_info_$level entry (ptr) returns (fixed bin);
 51 
 52      dcl     runtime_symbol_info_$next entry (ptr) returns (ptr);
 53 
 54      dcl     runtime_symbol_info_$address entry (ptr, ptr, fixed bin (35));
 55 
 56      dcl     1 runtime_address_info aligned based,
 57                2 version            char (8),               /* = "RUNADR_1" */
 58                2 location           fixed bin (18) unsigned unal,
 59                2 class              fixed bin (6) unsigned unal,
 60                2 use_digit          fixed bin (1) unsigned unal,
 61                2 units              fixed bin (2) unsigned unal,
 62                2 offset_is_encoded  bit (1) unal,
 63                2 pad                bit (8) unal,
 64                2 offset             fixed bin (35);
 65 
 66      dcl     runtime_symbol_info_$array_dims entry (ptr) returns (fixed bin);
 67 
 68      dcl     runtime_symbol_info_$array entry (ptr, ptr, fixed bin (35));
 69 
 70      dcl     1 runtime_array_info   aligned based,
 71                2 version            char (8),               /* = "RUNARY_1" */
 72                2 access_info        aligned,
 73                  3 ndims            fixed bin (6) unsigned unaligned, /* number of dimensions */
 74                  3 use_digit        fixed bin (1) unsigned unaligned, /* if "1"b and units are half words,
 75                                                                   units are really digits */
 76                  3 array_units      fixed bin (2) unsigned unaligned,
 77                  3 virtual_origin_is_encoded
 78                                     bit (1) unaligned,
 79                  3 pad              bit (26) unaligned,
 80                2 virtual_origin     fixed bin (35),
 81                2 bounds             (16)
 82                                     aligned,
 83                  3 flags            aligned,
 84                    4 lower_is_encoded
 85                                     bit (1) unaligned,
 86                    4 upper_is_encoded
 87                                     bit (1) unaligned,
 88                    4 multiplier_is_encoded
 89                                     bit (1) unaligned,
 90                    4 pad            bit (33) unaligned,
 91                  3 lower            fixed bin (35),
 92                  3 upper            fixed bin (35),
 93                  3 multiplier       fixed bin (35),
 94                  3 subscript_type   fixed bin (35),
 95                  3 subscript_type_addr ptr;
 96 
 97      dcl     n_dims                 fixed bin;
 98 
 99      dcl     runtime_symbol_info_$n_variants entry (ptr) returns (fixed bin (35));
100 
101      dcl     runtime_symbol_info_$variant entry (ptr, ptr, fixed bin (35));
102 
103      dcl     1 runtime_variant_info aligned based,
104                2 version            char (8),               /* = "RUNVAR_1" */
105                2 number_of_variants fixed bin,
106                2 first_value_in_set fixed bin (35),         /* value corresponding to the first bit in set stings  */
107                2 case               (n_variants),
108                  3 set_addr         ptr,                    /* bit string specifies cases;
109                                                                    set's base type is this node's type */
110                  3 brother_addr     ptr;                    /* ptr to brother for this variant */
111 
112      dcl     n_variants             fixed bin (35);
113 
114      dcl     runtime_symbol_info_$subrange entry (ptr, ptr, fixed bin (35));
115 
116      dcl     1 runtime_subrange_info based,
117                2 version            char (8),               /* = "RUNSUB_1" */
118                2 flags              aligned,
119                  3 has_subrange_limits bit (1) unal,
120                  3 lower_bound_is_encoded bit (1) unal,
121                  3 upper_bound_is_encoded bit (1) unal,
122                  3 pad              bit (33) unal,
123                2 subrange_lower_bound fixed bin (35),
124                2 subrange_upper_bound fixed bin (35);
125 
126 
127      dcl     RUNTIME_TYPE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNTYP_1");
128      dcl     RUNTIME_ADDRESS_INFO_VERSION_1 char (8) int static options (constant) init ("RUNADR_1");
129      dcl     RUNTIME_ARRAY_INFO_VERSION_1 char (8) int static options (constant) init ("RUNARY_1");
130      dcl     RUNTIME_VARIANT_INFO_VERSION_1 char (8) int static options (constant) init ("RUNVAR_1");
131      dcl     RUNTIME_SUBRANGE_INFO_VERSION_1 char (8) int static options (constant) init ("RUNSUB_1");
132 
133 
134 /* END INCLUDE FILE runtime_symbol_info_.incl.pl1 */