COMPILATION LISTING OF SEGMENT vrm_display_search_list Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/21/84 1430.2 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* This program will display a vrm_search_list */ 8 9 /* History: 10* 05/14/83 Lackey : Originally written 11* 05/19/83 Harvey : Added name output for better debugging 12* 83-08-17 Roger Lackey : Modified to use vrm_cursor_ptr as input parameter 13* 14**/ 15 16 vrm_display_search_list: vdsl: proc; 17 18 call cu_$arg_count (nargs, code); 19 if code ^= 0 then call error (code, "Getting nargs"); 20 21 if nargs ^= 1 then call error (error_table_$wrong_no_of_args, 22 "Usage: vrm_display_search_list virtual_vrm_cursor_ptr"); 23 24 call cu_$arg_ptr (1, arg_ptr, arg_len, code); 25 if code ^= 0 then call error (code, "Getting arg_ptr"); 26 27 vrm_cursor_ptr = cv_ptr_ (arg, code); 28 if code ^= 0 then call error (code, "Converting pointer value "); 29 30 vrm_search_list_ptr = vrm_cursor.search_list_ptr; 31 vrm_rel_desc_ptr = vrm_cursor.vrm_relation_desc_ptr; 32 33 if vrm_rel_desc_ptr = null () then attr_names_available = "0"b; 34 else attr_names_available = "1"b; 35 36 goto common; 37 38 39 40 subroutine: entry (I_vrm_cursor_ptr); 41 42 43 dcl I_vrm_cursor_ptr ptr parameter; 44 45 vrm_cursor_ptr = I_vrm_cursor_ptr; 46 vrm_search_list_ptr = vrm_cursor.search_list_ptr; 47 vrm_rel_desc_ptr = vrm_cursor.vrm_relation_desc_ptr; 48 if vrm_rel_desc_ptr = null () 49 then attr_names_available = "0"b; 50 else attr_names_available = "1"b; 51 52 goto common; 53 54 common: 55 vrm_open_info_ptr = vrm_cursor.open_info_ptr; 56 57 58 call ioa_ ("^2d^5tnum_and_groups", vrm_search_list.num_and_groups); 59 call ioa_ ("^2d^5tmax_num_constraints^/", vrm_search_list.max_num_constraints); 60 61 do ag = 1 to vrm_search_list.num_and_groups; 62 63 if vrm_search_list.and_groups (ag).do_not_use_sw then 64 call ioa_ ("^5tDo not use this and group."); 65 66 if vrm_search_list.and_groups (ag).must_initialize_sw then 67 call ioa_ ("^5tMust initialize this and group."); 68 69 if vrm_search_list.and_groups (ag).full_key_equal_only_sw then 70 call ioa_ ("^5tFull_key_equal_only."); 71 72 if vrm_search_list.and_groups (ag).multi_attr_seek_head_sw then 73 74 call ioa_ ("^5tMulti_attr_seek_head."); 75 76 if vrm_search_list.and_groups (ag).collection_id_supplied_sw then do; 77 found = "0"b; 78 79 if vrm_search_list.and_groups (ag).collection_id = THIRTY_SIX_BITS_ALL_OF_THEM_ONES then 80 collection_name = "RECORD COLLECTION"; 81 else if vrm_search_list.and_groups (ag).collection_id = "0"b then collection_name = "PRIMARY KEY"; 82 83 else do i = 1 to vrm_open_info.number_of_index_collections while (^found); 84 if vrm_search_list.and_groups (ag).collection_id = 85 vrm_open_info.index_collection (i).id then do; 86 found = "1"b; 87 vrm_collection_info_ptr = vrm_open_info.index_collection (i).info_ptr; 88 89 collection_name = vrm_rel_desc.attr (vrm_collection_info.attribute (1).attr_index).name; 90 91 end; 92 end; 93 94 call ioa_ ("^5tCollection id supplied: ^a^/", collection_name); 95 end; 96 97 call ioa_ ("^2d^5tnum_cons_in_this_and_group", vrm_search_list.and_groups (ag).num_cons_in_this_and_group); 98 call ioa_ ("^2d^5tnum_key_cons_in_this_and_group", vrm_search_list.and_groups (ag).num_key_cons_in_this_and_group); 99 if vrm_search_list.and_groups (ag).num_seek_key_attr_count > 0 then do; 100 call ioa_ ("^2d^5tnum_seek_key_attr_count", 101 vrm_search_list.and_groups (ag).num_seek_key_attr_count); 102 end; 103 104 105 call ioa_ (""); 106 107 do c = 1 to vrm_search_list.and_groups (ag).num_cons_in_this_and_group; 108 109 if vrm_search_list.and_groups (ag).cons (c).key_attr_sw then do; 110 111 call convert_to_char (vrm_search_list.and_groups (ag).cons (c).attr_desc_ptr, 112 vrm_search_list.and_groups (ag).cons (c).val_ptr); 113 114 if vrm_search_list.and_groups (ag).cons (c).seek_head_sw then 115 seek_head = "SEEK_HEAD"; 116 else seek_head = ""; 117 118 if vrm_search_list.and_groups (ag).cons (c).and_group_search_terminator then 119 and_group_terminator = "AND GROUP SEARCH TERMINATOR"; 120 else and_group_terminator = ""; 121 122 call ioa_ ("^a^34t^a ^a ^a", 123 vrm_rel_desc.attr (vrm_search_list.and_groups (ag).cons (c).attr_index).name, 124 OP (vrm_search_list.and_groups (ag).cons (c).operator), 125 seek_head, and_group_terminator); 126 127 call ioa_ ("KEY VALUE^25t^a^/", char_string); 128 end; 129 else if vrm_search_list.and_groups (ag).cons (c).valid_sw then do; 130 call convert_to_char (vrm_search_list.and_groups (ag).cons (c).attr_desc_ptr, 131 vrm_search_list.and_groups (ag).cons (c).val_ptr); 132 133 call ioa_ ("^a^34t^a", 134 vrm_rel_desc.attr (vrm_search_list.and_groups (ag).cons (c).attr_index).name, 135 OP (vrm_search_list.and_groups (ag).cons (c).operator)); 136 call ioa_ ("NON-KEY VALUE^25t^a^/", char_string); 137 end; 138 139 end; 140 end; /* END ag = 1 to * */ 141 142 143 exit: return; 144 145 error: proc (cd, msg); 146 147 dcl cd fixed bin (35) parameter; 148 dcl com_err_ entry () options (variable); 149 dcl msg char (*) parameter; 150 151 call com_err_ (cd, "vrm_display_search_list", msg); 152 goto exit; 153 154 end error; 155 156 convert_to_char: proc (I_desc_ptr, I_data_ptr); 157 158 dcl I_data_ptr ptr unal parameter; 159 dcl I_desc_ptr ptr unal parameter; 160 161 desc_ptr = I_desc_ptr; 162 data_ptr = I_data_ptr; 163 164 num_dims = fixed (desc_ptr -> descriptor.number_dims, 3); 165 166 167 t_ptr = addr (char_string); 168 t_type = 44; /* Character varying */ 169 t_len = 1024; 170 171 s_ptr = data_ptr; 172 s_type = 2 * desc_ptr -> descriptor.type + fixed (desc_ptr -> descriptor.packed, 1); 173 len.scale = fixed (desc_ptr -> descriptor.size.scale, 17); 174 len.precision = fixed (desc_ptr -> descriptor.size.precision, 17); 175 176 call assign_ (t_ptr, t_type, t_len, s_ptr, s_type, s_len); 177 178 char_string = """" || char_string; 179 char_string = char_string || """"; 180 181 182 return; 183 184 dcl (t_ptr, s_ptr, data_ptr) ptr; 185 dcl (t_type, s_type) fixed bin; 186 dcl t_len fixed bin (35); 187 188 dcl 1 len aligned, 189 2 scale fixed bin (17) unal, 190 2 precision fixed bin (17) unal; 191 192 dcl s_len fixed bin (35) based (addr (len)); 193 194 dcl assign_ entry (ptr, fixed bin, fixed bin (35), ptr, fixed bin, fixed bin (35)); 195 196 dcl (addr, fixed) builtin; 197 198 1 1 /* BEGIN mdbm_descriptor.incl.pl1 -- jaw 5/31/78 */ 1 2 /* modified by Jim Gray - - Nov. 1979, to change type from fixed bin(5) to 1 3* unsigned fixed bin(6), so new packed decimal data types could be handled. 1 4* also the duplicate mrds_descriptor.incl.pl1 was eliminated. */ 1 5 1 6 dcl 1 descriptor based (desc_ptr), /* map of Multics descriptor */ 1 7 2 version bit (1) unal, /* DBM handles vers. 1 only */ 1 8 2 type unsigned fixed bin (6) unal, /* data type */ 1 9 2 packed bit (1) unal, /* on if data item is packed */ 1 10 2 number_dims bit (4) unal, /* dimensions */ 1 11 2 size, /* size for string data */ 1 12 3 scale bit (12) unal, /* scale for num. data */ 1 13 3 precision bit (12) unal, /* prec. for num. data */ 1 14 2 array_info (num_dims), 1 15 3 lower_bound fixed bin (35), /* lower bound of dimension */ 1 16 3 upper_bound fixed bin (35), /* upper bound of dimension */ 1 17 3 multiplier fixed bin (35); /* element separation */ 1 18 1 19 dcl desc_ptr ptr; 1 20 dcl num_dims fixed bin init (0) ; /* more useful form of number_dims */ 1 21 1 22 /* END mdbm_descriptor.incl.pl1 */ 1 23 1 24 199 200 end convert_to_char; 201 2 1 /* BEGIN INCLUDE vrm_search_list.incl.pl1 */ 2 2 2 3 dcl vrm_search_list_ptr pointer; 2 4 dcl vsl_number_of_and_groups fixed bin; 2 5 dcl vsl_max_number_of_constraints fixed bin; 2 6 2 7 dcl 1 vrm_search_list aligned based (vrm_search_list_ptr), 2 8 2 num_and_groups fixed bin (17) unal, /* Number of and groups in list */ 2 9 2 max_num_constraints fixed bin (17) unal, /* Maximum number of constraints in any search spec and group */ 2 10 2 current_and_group fixed bin (17) unal, 2 11 2 and_groups (vsl_number_of_and_groups refer (vrm_search_list.num_and_groups)), 2 12 3 num_cons_in_this_and_group fixed bin (17) unal, /* Number of constriants in this and group */ 2 13 3 num_key_cons_in_this_and_group fixed bin (17) unal, /* Number of key constraints in this and group */ 2 14 3 num_seek_key_attr_count fixed bin (17) unal, /* Number of attributes in seek key */ 2 15 3 pos_of_first_bad_key_tail_attr fixed bin (17) unal, /* Key attribute position of first bad key_tail attr */ 2 16 3 seek_key_con_ix fixed bin (17) unal, /* Constraint index to be used for seek key */ 2 17 3 do_not_use_sw bit (1) unal, /* ON = Do not use this and group 2 18* it has been optimized out */ 2 19 3 collection_id_supplied_sw bit (1) unal, /* ON IF collection id was supplied in search_spec */ 2 20 3 must_initialize_sw bit (1) unal, /* ON = init must be done */ 2 21 3 multi_attr_seek_head_sw bit (1) unal, /* ON = Seek head is a multi-attribute key */ 2 22 3 full_key_equal_only_sw bit (1) unal, /* ON = All operators in seek head key were = 2 23* and it was the full key */ 2 24 3 unused bit (13) unal, 2 25 3 collection_id bit (36) aligned, /* Collection id if supplied_sw is ON */ 2 26 3 collection_info_ptr ptr unal, /* IF collection_id_supplied_sw = ON then 2 27* this is vrm_collection_info_ptr */ 2 28 2 29 3 cons (vsl_max_number_of_constraints refer (vrm_search_list.max_num_constraints)) 2 30 like constraint_info; 2 31 2 32 dcl 1 constraint_info based, 2 33 2 34 2 val_ptr pointer unal, /* Pointer to data value */ 2 35 2 attr_desc_ptr pointer unal, /* Pointer to vrm_rel_desc attribute descriptor 2 36* for this attribute */ 2 37 2 encoded_key_ptr pointer unal, /* Pointer to encoded key value if this field 2 38* is a key for this cursor */ 2 39 2 encoded_key_length fixed bin (17) unal, /* Length in char of encoded key */ 2 40 2 search_keys_ix fixed bin (17) unal, /* Index into encoded_key table for this key */ 2 41 2 key_offset fixed bin (17) unal, /* Offset to first bit in key of this encoded key */ 2 42 2 key_bit_length fixed bin (17) unal, /* Length of key in bits */ 2 43 2 attr_position_in_key fixed bin (17) unal, /* Attribute position in multi key collection */ 2 44 2 operator fixed bin (17) unal, /* Operator for this constraint */ 2 45 2 attr_index fixed bin (17) unal, /* Index into vrm_rel_desc.attr array */ 2 46 2 attr_bit_length fixed bin (35), /* Bit length of attribute */ 2 47 2 valid_sw bit (1) unal, /* ON = This constraint is valid for spec */ 2 48 2 key_head_sw bit (1) unal, /* ON = this attribute can be used as a key head with 2 49* this cursor */ 2 50 2 key_attr_sw bit (1) unal, /* ON = This attribute is a key in this cursor */ 2 51 2 and_group_search_terminator bit (1) unal, /* ON = If this attribute is an and group teminator */ 2 52 2 seek_head_sw bit (1) unal, /* ON = this attribute was used 2 53* for seek_head */ 2 54 2 seek_head_tail_sw bit (1) unal, /* ON = This attr can be used for the last attribute of a seek head */ 2 55 2 unused bit (30) unal; /* Unused bits */ 2 56 2 57 2 58 dcl search_keys_ptr ptr; 2 59 dcl alloc_num_search_keys fixed bin (17); 2 60 dcl search_keys (alloc_num_search_keys) char (256) varying based (search_keys_ptr); 2 61 2 62 /* END INCLUDE vrm_search_list.incl.pl1 */ 202 203 3 1 /* BEGIN INCLUDE vrm_rel_desc.incl.pl1 */ 3 2 3 3 /* 83-05-26 Roger Lackey : Added vrm_attr_info.key_head bit for relation_cursors */ 3 4 3 5 dcl 1 vrm_rel_desc based (vrm_rel_desc_ptr), 3 6 2 record_id bit (12) unal, /* Distinguish us from tuples and collection records */ 3 7 2 version char (8), /* Version of this structure */ 3 8 2 file_id bit (7), /* Value of file id from model */ 3 9 2 rel_id bit (12), /* Relation id */ 3 10 2 switches, 3 11 3 MRDS_compatible bit (1) unal, /* For pre-relation_manager_ MRDS */ 3 12 3 stationary_records 3 13 bit (1) unal, /* On = stationary */ 3 14 3 indexed bit (1) unal, /* This relation has attributes with secondary indices */ 3 15 3 pad bit (33) unal, 3 16 2 var_offset fixed bin (35), /* Position of first varying attr */ 3 17 2 maximum_data_length 3 18 fixed bin (35), /* Maximum size of tuple in characters */ 3 19 2 number_primary_key_attrs 3 20 fixed bin, /* Number of attributes which make up the primary key */ 3 21 2 number_sec_indexes fixed bin, /* Number of attributes which have a secondary index */ 3 22 2 last_var_attr_no fixed bin, /* Attr index of last varying attribute */ 3 23 2 number_var_attrs fixed bin, /* Number of varying attributes */ 3 24 2 number_attrs fixed bin, /* Number of attribute in rel */ 3 25 2 attr (vrd_no_of_attrs /* Description of each attribute */ 3 26 refer (vrm_rel_desc.number_attrs)) aligned like vrm_attr_info; 3 27 3 28 dcl 1 vrm_attr_info based (vrm_attr_info_ptr), 3 29 /* Attribute specific info */ 3 30 2 name char (32), /* Name of the attribute */ 3 31 2 descriptor bit (36) aligned, /* domain descriptor */ 3 32 2 varying bit (1) unal, /* ON = This is a varying string */ 3 33 2 key_head bit (1) unal, /* ON = This attr can be a keyhead */ 3 34 2 primary_key_attr bit (1) unal, /* ON = This is a primary key attribute */ 3 35 2 pad bit (15) unal, /* unused */ 3 36 2 index_collextion_ix fixed bin (17) unal, /* Index into vrm_open_info.index_collection array if key_head is on */ 3 37 2 bit_length fixed bin (35), /* Maximum bit length of tuple */ 3 38 2 bit_offset fixed bin (35); /* Offset in tuple if fixed, index to offset in tuple if varying */ 3 39 3 40 3 41 dcl vrm_rel_desc_ptr pointer; 3 42 dcl vrd_no_of_attrs fixed bin; 3 43 dcl VRM_REL_DESC_RECORD_ID bit (12) unal int static options (constant) init ("100000000000"b); 3 44 dcl VRM_REL_DESC_VERSION_1 char (8) int static options (constant) init (" 1"); 3 45 dcl vrm_attr_info_ptr pointer; 3 46 dcl VRM_REL_DESC_KEY char (256) varying int static options (constant) init ("@relation_description"); 3 47 3 48 /* END INCLUDE vrm_rel_desc.incl.pl1 */ 204 205 4 1 /* BEGIN INCLUDE vrm_cursor.incl.pl1 */ 4 2 4 3 /* 83-05-26 Roger Lackey : Modifyed for relation cursors */ 4 4 4 5 dcl vrm_cursor_ptr pointer; /* Pointer to this structure */ 4 6 4 7 dcl 1 vrm_cursor aligned based (vrm_cursor_ptr), /* vfile relation manager cursor */ 4 8 2 opening_id bit (36) aligned, /* ID of opening associated with this cursor */ 4 9 2 debug_sw unal, /* Undefined MBZ */ 4 10 3 trace_open bit (1) unal, /* Show opening of iocb cursor creation time */ 4 11 3 pad bit (35) unal, 4 12 2 switches, 4 13 3 shared bit (1) unal, /* Other processes can use this relation */ 4 14 3 meter_sw bit (1) unal, /* On = Keep meters for this cursor */ 4 15 3 pad bit (7) unal, /* Unsed */ 4 16 2 opening_mode fixed bin, /* Opening mode for this cursor (8 = KSQR 10 = KSQU) */ 4 17 2 open_info_ptr pointer, /* Pointer to parent opening info structure */ 4 18 2 vrm_relation_desc_ptr pointer, /* Pointer to parent rel desc */ 4 19 2 iocb_ptr pointer, /* Pointer to attach iocb */ 4 20 2 secondary_iocb_ptr ptr, /* Second iocb_ptr used by vrmu_search */ 4 21 2 search_list_ptr ptr, /* Pointer to search_list */ 4 22 2 search_keys_ptr ptr, /* Pointer to search_keys array */ 4 23 2 meter_ptr pointer, /* Pointer metering str if metering is on or null */ 4 24 2 vrm_iocb_list_block_ptr pointer, /* Pointer to vrm_iocb_list_block that contains this cursors iocb */ 4 25 2 vrm_iocb_list_block_iocbs_ix fixed bin; /* Index into list_block.iocbs for location of iocb */ 4 26 4 27 4 28 /* END INCLUDE vrm_cursor.incl.pl1 */ 206 207 5 1 /* BEGIN INCLUDE vrm_open_info.incl.pl1 */ 5 2 5 3 /* R. Harvey 82-11-02 5 4* 82-09-82 Roger Lackey: added iocb_list_ptr */ 5 5 5 6 dcl 1 vrm_open_info aligned based (vrm_open_info_ptr), /* Vfile relation description */ 5 7 2 version char (8), /* Version number of this structure */ 5 8 2 opening_id bit (36) aligned, /* Opening id associated with this desc */ 5 9 2 file_uid bit (36) aligned, /* Unique id of msf dir */ 5 10 2 number_of_openings fixed bin, /* Number of separate calls to vrm$open */ 5 11 2 switches, 5 12 3 shared bit (1) unal, /* Open relation in shared mode */ 5 13 3 pad bit (35) unal init ("0"b), /* Unused must be zero */ 5 14 2 database_dir_path char (168) varying, /* Absolute path of database */ 5 15 2 relation_name char (30) varying, /* Name of relation */ 5 16 2 relation_model_ptr pointer, /* Pointer to the relation_model in the relation itself or a temp seg */ 5 17 2 com_ptr pointer, /* Temp seg for cursors and scratch space */ 5 18 2 iocb_list_ptr pointer, /* Pointer to first vrm_iocb_list_block */ 5 19 2 primary_key_info_ptr pointer, /* Special case collection info ptr */ 5 20 2 number_of_index_collections fixed bin, /* Count of index collections (include primary key) */ 5 21 2 index_collection (voi_no_of_index_collections 5 22 refer (vrm_open_info.number_of_index_collections)), 5 23 3 id bit (36), 5 24 3 info_ptr ptr unal; /* Points to more detailed info */ 5 25 5 26 5 27 dcl VRM_OPEN_INFO_VERSION_1 char (8) int static options (constant) init (" 1"); 5 28 dcl vrm_open_info_ptr ptr; 5 29 dcl voi_no_of_index_collections fixed bin; 5 30 5 31 /* END INCLUDE vrm_open_info.incl.pl1 */ 208 209 6 1 /* BEGIN INCLUDE vrm_collection_info.incl.pl1 */ 6 2 6 3 /* R. Harvey 82-11-02 */ 6 4 6 5 6 6 dcl 1 vrm_collection_info aligned based (vrm_collection_info_ptr), 6 7 /* Index collection description */ 6 8 2 record_id unal, 6 9 3 header bit (4) unal, /* collection type */ 6 10 3 id bit (8) unal, /* index id */ 6 11 2 unique bit (1) unal, 6 12 2 primary_key bit (1) unal, /* This is the MRDS primary key collection */ 6 13 2 pad bit (26) unal, 6 14 2 number_of_attributes 6 15 fixed bin, 6 16 2 attribute (vci_no_of_attributes refer (vrm_collection_info.number_of_attributes)), 6 17 3 attr_index fixed bin, /* Attribute number in relation description */ 6 18 3 key_offset fixed bin, /* Offset within key in bits */ 6 19 3 key_bit_len fixed bin ; /* Length of key in bits */ 6 20 6 21 dcl vrm_collection_info_ptr 6 22 ptr; 6 23 dcl vci_no_of_attributes fixed bin; 6 24 dcl vrm_collection_header_type 6 25 bit (4) unal int static options (constant) init ("1100"b); 6 26 dcl VRM_COLLECTION_KEY_HEAD char (16) int static options (constant) init ("@collection_info"); 6 27 6 28 /* END INCLUDE vrm_collection_info.incl.pl1 */ 210 211 212 dcl THIRTY_SIX_BITS_ALL_OF_THEM_ONES 213 bit (36) int static options (constant) 214 init ((36)"1"b); 215 dcl OP (7) char (2) int static options (constant) init ( 216 " =", " >", ">=", " ^", "^=", "<=", " <"); 217 218 dcl ag fixed bin; 219 dcl arg char (arg_len) based (arg_ptr); 220 dcl arg_len fixed bin (21); 221 dcl arg_ptr ptr; 222 dcl attr_names_available bit (1) aligned; 223 dcl c fixed bin; 224 dcl code fixed bin (35); 225 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 226 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 227 dcl cv_ptr_ entry (char (*), fixed bin (35)) returns (ptr); 228 dcl error_table_$wrong_no_of_args fixed bin (35) ext static; 229 dcl ioa_ entry () options (variable); 230 dcl nargs fixed bin; 231 dcl char_string char (1024) varying; 232 dcl and_group_terminator char (32); 233 dcl seek_head char (20); 234 dcl null builtin; 235 dcl collection_name char (32); 236 dcl found bit (1); 237 dcl i fixed bin; 238 239 end vrm_display_search_list; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/21/84 0933.7 vrm_display_search_list.pl1 >special_ldd>online>mrds_install>vrm_display_search_list.pl1 199 1 10/14/83 1608.6 mdbm_descriptor.incl.pl1 >ldd>include>mdbm_descriptor.incl.pl1 202 2 10/14/83 1609.1 vrm_search_list.incl.pl1 >ldd>include>vrm_search_list.incl.pl1 204 3 10/14/83 1609.1 vrm_rel_desc.incl.pl1 >ldd>include>vrm_rel_desc.incl.pl1 206 4 10/14/83 1609.1 vrm_cursor.incl.pl1 >ldd>include>vrm_cursor.incl.pl1 208 5 10/14/83 1609.1 vrm_open_info.incl.pl1 >ldd>include>vrm_open_info.incl.pl1 210 6 10/14/83 1609.1 vrm_collection_info.incl.pl1 >ldd>include>vrm_collection_info.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. I_data_ptr parameter pointer unaligned dcl 158 ref 156 162 I_desc_ptr parameter pointer unaligned dcl 159 ref 156 161 I_vrm_cursor_ptr parameter pointer dcl 43 ref 40 45 OP 000000 constant char(2) initial array unaligned dcl 215 set ref 122* 133* THIRTY_SIX_BITS_ALL_OF_THEM_ONES 001772 constant bit(36) initial unaligned dcl 212 ref 79 addr builtin function dcl 196 ref 167 176 ag 000112 automatic fixed bin(17,0) dcl 218 set ref 61* 63 66 69 72 76 79 81 84 97 98 99 100 107 109 111 111 114 118 122 122 129 130 130 133 133* and_group_search_terminator 17(03) based bit(1) array level 4 packed unaligned dcl 2-7 ref 118 and_group_terminator 000523 automatic char(32) unaligned dcl 232 set ref 118* 120* 122* and_groups 2 based structure array level 2 dcl 2-7 arg based char unaligned dcl 219 set ref 27* arg_len 000113 automatic fixed bin(21,0) dcl 220 set ref 24* 27 27 arg_ptr 000114 automatic pointer dcl 221 set ref 24* 27 assign_ 000024 constant entry external dcl 194 ref 176 attr 14 based structure array level 2 dcl 3-5 attr_desc_ptr 10 based pointer array level 4 packed unaligned dcl 2-7 set ref 111* 130* attr_index 15 based fixed bin(17,0) array level 4 in structure "vrm_search_list" packed unaligned dcl 2-7 in procedure "vdsl" ref 122 133 attr_index 3 based fixed bin(17,0) array level 3 in structure "vrm_collection_info" dcl 6-6 in procedure "vdsl" ref 89 attr_names_available 000116 automatic bit(1) dcl 222 set ref 33* 34* 48* 50* attribute 3 based structure array level 2 dcl 6-6 c 000117 automatic fixed bin(17,0) dcl 223 set ref 107* 109 111 111 114 118 122 122 129 130 130 133 133* cd parameter fixed bin(35,0) dcl 147 set ref 145 151* char_string 000122 automatic varying char(1024) dcl 231 set ref 127* 136* 167 178* 178 179* 179 code 000120 automatic fixed bin(35,0) dcl 224 set ref 18* 19 19* 24* 25 25* 27* 28 28* collection_id 5 based bit(36) array level 3 dcl 2-7 ref 79 81 84 collection_id_supplied_sw 4(19) based bit(1) array level 3 packed unaligned dcl 2-7 ref 76 collection_name 000540 automatic char(32) unaligned dcl 235 set ref 79* 81* 89* 94* com_err_ 000022 constant entry external dcl 148 ref 151 cons 7 based structure array level 3 dcl 2-7 constraint_info based structure level 1 unaligned dcl 2-32 cu_$arg_count 000010 constant entry external dcl 225 ref 18 cu_$arg_ptr 000012 constant entry external dcl 226 ref 24 cv_ptr_ 000014 constant entry external dcl 227 ref 27 data_ptr 000640 automatic pointer dcl 184 set ref 162* 171 desc_ptr 000646 automatic pointer dcl 1-19 set ref 161* 164 172 172 173 174 descriptor based structure level 1 unaligned dcl 1-6 do_not_use_sw 4(18) based bit(1) array level 3 packed unaligned dcl 2-7 ref 63 error_table_$wrong_no_of_args 000016 external static fixed bin(35,0) dcl 228 set ref 21* fixed builtin function dcl 196 ref 164 172 173 174 found 000550 automatic bit(1) unaligned dcl 236 set ref 77* 83 86* full_key_equal_only_sw 4(22) based bit(1) array level 3 packed unaligned dcl 2-7 ref 69 i 000551 automatic fixed bin(17,0) dcl 237 set ref 83* 84 87* id 103 based bit(36) array level 3 dcl 5-6 ref 84 index_collection 103 based structure array level 2 dcl 5-6 info_ptr 104 based pointer array level 3 packed unaligned dcl 5-6 ref 87 ioa_ 000020 constant entry external dcl 229 ref 58 59 63 66 69 72 94 97 98 100 105 122 127 133 136 key_attr_sw 17(02) based bit(1) array level 4 packed unaligned dcl 2-7 ref 109 len 000645 automatic structure level 1 dcl 188 set ref 176 max_num_constraints 0(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-7 set ref 59* 63 63 66 66 69 69 72 72 76 76 79 79 81 81 84 84 97 97 98 98 99 99 100 100 107 107 109 109 111 111 111 111 114 114 118 118 122 122 122 122 129 129 130 130 130 130 133 133 133 133 msg parameter char unaligned dcl 149 set ref 145 151* multi_attr_seek_head_sw 4(21) based bit(1) array level 3 packed unaligned dcl 2-7 ref 72 must_initialize_sw 4(20) based bit(1) array level 3 packed unaligned dcl 2-7 ref 66 name 14 based char(32) array level 3 dcl 3-5 set ref 89 122* 133* nargs 000121 automatic fixed bin(17,0) dcl 230 set ref 18* 21 null builtin function dcl 234 ref 33 48 num_and_groups based fixed bin(17,0) level 2 packed unaligned dcl 2-7 set ref 58* 61 num_cons_in_this_and_group 2 based fixed bin(17,0) array level 3 packed unaligned dcl 2-7 set ref 97* 107 num_dims 000650 automatic fixed bin(17,0) initial dcl 1-20 set ref 164* 1-20* num_key_cons_in_this_and_group 2(18) based fixed bin(17,0) array level 3 packed unaligned dcl 2-7 set ref 98* num_seek_key_attr_count 3 based fixed bin(17,0) array level 3 packed unaligned dcl 2-7 set ref 99 100* number_dims 0(08) based bit(4) level 2 packed unaligned dcl 1-6 ref 164 number_of_index_collections 102 based fixed bin(17,0) level 2 dcl 5-6 ref 83 open_info_ptr 4 based pointer level 2 dcl 4-7 ref 54 operator 14(18) based fixed bin(17,0) array level 4 packed unaligned dcl 2-7 ref 122 133 packed 0(07) based bit(1) level 2 packed unaligned dcl 1-6 ref 172 precision 0(24) based bit(12) level 3 in structure "descriptor" packed unaligned dcl 1-6 in procedure "convert_to_char" ref 174 precision 0(18) 000645 automatic fixed bin(17,0) level 2 in structure "len" packed unaligned dcl 188 in procedure "convert_to_char" set ref 174* s_len based fixed bin(35,0) dcl 192 set ref 176* s_ptr 000636 automatic pointer dcl 184 set ref 171* 176* s_type 000643 automatic fixed bin(17,0) dcl 185 set ref 172* 176* scale 0(12) based bit(12) level 3 in structure "descriptor" packed unaligned dcl 1-6 in procedure "convert_to_char" ref 173 scale 000645 automatic fixed bin(17,0) level 2 in structure "len" packed unaligned dcl 188 in procedure "convert_to_char" set ref 173* search_list_ptr 14 based pointer level 2 dcl 4-7 ref 30 46 seek_head 000533 automatic char(20) unaligned dcl 233 set ref 114* 116* 122* seek_head_sw 17(04) based bit(1) array level 4 packed unaligned dcl 2-7 ref 114 size 0(12) based structure level 2 packed unaligned dcl 1-6 t_len 000644 automatic fixed bin(35,0) dcl 186 set ref 169* 176* t_ptr 000634 automatic pointer dcl 184 set ref 167* 176* t_type 000642 automatic fixed bin(17,0) dcl 185 set ref 168* 176* type 0(01) based fixed bin(6,0) level 2 packed unsigned unaligned dcl 1-6 ref 172 val_ptr 7 based pointer array level 4 packed unaligned dcl 2-7 set ref 111* 130* valid_sw 17 based bit(1) array level 4 packed unaligned dcl 2-7 ref 129 vrm_attr_info based structure level 1 unaligned dcl 3-28 vrm_collection_info based structure level 1 dcl 6-6 vrm_collection_info_ptr 000110 automatic pointer dcl 6-21 set ref 87* 89 vrm_cursor based structure level 1 dcl 4-7 vrm_cursor_ptr 000104 automatic pointer dcl 4-5 set ref 27* 30 31 45* 46 47 54 vrm_open_info based structure level 1 dcl 5-6 vrm_open_info_ptr 000106 automatic pointer dcl 5-28 set ref 54* 83 84 87 vrm_rel_desc based structure level 1 unaligned dcl 3-5 vrm_rel_desc_ptr 000102 automatic pointer dcl 3-41 set ref 31* 33 47* 48 89 122 133 vrm_relation_desc_ptr 6 based pointer level 2 dcl 4-7 ref 31 47 vrm_search_list based structure level 1 dcl 2-7 vrm_search_list_ptr 000100 automatic pointer dcl 2-3 set ref 30* 46* 58 59 61 63 66 69 72 76 79 81 84 97 98 99 100 107 109 111 111 114 118 122 122 129 130 130 133 133 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. VRM_COLLECTION_KEY_HEAD internal static char(16) initial unaligned dcl 6-26 VRM_OPEN_INFO_VERSION_1 internal static char(8) initial unaligned dcl 5-27 VRM_REL_DESC_KEY internal static varying char(256) initial dcl 3-46 VRM_REL_DESC_RECORD_ID internal static bit(12) initial unaligned dcl 3-43 VRM_REL_DESC_VERSION_1 internal static char(8) initial unaligned dcl 3-44 alloc_num_search_keys automatic fixed bin(17,0) dcl 2-59 search_keys based varying char(256) array dcl 2-60 search_keys_ptr automatic pointer dcl 2-58 vci_no_of_attributes automatic fixed bin(17,0) dcl 6-23 voi_no_of_index_collections automatic fixed bin(17,0) dcl 5-29 vrd_no_of_attrs automatic fixed bin(17,0) dcl 3-42 vrm_attr_info_ptr automatic pointer dcl 3-45 vrm_collection_header_type internal static bit(4) initial unaligned dcl 6-24 vsl_max_number_of_constraints automatic fixed bin(17,0) dcl 2-5 vsl_number_of_and_groups automatic fixed bin(17,0) dcl 2-4 NAMES DECLARED BY EXPLICIT CONTEXT. common 000500 constant label dcl 54 ref 36 52 convert_to_char 001605 constant entry internal dcl 156 ref 111 130 error 001542 constant entry internal dcl 145 ref 19 21 25 28 exit 001541 constant label dcl 143 ref 152 subroutine 000452 constant entry external dcl 40 vdsl 000264 constant entry external dcl 16 vrm_display_search_list 000273 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2114 2142 1774 2124 Length 2464 1774 26 306 117 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vdsl 522 external procedure is an external procedure. error internal procedure shares stack frame of external procedure vdsl. convert_to_char internal procedure shares stack frame of external procedure vdsl. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vdsl 000100 vrm_search_list_ptr vdsl 000102 vrm_rel_desc_ptr vdsl 000104 vrm_cursor_ptr vdsl 000106 vrm_open_info_ptr vdsl 000110 vrm_collection_info_ptr vdsl 000112 ag vdsl 000113 arg_len vdsl 000114 arg_ptr vdsl 000116 attr_names_available vdsl 000117 c vdsl 000120 code vdsl 000121 nargs vdsl 000122 char_string vdsl 000523 and_group_terminator vdsl 000533 seek_head vdsl 000540 collection_name vdsl 000550 found vdsl 000551 i vdsl 000634 t_ptr convert_to_char 000636 s_ptr convert_to_char 000640 data_ptr convert_to_char 000642 t_type convert_to_char 000643 s_type convert_to_char 000644 t_len convert_to_char 000645 len convert_to_char 000646 desc_ptr convert_to_char 000650 num_dims convert_to_char THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. assign_ com_err_ cu_$arg_count cu_$arg_ptr cv_ptr_ ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000263 18 000300 19 000310 21 000321 24 000344 25 000363 27 000374 28 000420 30 000430 31 000433 33 000436 34 000444 36 000446 40 000447 45 000457 46 000463 47 000465 48 000467 50 000475 52 000477 54 000500 58 000503 59 000523 61 000545 63 000555 66 000605 69 000635 72 000670 76 000723 77 000737 79 000740 81 000753 83 000761 84 000773 86 001015 87 001017 89 001021 92 001027 94 001031 97 001051 98 001106 99 001143 100 001156 105 001201 107 001212 109 001231 111 001252 114 001262 116 001307 118 001312 120 001321 122 001324 127 001375 128 001420 129 001421 130 001424 133 001434 136 001512 139 001535 140 001537 143 001541 145 001542 151 001553 152 001604 156 001605 1 20 001607 161 001610 162 001616 164 001624 167 001630 168 001632 169 001634 171 001636 172 001637 173 001651 174 001656 176 001661 178 001702 179 001723 182 001733 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved