COMPILATION LISTING OF SEGMENT rlm_create_relation Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1137.72_Tue_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 8 9 10 /****^ HISTORY COMMENTS: 11* 1) change(86-02-27,Pierret), approve(86-02-27,MCR7340), 12* audit(86-04-28,Newcomb), install(86-05-06,MR12.0-1054): 13* Changed to be sure that file_create_info_ptr is set before using it. 14* 2) change(86-04-22,Pierret), approve(86-04-22,MCR7340), 15* audit(86-04-28,Newcomb), install(86-05-06,MR12.0-1054): 16* Removed dm_hdr_collection_id.incl.pl1, ltrim, rtrim, string as they were 17* not used. Added addr builtin as it is used but was not declared. 18* END HISTORY COMMENTS */ 19 20 21 /* DESCRIPTION 22**/ 23 24 /* HISTORY: 25*Written by Matthew Pierret, 05/01/82. 26*Modified: 27*06/18/82 by Matthew Pierret: Changed to use collection_manager_$create_file 28* instead of file_manager_$create. 29*09/20/82 by Matthew Pierret: Changed to use attribute_descriptor_list. 30*10/12/82 by Matthew Pierret: Changed to set the maximum number of attributes 31* per index in the index_attribute_map to be the minimum of the 32* actual number of attributes and 33* INITIAL_NUMBER_OF_ATTRIBUTES_PER_INDEX. 34*10/20/82 by Matthew Pierret: Converted to use file_manager_, cm_$create_file 35* instead of cm_$create_page_file, file_create_info instead of 36* pf_creation_info, REL_CREATION_INFO_VERION_2. 37*02/17/83 by Matthew Pierret: Changed to always use typed_vector_array 38* instead of attribute_descriptor_list. 39*02/28/83 by Matthew Pierret: Split index_attribute_map into attribute_info 40* and index_attribute_map. Changed to use relation_opening_info, 41* with pointers to relation_header, attribute_info, and 42* index_attribute_map, and to update these structures using 43* rlm_update_opening_info. 44*03/14/83 by Lindsey Spratt: Fixed to initialize the relation_opening_info_ptr 45* to null. 46*03/21/83 by Matthew Pierret: Fixed to create record_cursor. 47*08/09/83 by Matthew Pierret: Removed the obsolete dm_data_$area_ptr. 48*08/18/83 by Lindsey L. Spratt: Fixed to always set the 49* attribute_descriptor_list_ptr. 50*05/20/84 by Matthew Pierret: Changed to use (ESM CISM)_INFO_VERSION_1. 51*08/20/84 by Matthew C. Pierret: Changed to use FILE_CREATE_INFO_VERSION_2. 52* Also changed to use automatic structures instead of allocating 53* based ones for the structures pointed to by rel_creation_info. 54* This fixed a bug where in some cases they weren't being freed. 55* Removed the un-used $descriptor_list entry. 56*10/30/84 by Stanford S. Cox: INIT_* - Added structure version asgn. 57*11/26/84 by Stanford S. Cox: IDFCI: Add init of file_create_info.mbz_2. 58*05/02/85 by S. Cox: Init to null the *info_ptr which may be init by INIT_*. 59* This fixes a bug where a null rel_creation_info_ptr didn't work. 60**/ 61 62 /* format: style2,ind3 */ 63 64 rlm_create_relation: 65 proc (); 66 67 return; /* Not a valid entry point. */ 68 69 70 /* START OF DECLARATIONS */ 71 /* Parameter */ 72 73 dcl p_rel_dir char (*); 74 dcl p_rel_name char (*); 75 dcl p_rel_creation_info_ptr 76 ptr; 77 dcl p_rel_opening_id bit (36) aligned; 78 dcl p_record_collection_id bit (36) aligned; 79 dcl p_code fixed bin (35); 80 dcl p_typed_vector_array_ptr 81 ptr; 82 83 /* Automatic */ 84 85 dcl 1 my_file_create_info aligned like file_create_info; 86 dcl 1 my_basic_esm_info aligned like basic_esm_info; 87 dcl 1 my_unblocked_cism_info 88 aligned like unblocked_cism_info; 89 dcl (record_collection_id, rel_opening_id) 90 bit (36) aligned init ("0"b); 91 dcl typed_vector_array_supplied 92 bit (1) aligned; 93 dcl record_cursor_ptr ptr init (null); 94 95 /* Static */ 96 97 dcl dm_area_ptr ptr static init (null ()); 98 99 /* Based */ 100 101 dcl dm_area area (sys_info$max_seg_size) based (dm_area_ptr); 102 103 /* Builtin */ 104 105 dcl (addr, hbound, unspec, min, null) 106 builtin; 107 108 /* Condition */ 109 110 dcl cleanup condition; 111 112 /* Constant */ 113 114 dcl myname init ("rlm_create_relation") char (19) int static options (constant); 115 dcl BYTES_PER_WORD init (4) fixed bin; 116 117 /* Entry */ 118 119 dcl file_manager_$delete_close 120 entry (bit (36) aligned, fixed bin (35)); 121 dcl get_dm_free_area_ entry () returns (ptr); 122 dcl get_ring_ entry () returns (fixed bin (3)); 123 dcl rlm_opening_info$free entry (ptr, fixed bin (35)); 124 dcl rlm_opening_info$init entry (bit (36) aligned, ptr, fixed bin (35)); 125 dcl rlm_update_opening_info$attribute_info 126 entry (ptr, ptr, fixed bin (35)); 127 dcl rlm_update_opening_info$index_attribute_map 128 entry (ptr, ptr, fixed bin (35)); 129 dcl rlm_update_opening_info$increment_openings 130 entry (ptr, fixed bin (35)); 131 dcl rlm_update_opening_info$relation_header 132 entry (ptr, ptr, fixed bin (35)); 133 dcl vector_util_$init_typed_vector_array 134 entry options (variable); 135 dcl ioa_$rsnnl entry options (variable); 136 dcl sub_err_ entry options (variable); 137 138 /* External */ 139 140 dcl error_table_$unimplemented_version 141 ext fixed bin (35); 142 dcl dm_error_$unimplemented_cism 143 ext fixed bin (35); 144 dcl dm_error_$unimplemented_esm 145 ext fixed bin (35); 146 dcl sys_info$max_seg_size ext fixed bin; 147 148 /* END OF DECLARATIONS */ 149 150 array: 151 entry (p_rel_dir, p_rel_name, p_rel_creation_info_ptr, p_typed_vector_array_ptr, p_rel_opening_id, 152 p_record_collection_id, p_code); 153 154 typed_vector_array_ptr = p_typed_vector_array_ptr; 155 call CHECK_VERSION ((typed_vector_array.version), (TYPED_VECTOR_ARRAY_VERSION_2), "typed_vector_array"); 156 157 basic_esm_info_ptr, unblocked_cism_info_ptr, file_create_info_ptr, relation_opening_info_ptr = null; 158 159 if dm_area_ptr = null 160 then dm_area_ptr = get_dm_free_area_ (); 161 162 p_code = 0; 163 p_rel_opening_id = "0"b; 164 p_record_collection_id = "0"b; 165 166 167 on cleanup call FINISH; 168 169 if p_rel_creation_info_ptr ^= null 170 then 171 do; 172 rel_creation_info_ptr = p_rel_creation_info_ptr; 173 call CHECK_VERSION ((rel_creation_info.version), (REL_CREATION_INFO_VERSION_2), "rel_creation_info"); 174 175 file_create_info_ptr = rel_creation_info.file_create_info_ptr; 176 basic_esm_info_ptr = rel_creation_info.esm_info_ptr; 177 unblocked_cism_info_ptr = rel_creation_info.cism_info_ptr; 178 179 end; 180 181 if file_create_info_ptr = null 182 then call INIT_DEFAULT_FILE_CREATE_INFO (file_create_info_ptr); 183 else if file_create_info.version ^= FILE_CREATE_INFO_VERSION_2 184 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 185 "^/Expected version ^a of the file_create_info structure.^/Received version ^a", 186 FILE_CREATE_INFO_VERSION_2, file_create_info.version); 187 188 if basic_esm_info_ptr = null 189 then call INIT_DEFAULT_ESM_INFO (basic_esm_info_ptr); 190 else 191 do; 192 call CHECK_VERSION_CHAR (basic_esm_info.version, ESM_INFO_VERSION_1, "esm_info"); 193 if basic_esm_info.type ^= BASIC_ELEMENT_STORAGE_METHOD 194 then call sub_err_ (dm_error_$unimplemented_esm, myname, ACTION_CANT_RESTART, null, 0, 195 "^/This routine does not implement element storage method ^d.", basic_esm_info.type); 196 end; 197 198 if unblocked_cism_info_ptr = null 199 then call INIT_DEFAULT_CISM_INFO (unblocked_cism_info_ptr); 200 else 201 do; 202 call CHECK_VERSION_CHAR (unblocked_cism_info.version, CISM_INFO_VERSION_1, "cism_info"); 203 if unblocked_cism_info.type ^= UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD 204 then call sub_err_ (dm_error_$unimplemented_cism, myname, ACTION_CANT_RESTART, null, 0, 205 "^/This routine does not implement control interval storage method ^d.", unblocked_cism_info.type); 206 end; 207 208 209 /* Create the file which will hold the relation. This operation leaves the 210* file open. */ 211 212 call collection_manager_$create_file (p_rel_dir, p_rel_name, file_create_info_ptr, rel_opening_id, p_code); 213 if p_code ^= 0 214 then call ERROR_RETURN (); 215 216 /* Create the record collection which will hold the tuples of the relation. */ 217 218 call record_manager_$create_collection (rel_opening_id, typed_vector_array_ptr, unblocked_cism_info_ptr, 219 basic_esm_info_ptr, record_collection_id, p_code); 220 if p_code ^= 0 221 then call ERROR_RETURN (); 222 223 call record_manager_$create_cursor (rel_opening_id, record_collection_id, dm_area_ptr, record_cursor_ptr, p_code); 224 if p_code ^= 0 225 then call ERROR_RETURN (); 226 227 /* Set up the relation_opening_info structure. */ 228 229 call rlm_opening_info$init (rel_opening_id, relation_opening_info_ptr, p_code); 230 if p_code ^= 0 231 then call ERROR_RETURN (); 232 233 relation_opening_info.per_process.record_cursor_ptr = record_cursor_ptr; 234 235 call INIT_RELATION_HEADER (record_collection_id, relation_header_ptr); 236 237 call rlm_update_opening_info$relation_header (relation_opening_info_ptr, relation_header_ptr, p_code); 238 if p_code ^= 0 239 then call ERROR_RETURN (); 240 241 call INIT_ATTRIBUTE_INFO (attribute_info_ptr); 242 call rlm_update_opening_info$attribute_info (relation_opening_info_ptr, attribute_info_ptr, p_code); 243 if p_code ^= 0 244 then call ERROR_RETURN (); 245 246 call INIT_INDEX_ATTRIBUTE_MAP (index_attribute_map_ptr); 247 call rlm_update_opening_info$index_attribute_map (relation_opening_info_ptr, index_attribute_map_ptr, p_code); 248 if p_code ^= 0 249 then call ERROR_RETURN (); 250 251 252 call rlm_update_opening_info$increment_openings (relation_opening_info_ptr, (0)); 253 254 p_rel_opening_id = rel_opening_id; 255 p_record_collection_id = record_collection_id; 256 257 call FINISH (); 258 259 MAIN_RETURN: 260 return; /* Effective end of rlm_create_relation. */ 261 262 263 FINISH: 264 proc (); 265 266 267 268 if p_rel_opening_id = "0"b 269 then 270 do; 271 272 if rel_opening_id ^= "0"b 273 then 274 do; 275 call file_manager_$delete_close (rel_opening_id, (0)); 276 p_rel_opening_id = "0"b; 277 end; 278 279 if relation_opening_info_ptr ^= null 280 then 281 do; 282 call rlm_opening_info$free (relation_opening_info_ptr, (0)); 283 284 if relation_header_ptr ^= null 285 then free relation_header_ptr -> relation_header in (dm_area); 286 if attribute_info_ptr ^= null 287 then free attribute_info in (dm_area); 288 if index_attribute_map_ptr ^= null 289 then free index_attribute_map in (dm_area); 290 end; 291 end; 292 293 end FINISH; 294 295 CHECK_VERSION: 296 proc (cv_p_received_version, cv_p_expected_version, cv_p_structure_name); 297 298 dcl cv_p_received_version fixed bin (35); 299 dcl cv_p_expected_version fixed bin (35); 300 dcl cv_p_structure_name char (*); 301 302 if cv_p_received_version ^= cv_p_expected_version 303 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null (), 0, 304 "^/Expected version ^d of the ^a structure. 305 Received version ^d, instead.", cv_p_expected_version, cv_p_structure_name, cv_p_received_version); 306 307 end CHECK_VERSION; 308 309 310 CHECK_VERSION_CHAR: 311 proc (cvc_p_received_version, cvc_p_expected_version, cvc_p_structure_name); 312 313 dcl cvc_p_received_version char (8) aligned; 314 dcl cvc_p_expected_version char (8) aligned; 315 dcl cvc_p_structure_name char (*); 316 317 if cvc_p_received_version ^= cvc_p_expected_version 318 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 319 "^/Expected version ^a of the ^a structure. 320 Received version ^a, instead.", cvc_p_expected_version, cvc_p_structure_name, cvc_p_received_version); 321 322 end CHECK_VERSION_CHAR; 323 324 325 ERROR_RETURN: 326 proc (); 327 328 call FINISH (); 329 goto MAIN_RETURN; 330 331 end ERROR_RETURN; 332 333 INIT_DEFAULT_FILE_CREATE_INFO: 334 proc (idfci_p_file_create_info_ptr); 335 336 dcl idfci_p_file_create_info_ptr 337 ptr; 338 339 340 idfci_p_file_create_info_ptr = addr (my_file_create_info); 341 342 idfci_p_file_create_info_ptr -> file_create_info.version = FILE_CREATE_INFO_VERSION_2; 343 idfci_p_file_create_info_ptr -> file_create_info.mbz_2 (*) = 0; 344 idfci_p_file_create_info_ptr -> file_create_info.ring_brackets (*) = get_ring_ (); 345 346 347 return; 348 349 end INIT_DEFAULT_FILE_CREATE_INFO; 350 351 INIT_DEFAULT_ESM_INFO: 352 proc (idei_p_esm_info_ptr); 353 354 dcl idei_p_esm_info_ptr ptr; 355 356 idei_p_esm_info_ptr = addr (my_basic_esm_info); 357 358 unspec (idei_p_esm_info_ptr -> basic_esm_info) = ""b; 359 idei_p_esm_info_ptr -> basic_esm_info.version = ESM_INFO_VERSION_1; 360 idei_p_esm_info_ptr -> basic_esm_info.type = BASIC_ELEMENT_STORAGE_METHOD; 361 idei_p_esm_info_ptr -> basic_esm_info.maximum_element_length = -1; 362 363 364 return; 365 366 end INIT_DEFAULT_ESM_INFO; 367 368 INIT_DEFAULT_CISM_INFO: 369 proc (idci_p_cism_info_ptr); 370 371 dcl idci_p_cism_info_ptr ptr; 372 373 idci_p_cism_info_ptr = addr (my_unblocked_cism_info); 374 375 unspec (idci_p_cism_info_ptr -> unblocked_cism_info) = ""b; 376 idci_p_cism_info_ptr -> unblocked_cism_info.version = CISM_INFO_VERSION_1; 377 idci_p_cism_info_ptr -> unblocked_cism_info.type = UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD; 378 379 380 return; 381 382 end INIT_DEFAULT_CISM_INFO; 383 384 INIT_RELATION_HEADER: 385 proc (irh_p_record_collection_id, irh_p_relation_header_ptr); 386 387 dcl irh_p_record_collection_id 388 bit (36) aligned; 389 dcl irh_p_relation_header_ptr 390 ptr; 391 392 alloc relation_header in (dm_area); 393 relation_header.version = RELATION_HEADER_VERSION_3; 394 395 relation_header.record_collection_id = irh_p_record_collection_id; 396 397 irh_p_relation_header_ptr = relation_header_ptr; 398 399 return; 400 401 end INIT_RELATION_HEADER; 402 403 INIT_ATTRIBUTE_INFO: 404 proc (iai_p_attribute_info_ptr); 405 406 dcl iai_p_attribute_info_ptr 407 ptr; 408 dcl iai_based_descriptor_string 409 bit (36) aligned based; 410 dcl iai_attribute_idx fixed bin (17); 411 412 ai_number_of_attributes = hbound (typed_vector_array.dimension_table, 1); 413 ai_maximum_attribute_name_length = typed_vector_array.maximum_dimension_name_length; 414 415 alloc attribute_info in (dm_area); 416 attribute_info.version = ATTRIBUTE_INFO_VERSION_1; 417 iai_p_attribute_info_ptr = attribute_info_ptr; 418 419 do iai_attribute_idx = 1 to hbound (typed_vector_array.dimension_table, 1); 420 attribute_info.attribute (iai_attribute_idx).name = typed_vector_array.dimension_table (iai_attribute_idx).name; 421 attribute_info.attribute (iai_attribute_idx).descriptor = 422 typed_vector_array.dimension_table (iai_attribute_idx).descriptor_ptr -> iai_based_descriptor_string; 423 end; 424 425 return; 426 427 end INIT_ATTRIBUTE_INFO; 428 429 INIT_INDEX_ATTRIBUTE_MAP: 430 proc (iiam_p_index_attribute_map_ptr); 431 432 dcl iiam_p_index_attribute_map_ptr 433 ptr; 434 dcl INITIAL_NUMBER_OF_INDICES 435 init (5) fixed bin (17) int static options (constant); 436 dcl INITIAL_NUMBER_OF_ATTRIBUTES_PER_INDEX 437 init (5) fixed bin (17) int static options (constant); 438 439 440 iam_maximum_number_of_indices = INITIAL_NUMBER_OF_INDICES; 441 iam_maximum_number_of_attributes_per_index = 442 min (INITIAL_NUMBER_OF_ATTRIBUTES_PER_INDEX, typed_vector_array.number_of_dimensions); 443 444 alloc index_attribute_map in (dm_area); 445 index_attribute_map.version = INDEX_ATTRIBUTE_MAP_VERSION_2; 446 unspec (index_attribute_map.index) = "0"b; 447 448 iiam_p_index_attribute_map_ptr = index_attribute_map_ptr; 449 450 return; 451 452 end INIT_INDEX_ATTRIBUTE_MAP; 453 1 1 /* BEGIN INCLUDE FILE - dm_rlm_opening_info.incl.pl1 */ 1 2 1 3 /* Written by Matthew Pierret, 09/08/82. 1 4*Modified: 1 5*01/18/83 by Matthew Pierret: Changed version to be char (8). Added 1 6* transaction_id. 1 7*02/25/83 by Matthew Pierret: Changed to relation_opening_info (from 1 8* relation_info). 1 9*10/29/84 by Stanford S. Cox: Changed to not init version. 1 10**/ 1 11 1 12 1 13 /* format: style2,ind3 */ 1 14 1 15 dcl 1 relation_opening_info 1 16 aligned based (relation_opening_info_ptr), 1 17 2 version char (8), 1 18 2 per_process, 1 19 3 current_transaction_id 1 20 bit (36) aligned init ("0"b), 1 21 3 current_rollback_count 1 22 fixed bin (35) init (0), 1 23 3 file_opening_id bit (36) aligned init ("0"b), 1 24 3 number_of_openings 1 25 fixed bin (17) aligned init (0), 1 26 3 lock_advice aligned, 1 27 4 this_process bit (2) unaligned init ("0"b), 1 28 4 other_processes 1 29 bit (2) unaligned init ("0"b), 1 30 4 mbz1 bit (32) unaligned init ("0"b), 1 31 3 record_cursor_ptr 1 32 ptr init (null), 1 33 3 index_cursor_array_ptr 1 34 ptr init (null), 1 35 2 relation_header_ptr 1 36 ptr init (null), 1 37 2 attribute_info_ptr ptr init (null), 1 38 2 index_attribute_map_ptr 1 39 ptr init (null); 1 40 1 41 dcl relation_opening_info_ptr 1 42 ptr; 1 43 dcl RELATION_OPENING_INFO_VERSION_2 1 44 init ("rlmopen2") char (8) aligned internal static options (constant); 1 45 1 46 1 47 /* END INCLUDE FILE - dm_rlm_opening_info.incl.pl1 */ 454 455 2 1 /* BEGIN INCLUDE FILE - dm_rlm_header.incl.pl1 */ 2 2 2 3 /* HISTORY: 2 4*Written by Matthew Pierret, 1982. 2 5*Modified: 2 6*02/25/83 by Matthew Pierret: Added attribute_info_element_id, 2 7* header_info_update_count, RELATION_HEADER_VERSION_2. 2 8*05/29/84 by Matthew Pierret: Added caller_header_element_id, 2 9* RELATION_HEADER_VERSION_3. 2 10*10/29/84 by Stanford S. Cox: Changed to not init version. 2 11**/ 2 12 2 13 /* format: style2,ind3 */ 2 14 2 15 dcl 1 relation_header aligned based (relation_header_ptr), 2 16 2 version char (8), 2 17 2 header_info_update_count 2 18 fixed bin (35) aligned init (0), 2 19 2 record_collection_id 2 20 bit (36) aligned init ("0"b), 2 21 2 cluster_index_id bit (36) aligned init ("0"b), 2 22 2 attribute_info_element_id 2 23 bit (36) aligned init ("0"b), 2 24 2 index_attribute_map_element_id 2 25 bit (36) aligned init ("0"b), 2 26 2 caller_header_element_id 2 27 bit (36) aligned init ("0"b); 2 28 2 29 dcl relation_header_ptr ptr init (null); 2 30 dcl RELATION_HEADER_VERSION_3 2 31 init ("RelHdr 3") char (8) aligned internal static options (constant); 2 32 2 33 /* END INCLUDE FILE - dm_rlm_header.incl.pl1 */ 456 457 3 1 /* BEGIN INCLUDE FILE dm_rlm_attribute_info.incl.pl1 */ 3 2 3 3 /* DESCRIPTION 3 4* 3 5* Relation attributes descriptor and name. This info is kept in the header 3 6* collection of existing files, therefore this incl should not be changed. 3 7**/ 3 8 3 9 /* HISTORY: 3 10*Written by Matthew Pierret, 02/25/83. 3 11*Modified: 3 12*10/29/84 by Stanford S. Cox: Changed to not init version. 3 13*12/14/84 by Stanford S. Cox: Backed out previous structure alignment changes 3 14* which were incompatible with existing DM files. 3 15**/ 3 16 3 17 /* format: style2,ind3 */ 3 18 dcl 1 attribute_info aligned based (attribute_info_ptr), 3 19 2 version char (8), 3 20 2 number_of_attributes 3 21 fixed bin (17) unal, 3 22 2 maximum_attribute_name_length 3 23 fixed bin (17) unal, 3 24 2 attribute (ai_number_of_attributes refer (attribute_info.number_of_attributes)), 3 25 3 descriptor bit (36) aligned, 3 26 3 name char (ai_maximum_attribute_name_length 3 27 refer (attribute_info.maximum_attribute_name_length)) varying; 3 28 3 29 dcl attribute_info_ptr ptr init (null); 3 30 dcl ai_maximum_attribute_name_length 3 31 fixed bin (17); 3 32 dcl ai_number_of_attributes 3 33 fixed bin (17); 3 34 dcl ATTRIBUTE_INFO_VERSION_1 3 35 init ("attrinf1") char (8) aligned internal static options (constant); 3 36 3 37 /* END INCLUDE FILE dm_rlm_attribute_info.incl.pl1 */ 3 38 458 459 4 1 /* BEGIN INCLUDE FILE - dm_rlm_index_attr_map.incl.pl1 */ 4 2 4 3 /* DESCRIPTION 4 4* 4 5* Relation index components. This info is kept in the header 4 6* collection of existing files, therefore this incl should not be changed. 4 7**/ 4 8 4 9 /* HISTORY: 4 10*Written by Matthew Pierret, 01/15/83. 4 11*Modified: 4 12*10/29/84 by Stanford S. Cox: Changed to not init version. 4 13*12/14/84 by Stanford S. Cox: Backed out previous structure alignment changes 4 14* which were incompatible with existing DM files. 4 15**/ 4 16 4 17 /* format: style2,ind3 */ 4 18 dcl 1 index_attribute_map aligned based (index_attribute_map_ptr), 4 19 2 version char (8), 4 20 2 number_of_indices fixed bin (17) unal init (0), 4 21 2 maximum_number_of_indices 4 22 fixed bin (17) unal, 4 23 2 maximum_number_of_attributes_per_index 4 24 fixed bin (17) unal, 4 25 2 mbz fixed bin (17) unal, 4 26 2 index (iam_maximum_number_of_indices refer (index_attribute_map.maximum_number_of_indices)), 4 27 3 collection_id bit (36) aligned, 4 28 3 style fixed bin (17) unal, 4 29 3 number_of_duplication_fields 4 30 fixed bin (17) unal, 4 31 3 number_of_attributes 4 32 fixed bin (17) unal, 4 33 3 attribute_id (iam_maximum_number_of_attributes_per_index 4 34 refer (index_attribute_map.maximum_number_of_attributes_per_index)) fixed 4 35 bin (17) unal; 4 36 4 37 dcl index_attribute_map_ptr 4 38 ptr init (null); 4 39 dcl iam_maximum_number_of_indices 4 40 fixed bin (17); 4 41 dcl iam_maximum_number_of_attributes_per_index 4 42 fixed bin (17); 4 43 dcl INDEX_ATTRIBUTE_MAP_VERSION_2 4 44 init ("idx_map2") char (8) aligned internal static options (constant); 4 45 dcl INITIAL_NUMBER_OF_INDICES 4 46 init (5) fixed bin (17); 4 47 dcl UNUSED_INDEX_ATTRIBUTE_MAP_ENTRY 4 48 init (0) fixed bin (17); 4 49 4 50 /* END INCLUDE FILE - dm_rlm_index_attr_map.incl.pl1 */ 460 461 5 1 /* BEGIN INCLUDE FILE - dm_rel_creation_info.incl.pl1 */ 5 2 5 3 /* format: style1 */ 5 4 dcl 1 rel_creation_info aligned based (rel_creation_info_ptr), 5 5 2 version fixed bin (35), 5 6 2 file_create_info_ptr ptr, 5 7 2 esm_info_ptr ptr, 5 8 2 cism_info_ptr ptr; 5 9 5 10 dcl rel_creation_info_ptr ptr; 5 11 dcl REL_CREATION_INFO_VERSION_2 fixed bin (35) init (2); 5 12 5 13 /* END INCLUDE FILE - dm_rel_creation_info.incl.pl1 */ 462 463 6 1 /* BEGIN INCLUDE FILE: dm_file_create_info.incl.pl1 */ 6 2 6 3 /* DESCRIPTION: 6 4* This include file contains the declaration of the file_create_info 6 5* structure. This structure is used to specify to file_manager_ 6 6* attributes a file is to have. 6 7**/ 6 8 6 9 /* HISTORY: 6 10*Written by Jeffery D. Ives, 09/16/82. 6 11* (Original concept by Lindsey L. Spratt.) 6 12*Modified: 6 13*06/15/84 by Matthew Pierret: Added ring_brackets. Changed to a char (8) 6 14* version. 6 15*11/07/84 by Matthew Pierret: Extended mbz_3 to by one word to cover the 6 16* gap caused by the double-word alignment of mbz_2. 6 17**/ 6 18 6 19 /* format: style2,ind3 */ 6 20 6 21 dcl 1 file_create_info aligned based (file_create_info_ptr), 6 22 2 version char (8) aligned, 6 23 2 ci_size_in_bytes fixed bin (35) init (4096), 6 24 /* control interval physical size, must be 4096 */ 6 25 2 blocking_factor fixed bin init (255), /* # of cis in each msf seg, must be 64 or 255 */ 6 26 2 flags unal, 6 27 3 protected bit (1) unal init ("1"b), 6 28 /* protected against inconsistency */ 6 29 3 no_concurrency bit (1) unal init ("0"b), 6 30 /* don't protect against concurrent access */ 6 31 3 no_rollback bit (1) unal init ("0"b), 6 32 /* don't protect against system failure */ 6 33 3 mbz_1 bit (15) unal init ("0"b), 6 34 /* must be zero for future compatability */ 6 35 2 ring_brackets (2) fixed bin (3) unal init (0, 0), 6 36 /* write bracket is first element, read bracket is second */ 6 37 2 mbz_3 bit (46) unal init ("0"b), 6 38 /* must be zero for future compatability */ 6 39 2 mbz_2 (30) fixed bin (71); /* must be zero for future compatability */ 6 40 6 41 dcl file_create_info_ptr ptr; 6 42 6 43 dcl FILE_CREATE_INFO_VERSION_2 6 44 char (8) aligned static options (constant) init ("FileCr 2"); 6 45 dcl ( 6 46 FCI_WRITE_BRACKET_IDX init (1), 6 47 FCI_READ_BRACKET_IDX init (2) 6 48 ) internal static options (constant); 6 49 6 50 /* ************ END OF INCLUDE FILE: dm_file_create_info.incl.pl1 ********** */ 464 465 7 1 /* BEGIN INCLUDE FILE dm_cism_info.incl.pl1 */ 7 2 7 3 /* DESCRIPTION: 7 4* 7 5* This include file contains the blocked_cism_info and unblocked_cism_info 7 6* structures, as well as constants relevant to control interval storage 7 7* management. These structures and constants are used by several managers. 7 8* The structures each describe a method of control interval storage 7 9* management. 7 10**/ 7 11 7 12 /* HISTORY: 7 13* 7 14*Written 02/07/82 by Matthew Pierret. 7 15*Modified: 7 16*05/17/84 by Matthew Pierret: Changed to align structure elements and add 7 17* a version string. 7 18**/ 7 19 7 20 /* format: style2 */ 7 21 7 22 dcl 1 blocked_cism_info based (blocked_cism_info_ptr) aligned, 7 23 2 version char (8) aligned init (CISM_INFO_VERSION_1), 7 24 2 type fixed bin (17) init (BLOCKED_CONTROL_INTERVAL_STORAGE_METHOD), 7 25 2 number_of_control_intervals_per_block 7 26 fixed bin (17); 7 27 7 28 dcl 1 unblocked_cism_info based (unblocked_cism_info_ptr) aligned, 7 29 2 version char (8) aligned init (CISM_INFO_VERSION_1), 7 30 2 type fixed bin (17) init (UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD), 7 31 2 must_be_zero fixed bin (17); 7 32 7 33 dcl blocked_cism_info_ptr ptr; 7 34 dcl unblocked_cism_info_ptr 7 35 ptr; 7 36 7 37 dcl CISM_INFO_VERSION_1 init ("CISMinf1") char (8) aligned internal static options (constant); 7 38 dcl BLOCKED_CONTROL_INTERVAL_STORAGE_METHOD 7 39 fixed bin init (1) internal static options (constant); 7 40 dcl UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD 7 41 fixed bin init (2) internal static options (constant); 7 42 7 43 /* END INCLUDE FILE dm_cism_info.incl.pl1 ---------- */ 466 467 8 1 /* BEGIN INCLUDE FILE dm_esm_info.incl.pl1 */ 8 2 8 3 /* DESCRIPTION: 8 4* 8 5* This include file contains the basic_esm_info and ordered_esm_info 8 6* structures, as well as constants used to distinguish element storage 8 7* methods. They are used by several managers to describe the type of 8 8* element storage management to be used in a collection. 8 9**/ 8 10 8 11 /* HISTORY: 8 12*Written 02/07/82 by Matthew Pierret. 8 13*Modified: 8 14*05/17/84 by Matthew Pierret: Changed name from dm_cm_esm_info (the cm_ 8 15* dropped because the include file is used by multiple managers), 8 16* to align structure elements and to add a version string. 8 17**/ 8 18 8 19 /* format: style2 */ 8 20 8 21 dcl 1 basic_esm_info based (basic_esm_info_ptr) aligned, 8 22 2 version char (8) aligned init (ESM_INFO_VERSION_1), 8 23 2 type fixed bin (17) init (BASIC_ELEMENT_STORAGE_METHOD), 8 24 2 flags aligned, 8 25 3 threaded bit (1) unal, 8 26 3 fixed_length bit (1) unal, 8 27 3 pad bit (34) unal, 8 28 2 maximum_element_length 8 29 fixed bin (35); 8 30 8 31 dcl 1 ordered_esm_info based (ordered_esm_info_ptr) aligned, 8 32 2 version char (8) aligned init (ESM_INFO_VERSION_1), 8 33 2 type fixed bin (17) init (ORDERED_ELEMENT_STORAGE_METHOD), 8 34 2 flags aligned, 8 35 3 fixed_length bit (1) unal, 8 36 3 pad bit (35) unal, 8 37 2 maximum_element_length 8 38 fixed bin (35); 8 39 8 40 dcl basic_esm_info_ptr ptr; 8 41 dcl ordered_esm_info_ptr ptr; 8 42 8 43 dcl ESM_INFO_VERSION_1 init ("ESMinfo1") char (8) aligned internal static options (constant); 8 44 dcl BASIC_ELEMENT_STORAGE_METHOD 8 45 fixed bin init (1) internal static options (constant); 8 46 dcl ORDERED_ELEMENT_STORAGE_METHOD 8 47 fixed bin init (2) internal static options (constant); 8 48 8 49 8 50 /* END INCLUDE FILE dm_esm_info.incl.pl1 */ 468 469 9 1 /* *********************************************************** 9 2* * * 9 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 9 4* * * 9 5* *********************************************************** */ 9 6 /* BEGIN INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 9 7 9 8 /* Written by Lindsey Spratt, 03/04/82. 9 9*Modified: 9 10*06/23/82 by Lindsey Spratt: Changed to version 2. The cv entry declarations 9 11* were altered. cv_to_typed now takes ptr to the descriptor, ptr to 9 12* the print_vector value (char varying), ptr to the typed_vector 9 13* value location, and a code. cv_to_print now takes ptr to the 9 14* descriptor, ptr to the typed_vector value, the print_vector value 9 15* (char(*) varying), the maximum allowed length for the print_vector 9 16* value, a temp_seg to put the value in if its to big to fit into 9 17* the print_vector, and a code. 9 18**/ 9 19 9 20 /* format: style2,ind3 */ 9 21 dcl 1 typed_vector_array based (typed_vector_array_ptr) aligned, 9 22 2 version fixed bin (35), 9 23 2 number_of_dimensions 9 24 fixed bin (17), 9 25 2 number_of_vectors fixed bin (17), 9 26 2 number_of_vector_slots 9 27 fixed bin (17), 9 28 2 maximum_dimension_name_length 9 29 fixed bin (17), 9 30 2 dimension_table (tva_number_of_dimensions refer (typed_vector_array.number_of_dimensions)), 9 31 3 name char (tva_maximum_dimension_name_length 9 32 refer (typed_vector_array.maximum_dimension_name_length)) varying, 9 33 3 descriptor_ptr ptr, /* call cv_to_print (descriptor_ptr, typed_value_ptr, */ 9 34 /* temp_seg_ptr, max_length_for_print_value, */ 9 35 /* print_value, code) */ 9 36 3 cv_to_print entry (ptr, ptr, ptr, fixed bin (35), char (*) varying, fixed bin (35)), 9 37 /* call cv_to_typed (descriptor_ptr, area_ptr, */ 9 38 /* print_value_ptr, typed_value_ptr, code) */ 9 39 3 cv_to_typed entry (ptr, ptr, ptr, ptr, fixed bin (35)), 9 40 2 vector_slot (tva_number_of_vector_slots refer (typed_vector_array.number_of_vector_slots)) 9 41 pointer; 9 42 9 43 dcl typed_vector_array_ptr ptr; 9 44 dcl tva_number_of_vector_slots 9 45 fixed bin; 9 46 dcl tva_number_of_dimensions 9 47 fixed bin; 9 48 dcl tva_maximum_dimension_name_length 9 49 fixed bin; 9 50 dcl TYPED_VECTOR_ARRAY_VERSION_2 9 51 fixed bin (35) int static options (constant) init (2); 9 52 9 53 /* END INCLUDE FILE vu_typed_vector_array.incl.pl1 */ 470 471 10 1 /* BEGIN INCLUDE FILE dm_rcdmgr_entry_dcls.incl.pl1 */ 10 2 10 3 /* This include file contains declarations of record_manager_ entry points. */ 10 4 10 5 /* HISTORY: 10 6*Written by Matthew Pierret 05/12/82. 10 7*Modified: 10 8*12/14/82 by Matthew Pierret: Changed $get_ids to $get_id. 10 9*04/01/83 by Matthew Pierret: Added $get_records_and_ids and 10 10* $get_records_and_ids_by_interval. 10 11*04/04/83 by Matthew Pierret: Added $destroy_collection and $destroy_cursor. 10 12*05/24/83 by Matthew Pierret: Corrected mis-spelling of "manger" for 10 13* rcm_$destroy_cursor. 10 14*06/06/83 by Matthew Pierret: Corrected rcm_$get_record_count_by_intervals - 10 15* added a ptr parameter. 10 16*06/13/83 by Matthew Pierret: Changed rcm_$*_by_intervals to correctly be 10 17* rcm_$=_by_interval. 10 18*04/12/84 by Lee Baldwin: Renamed some of the entry points (see 10 19* record_manager_.alm) and changed the declarations of 10 20* those that used to pass a typed_vector_type and a 10 21* typed_vector_array_version. 10 22*04/26/84 by Lee Baldwin: Changed the arg list of 10 23* $get_record_count_by_interval to not take a work_area_ptr. 10 24**/ 10 25 10 26 /* format: style2,ind3 */ 10 27 dcl record_manager_$create_collection 10 28 entry (bit (36) aligned, ptr, ptr, ptr, bit (36) aligned, fixed bin (35)); 10 29 dcl record_manager_$create_cursor 10 30 entry (bit (36) aligned, bit (36) aligned, ptr, ptr, fixed bin (35)); 10 31 dcl record_manager_$destroy_collection 10 32 entry (bit (36) aligned, bit (36) aligned, fixed bin (35)); 10 33 dcl record_manager_$destroy_cursor 10 34 entry (ptr, fixed bin (35)); 10 35 10 36 dcl record_manager_$get_record_by_id 10 37 entry (bit (36) aligned, ptr, ptr, ptr, ptr, fixed bin (35)); 10 38 dcl record_manager_$get_records_by_id_list 10 39 entry (ptr, ptr, ptr, ptr, ptr, fixed bin (35)); 10 40 dcl record_manager_$get_records_by_spec 10 41 entry (ptr, ptr, ptr, ptr, ptr, fixed bin (35)); 10 42 dcl record_manager_$get_records_by_interval 10 43 entry (ptr, ptr, ptr, ptr, ptr, fixed bin (35), ptr, ptr, fixed bin (35)); 10 44 dcl record_manager_$get_records_and_ids_by_spec 10 45 entry (ptr, ptr, ptr, ptr, ptr, ptr, fixed bin (35)); 10 46 dcl record_manager_$get_records_and_ids_by_interval 10 47 entry (ptr, ptr, ptr, ptr, ptr, fixed bin (17), ptr, ptr, ptr, fixed bin (35)); 10 48 dcl record_manager_$get_record_ids_by_spec 10 49 entry (ptr, ptr, ptr, ptr, fixed bin (35)); 10 50 dcl record_manager_$get_record_ids_by_interval 10 51 entry (ptr, ptr, ptr, ptr, ptr, ptr, fixed bin (35)); 10 52 dcl record_manager_$get_record_count 10 53 entry (ptr, ptr, fixed bin (35), fixed bin (35)); 10 54 dcl record_manager_$get_record_count_by_interval 10 55 entry (ptr, ptr, ptr, ptr, fixed bin (35), fixed bin (35)); 10 56 10 57 dcl record_manager_$put_record_by_id 10 58 entry (bit (36) aligned, ptr, fixed bin (35), ptr, bit (36) aligned, fixed bin (35)); 10 59 10 60 dcl record_manager_$put_records_by_id 10 61 entry (bit (36) aligned, ptr, fixed bin (35), ptr, ptr, fixed bin (35)); 10 62 10 63 dcl record_manager_$delete_record_by_id 10 64 entry (bit (36) aligned, ptr, fixed bin (35)); 10 65 10 66 dcl record_manager_$delete_records_by_id_list 10 67 entry (ptr, ptr, fixed bin (35), fixed bin (35)); 10 68 10 69 dcl record_manager_$delete_records_by_spec 10 70 entry (ptr, ptr, fixed bin (35), fixed bin (35)); 10 71 10 72 dcl record_manager_$modify_record_by_id 10 73 entry (bit (36) aligned, ptr, ptr, fixed bin (35)); 10 74 10 75 dcl record_manager_$modify_records_by_id_list 10 76 entry (ptr, ptr, ptr, fixed bin (35), fixed bin (35)); 10 77 10 78 dcl record_manager_$modify_records_by_spec 10 79 entry (ptr, ptr, ptr, fixed bin (35), fixed bin (35)); 10 80 10 81 /* END INCLUDE FILE dm_rcdmgr_entry_dcls.incl.pl1 */ 472 473 11 1 /* BEGIN INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 11 2 11 3 /* DESCRIPTION: 11 4* This include file contains declarations of all collection_manager_ 11 5* entrypoints. 11 6**/ 11 7 11 8 /* HISTORY: 11 9*Written by Matthew Pierret 11 10*Modified: 11 11*04/14/82 by Lindsey Spratt: Changed the control_interval_id parameter of the 11 12* allocate_control_interval operation to be unaligned, as well as 11 13* unsigned. 11 14*06/17/82 by Matthew Pierret: Added the put_element_portion opertion and 11 15* removed the beginning_location parameter from the put_element 11 16* operation. Added the create_page_file_operation. 11 17*08/09/82 by Matthew Pierret: Changed "fixed bin (17)"s to "bit (36) aligned"s 11 18* wherever collection_id was required. 11 19* Also changed the control_interval_id parameter of the 11 20* allocate_control_interval operation back to be aligned. So there. 11 21*10/20/82 by Matthew Pierret: Changed $create_page_file to $create_file, 11 22* added the argument file_create_info_ptr to $create_file. 11 23*12/13/82 by Lindsey Spratt: Corrected $free_control_interval to 11 24* include the zero_on_free bit. 11 25*12/17/82 by Matthew Pierret: Added cm_$get_id. 11 26*01/07/83 by Matthew Pierret: Added cm_$put_element_buffered, 11 27* cm_$allocate_element_buffered, cm_$free_element_buffered. 11 28*04/27/83 by Matthew Pierret: Added cm_$put_unprotected_element, 11 29* cm_$put_unprotected_header. 11 30*11/07/83 by Matthew Pierret: Added $get_element_portion_buffered, 11 31* $simple_get_buffered_element. 11 32*02/08/84 by Matthew Pierret: Changed $get_id to have only one bit(1)aligned 11 33* parameter for specifying absolute/relative nature of search. 11 34*03/16/84 by Matthew Pierret: Added cm_$get_control_interval_ptr, 11 35* $get_element_ptr, $get_element_portion_ptr, $simple_get_element_ptr 11 36*04/03/84 by Matthew Pierret: Added cm_$compact_control_interval. 11 37*06/06/84 by Matthew Pierret: Re-named free_element* to delete and 11 38* delete_from_ci_buffer. 11 39* Re-named *_buffered_ci to =_ci_buffer. 11 40* get entries. 11 41* modify entries. 11 42* Changed calling sequence of modify entries to have a ptr/length 11 43* instead of length/ptr parameter pair. 11 44*03/11/85 by R. Michael Tague: Added $postcommit_increments. 11 45**/ 11 46 11 47 /* This include file contains declarations of collection_manager_ entrypoints */ 11 48 11 49 /* format: style2,ind3 */ 11 50 dcl collection_manager_$allocate_control_interval 11 51 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, fixed bin (35)); 11 52 dcl collection_manager_$compact_control_interval 11 53 entry (bit (36) aligned, fixed bin (24) uns, fixed bin (35)); 11 54 dcl collection_manager_$create_collection 11 55 entry (bit (36) aligned, ptr, ptr, bit (36) aligned, fixed bin (35)); 11 56 dcl collection_manager_$create_file 11 57 entry (char (*), char (*), ptr, bit (36) aligned, fixed bin (35)); 11 58 dcl collection_manager_$destroy_collection 11 59 entry (bit (36) aligned, bit (36) aligned, fixed bin (35)); 11 60 dcl collection_manager_$free_control_interval 11 61 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, bit (1) aligned, 11 62 fixed bin (35)); 11 63 11 64 dcl collection_manager_$delete 11 65 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 11 66 fixed bin (35)); 11 67 dcl collection_manager_$delete_from_ci_buffer 11 68 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 11 69 fixed bin (35)); 11 70 11 71 dcl collection_manager_$get 11 72 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), ptr, 11 73 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 11 74 dcl collection_manager_$get_control_interval_ptr 11 75 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, ptr, 11 76 fixed bin (35)); 11 77 dcl collection_manager_$get_from_ci_buffer 11 78 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 11 79 ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 11 80 dcl collection_manager_$get_by_ci_ptr 11 81 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 11 82 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), ptr, fixed bin (35)); 11 83 dcl collection_manager_$get_header 11 84 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (17), ptr, bit (1) aligned, 11 85 ptr, fixed bin (35), fixed bin (35)); 11 86 dcl collection_manager_$get_id 11 87 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), 11 88 bit (1) aligned, bit (36) aligned, fixed bin (35)); 11 89 dcl collection_manager_$get_portion 11 90 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 11 91 fixed bin (35), ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, 11 92 fixed bin (35), fixed bin (35)); 11 93 dcl collection_manager_$get_portion_from_ci_buffer 11 94 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 11 95 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 11 96 fixed bin (35)); 11 97 dcl collection_manager_$get_portion_by_ci_ptr 11 98 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 11 99 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 11 100 fixed bin (35)); 11 101 dcl collection_manager_$modify 11 102 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 11 103 fixed bin (35), fixed bin (35)); 11 104 dcl collection_manager_$modify_unprotected 11 105 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 11 106 fixed bin (35), fixed bin (35)); 11 107 dcl collection_manager_$modify_in_ci_buffer 11 108 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 11 109 fixed bin (35), fixed bin (35)); 11 110 dcl collection_manager_$modify_portion 11 111 entry (bit (36) aligned, bit (36) aligned, fixed bin (35), fixed bin (35), ptr, 11 112 fixed bin (35), bit (36) aligned, fixed bin (35), fixed bin (35)); 11 113 dcl collection_manager_$postcommit_increments 11 114 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35)); 11 115 dcl collection_manager_$put 11 116 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 11 117 fixed bin (35), fixed bin (35)); 11 118 dcl collection_manager_$put_in_ci_buffer 11 119 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 11 120 fixed bin (35), fixed bin (35)); 11 121 dcl collection_manager_$put_header 11 122 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 11 123 dcl collection_manager_$put_unprotected_header 11 124 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 11 125 11 126 dcl collection_manager_$replace_ci_buffer 11 127 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 11 128 fixed bin (35)); 11 129 dcl collection_manager_$setup_ci_buffer 11 130 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 11 131 fixed bin (35)); 11 132 dcl collection_manager_$simple_get_by_ci_ptr 11 133 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 11 134 fixed bin (35)); 11 135 dcl collection_manager_$simple_get_from_ci_buffer 11 136 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 11 137 fixed bin (35)); 11 138 11 139 /* END INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 474 475 12 1 /* BEGIN INCLUDE FILE dm_ci_lengths.incl.pl1 */ 12 2 12 3 /* DESCRIPTION: 12 4* This include file contains constants which are the length in bytes 12 5* of the addressable portion of a control interval. The addressable portion 12 6* is that part of the control interval which callers of file_manager_ 12 7* may access, specifically, everything between the end of the control 12 8* interval header (ci_header) and the control interval trailer (ci_trailer). 12 9* Control interval 0 is slightly different, as it also contains an 12 10* unaddressable portion in which it maintains the file attributes. For 12 11* control interval 0 the addressable portion is everything between the end 12 12* of the control interval header and the beginning of the file attributes. 12 13**/ 12 14 12 15 /* HISTORY: 12 16*Written by Matthew Pierret, 11/02/84. 12 17*Modified: 12 18**/ 12 19 12 20 /* format: style2,ind3 */ 12 21 12 22 dcl CONTROL_INTERVAL_ADDRESSABLE_LENGTH_IN_BYTES 12 23 fixed bin (17) init (4072) int static options (constant); 12 24 12 25 dcl CONTROL_INTERVAL_ZERO_ADDRESSABLE_LENGTH_IN_BYTES 12 26 fixed bin (17) init (3176) int static options (constant); 12 27 12 28 12 29 dcl CI_ADDRESSABLE_LENGTH fixed bin (17) init (4072) int static options (constant); 12 30 12 31 dcl CI_0_ADDRESSABLE_LENGTH 12 32 fixed bin (17) init (3176) int static options (constant); 12 33 12 34 /* END INCLUDE FILE dm_ci_lengths.incl.pl1 */ 476 477 13 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 13 2 /* format: style3 */ 13 3 13 4 /* These constants are to be used for the flags argument of sub_err_ */ 13 5 /* They are just "string (condition_info_header.action_flags)" */ 13 6 13 7 declare ( 13 8 ACTION_CAN_RESTART init (""b), 13 9 ACTION_CANT_RESTART init ("1"b), 13 10 ACTION_DEFAULT_RESTART 13 11 init ("01"b), 13 12 ACTION_QUIET_RESTART 13 13 init ("001"b), 13 14 ACTION_SUPPORT_SIGNAL 13 15 init ("0001"b) 13 16 ) bit (36) aligned internal static options (constant); 13 17 13 18 /* End include file */ 478 479 480 end rlm_create_relation; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1137.7 rlm_create_relation.pl1 >udd>sm>ds>w>ml>rlm_create_relation.pl1 454 1 01/07/85 0959.6 dm_rlm_opening_info.incl.pl1 >ldd>incl>dm_rlm_opening_info.incl.pl1 456 2 01/07/85 0959.4 dm_rlm_header.incl.pl1 >ldd>incl>dm_rlm_header.incl.pl1 458 3 01/07/85 1001.7 dm_rlm_attribute_info.incl.pl1 >ldd>incl>dm_rlm_attribute_info.incl.pl1 460 4 01/07/85 1001.7 dm_rlm_index_attr_map.incl.pl1 >ldd>incl>dm_rlm_index_attr_map.incl.pl1 462 5 10/14/83 1709.1 dm_rel_creation_info.incl.pl1 >ldd>incl>dm_rel_creation_info.incl.pl1 464 6 01/07/85 1001.1 dm_file_create_info.incl.pl1 >ldd>incl>dm_file_create_info.incl.pl1 466 7 01/07/85 0958.0 dm_cism_info.incl.pl1 >ldd>incl>dm_cism_info.incl.pl1 468 8 01/07/85 0958.5 dm_esm_info.incl.pl1 >ldd>incl>dm_esm_info.incl.pl1 470 9 10/14/83 1709.1 vu_typed_vector_array.incl.pl1 >ldd>incl>vu_typed_vector_array.incl.pl1 472 10 01/07/85 0959.3 dm_rcdmgr_entry_dcls.incl.pl1 >ldd>incl>dm_rcdmgr_entry_dcls.incl.pl1 474 11 04/05/85 1024.4 dm_collmgr_entry_dcls.incl.pl1 >ldd>incl>dm_collmgr_entry_dcls.incl.pl1 476 12 01/07/85 1000.7 dm_ci_lengths.incl.pl1 >ldd>incl>dm_ci_lengths.incl.pl1 478 13 04/16/82 1058.1 sub_err_flags.incl.pl1 >ldd>incl>sub_err_flags.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. ACTION_CANT_RESTART 000022 constant bit(36) initial dcl 13-7 set ref 183* 193* 203* 302* 317* ATTRIBUTE_INFO_VERSION_1 000010 constant char(8) initial dcl 3-34 ref 416 BASIC_ELEMENT_STORAGE_METHOD constant fixed bin(17,0) initial dcl 8-44 ref 86 193 360 BYTES_PER_WORD 000226 automatic fixed bin(17,0) initial dcl 115 set ref 115* CISM_INFO_VERSION_1 000002 constant char(8) initial dcl 7-37 set ref 87 202* 376 ESM_INFO_VERSION_1 000000 constant char(8) initial dcl 8-43 set ref 86 192* 359 FILE_CREATE_INFO_VERSION_2 000004 constant char(8) initial dcl 6-43 set ref 183 183* 342 INDEX_ATTRIBUTE_MAP_VERSION_2 000006 constant char(8) initial dcl 4-43 ref 445 INITIAL_NUMBER_OF_ATTRIBUTES_PER_INDEX constant fixed bin(17,0) initial dcl 436 ref 441 INITIAL_NUMBER_OF_INDICES 000244 automatic fixed bin(17,0) initial dcl 4-45 in procedure "rlm_create_relation" set ref 4-45* INITIAL_NUMBER_OF_INDICES constant fixed bin(17,0) initial dcl 434 in procedure "INIT_INDEX_ATTRIBUTE_MAP" ref 440 RELATION_HEADER_VERSION_3 000012 constant char(8) initial dcl 2-30 ref 393 REL_CREATION_INFO_VERSION_2 000250 automatic fixed bin(35,0) initial dcl 5-11 set ref 173 5-11* TYPED_VECTOR_ARRAY_VERSION_2 constant fixed bin(35,0) initial dcl 9-50 ref 155 UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD constant fixed bin(17,0) initial dcl 7-40 ref 87 203 377 UNUSED_INDEX_ATTRIBUTE_MAP_ENTRY 000245 automatic fixed bin(17,0) initial dcl 4-47 set ref 4-47* addr builtin function dcl 105 ref 340 356 373 ai_maximum_attribute_name_length 000236 automatic fixed bin(17,0) dcl 3-30 set ref 413* 415 415 ai_number_of_attributes 000237 automatic fixed bin(17,0) dcl 3-32 set ref 412* 415 415 attribute 3 based structure array level 2 dcl 3-18 attribute_info based structure level 1 dcl 3-18 set ref 286 415 attribute_info_element_id 5 based bit(36) initial level 2 dcl 2-15 set ref 392* attribute_info_ptr 000234 automatic pointer initial dcl 3-29 set ref 241* 242* 3-29* 286 286 415* 416 417 420 421 basic_esm_info based structure level 1 dcl 8-21 set ref 358* basic_esm_info_ptr 000256 automatic pointer dcl 8-40 set ref 157* 176* 188 188* 192 193 193 218* blocking_factor 3 000100 automatic fixed bin(17,0) initial level 2 dcl 85 set ref 85* caller_header_element_id 7 based bit(36) initial level 2 dcl 2-15 set ref 392* ci_size_in_bytes 2 000100 automatic fixed bin(35,0) initial level 2 dcl 85 set ref 85* cism_info_ptr 6 based pointer level 2 dcl 5-4 ref 177 cleanup 000220 stack reference condition dcl 110 ref 167 cluster_index_id 4 based bit(36) initial level 2 dcl 2-15 set ref 392* collection_manager_$create_file 000050 constant entry external dcl 11-56 ref 212 cv_p_expected_version parameter fixed bin(35,0) dcl 299 set ref 295 302 302* cv_p_received_version parameter fixed bin(35,0) dcl 298 set ref 295 302 302* cv_p_structure_name parameter char packed unaligned dcl 300 set ref 295 302* cvc_p_expected_version parameter char(8) dcl 314 set ref 310 317 317* cvc_p_received_version parameter char(8) dcl 313 set ref 310 317 317* cvc_p_structure_name parameter char packed unaligned dcl 315 set ref 310 317* descriptor 3 based bit(36) array level 3 dcl 3-18 set ref 421* descriptor_ptr based pointer array level 3 dcl 9-21 ref 421 dimension_table 6 based structure array level 2 dcl 9-21 ref 412 419 dm_area based area dcl 101 ref 284 286 288 392 415 444 dm_area_ptr 000010 internal static pointer initial dcl 97 set ref 159 159* 223* 284 286 288 392 415 444 dm_error_$unimplemented_cism 000040 external static fixed bin(35,0) dcl 142 set ref 203* dm_error_$unimplemented_esm 000042 external static fixed bin(35,0) dcl 144 set ref 193* error_table_$unimplemented_version 000036 external static fixed bin(35,0) dcl 140 set ref 183* 302* 317* esm_info_ptr 4 based pointer level 2 dcl 5-4 ref 176 file_create_info based structure level 1 dcl 6-21 file_create_info_ptr 000252 automatic pointer dcl 6-41 in procedure "rlm_create_relation" set ref 157* 175* 181 181* 183 183 212* file_create_info_ptr 2 based pointer level 2 in structure "rel_creation_info" dcl 5-4 in procedure "rlm_create_relation" ref 175 file_manager_$delete_close 000012 constant entry external dcl 119 ref 275 flags 4 000100 automatic structure level 2 packed packed unaligned dcl 85 get_dm_free_area_ 000014 constant entry external dcl 121 ref 159 get_ring_ 000016 constant entry external dcl 122 ref 344 hbound builtin function dcl 105 ref 412 419 header_info_update_count 2 based fixed bin(35,0) initial level 2 dcl 2-15 set ref 392* iai_attribute_idx 000346 automatic fixed bin(17,0) dcl 410 set ref 419* 420 420 421 421* iai_based_descriptor_string based bit(36) dcl 408 ref 421 iai_p_attribute_info_ptr parameter pointer dcl 406 set ref 403 417* iam_maximum_number_of_attributes_per_index 000243 automatic fixed bin(17,0) dcl 4-41 set ref 441* 444 444 iam_maximum_number_of_indices 000242 automatic fixed bin(17,0) dcl 4-39 set ref 440* 444 444 idci_p_cism_info_ptr parameter pointer dcl 371 set ref 368 373* 375 376 377 idei_p_esm_info_ptr parameter pointer dcl 354 set ref 351 356* 358 359 360 361 idfci_p_file_create_info_ptr parameter pointer dcl 336 set ref 333 340* 342 343 344 iiam_p_index_attribute_map_ptr parameter pointer dcl 432 set ref 429 448* index 4 based structure array level 2 dcl 4-18 set ref 446* index_attribute_map based structure level 1 dcl 4-18 set ref 288 444 index_attribute_map_element_id 6 based bit(36) initial level 2 dcl 2-15 set ref 392* index_attribute_map_ptr 000240 automatic pointer initial dcl 4-37 set ref 246* 247* 4-37* 288 288 444* 445 446 448 irh_p_record_collection_id parameter bit(36) dcl 387 ref 384 395 irh_p_relation_header_ptr parameter pointer dcl 389 set ref 384 397* maximum_attribute_name_length 2(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 3-18 set ref 286 415* 420 420 420 421 421 maximum_dimension_name_length 4 based fixed bin(17,0) level 2 dcl 9-21 ref 413 420 420 421 421 421 maximum_element_length 4 based fixed bin(35,0) level 2 dcl 8-21 set ref 361* maximum_number_of_attributes_per_index 3 based fixed bin(17,0) level 2 packed packed unaligned dcl 4-18 set ref 288 444* 446 maximum_number_of_indices 2(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 4-18 set ref 288 444* 446 mbz_1 4(03) 000100 automatic bit(15) initial level 3 packed packed unaligned dcl 85 set ref 85* mbz_2 6 based fixed bin(71,0) array level 2 dcl 6-21 set ref 343* mbz_3 4(26) 000100 automatic bit(46) initial level 2 packed packed unaligned dcl 85 set ref 85* min builtin function dcl 105 ref 441 my_basic_esm_info 000202 automatic structure level 1 dcl 86 set ref 356 my_file_create_info 000100 automatic structure level 1 dcl 85 set ref 340 my_unblocked_cism_info 000207 automatic structure level 1 dcl 87 set ref 373 myname 000014 constant char(19) initial packed unaligned dcl 114 set ref 183* 193* 203* 302* 317* name 6 based varying char array level 3 in structure "typed_vector_array" dcl 9-21 in procedure "rlm_create_relation" ref 420 name 4 based varying char array level 3 in structure "attribute_info" dcl 3-18 in procedure "rlm_create_relation" set ref 420* no_concurrency 4(01) 000100 automatic bit(1) initial level 3 packed packed unaligned dcl 85 set ref 85* no_rollback 4(02) 000100 automatic bit(1) initial level 3 packed packed unaligned dcl 85 set ref 85* null builtin function dcl 105 ref 93 157 159 169 181 183 183 188 193 193 198 203 203 2-29 3-29 4-37 279 284 286 288 302 302 317 317 number_of_attributes 2 based fixed bin(17,0) level 2 packed packed unaligned dcl 3-18 set ref 286 415* number_of_dimensions 1 based fixed bin(17,0) level 2 dcl 9-21 ref 412 419 441 number_of_indices 2 based fixed bin(17,0) initial level 2 packed packed unaligned dcl 4-18 set ref 444* p_code parameter fixed bin(35,0) dcl 79 set ref 150 162* 212* 213 218* 220 223* 224 229* 230 237* 238 242* 243 247* 248 p_record_collection_id parameter bit(36) dcl 78 set ref 150 164* 255* p_rel_creation_info_ptr parameter pointer dcl 75 ref 150 169 172 p_rel_dir parameter char packed unaligned dcl 73 set ref 150 212* p_rel_name parameter char packed unaligned dcl 74 set ref 150 212* p_rel_opening_id parameter bit(36) dcl 77 set ref 150 163* 254* 268 276* p_typed_vector_array_ptr parameter pointer dcl 80 ref 150 154 per_process 2 based structure level 2 dcl 1-15 protected 4 000100 automatic bit(1) initial level 3 packed packed unaligned dcl 85 set ref 85* record_collection_id 3 based bit(36) initial level 2 in structure "relation_header" dcl 2-15 in procedure "rlm_create_relation" set ref 392* 395* record_collection_id 000213 automatic bit(36) initial dcl 89 in procedure "rlm_create_relation" set ref 89* 218* 223* 235* 255 record_cursor_ptr 10 based pointer initial level 3 in structure "relation_opening_info" dcl 1-15 in procedure "rlm_create_relation" set ref 233* record_cursor_ptr 000216 automatic pointer initial dcl 93 in procedure "rlm_create_relation" set ref 93* 223* 233 record_manager_$create_collection 000044 constant entry external dcl 10-27 ref 218 record_manager_$create_cursor 000046 constant entry external dcl 10-29 ref 223 rel_creation_info based structure level 1 dcl 5-4 rel_creation_info_ptr 000246 automatic pointer dcl 5-10 set ref 172* 173 175 176 177 rel_opening_id 000214 automatic bit(36) initial dcl 89 set ref 89* 212* 218* 223* 229* 254 272 275* relation_header based structure level 1 dcl 2-15 set ref 284 392 relation_header_ptr 000232 automatic pointer initial dcl 2-29 set ref 235* 237* 2-29* 284 284 392* 393 395 397 relation_opening_info based structure level 1 dcl 1-15 relation_opening_info_ptr 000230 automatic pointer dcl 1-41 set ref 157* 229* 233 237* 242* 247* 252* 279 282* ring_brackets 4(18) based fixed bin(3,0) initial array level 2 in structure "file_create_info" packed packed unaligned dcl 6-21 in procedure "rlm_create_relation" set ref 344* ring_brackets 4(18) 000100 automatic fixed bin(3,0) initial array level 2 in structure "my_file_create_info" packed packed unaligned dcl 85 in procedure "rlm_create_relation" set ref 85* 85* rlm_opening_info$free 000020 constant entry external dcl 123 ref 282 rlm_opening_info$init 000022 constant entry external dcl 124 ref 229 rlm_update_opening_info$attribute_info 000024 constant entry external dcl 125 ref 242 rlm_update_opening_info$increment_openings 000030 constant entry external dcl 129 ref 252 rlm_update_opening_info$index_attribute_map 000026 constant entry external dcl 127 ref 247 rlm_update_opening_info$relation_header 000032 constant entry external dcl 131 ref 237 sub_err_ 000034 constant entry external dcl 136 ref 183 193 203 302 317 type 2 based fixed bin(17,0) initial level 2 in structure "unblocked_cism_info" dcl 7-28 in procedure "rlm_create_relation" set ref 203 203* 377* type 2 000202 automatic fixed bin(17,0) initial level 2 in structure "my_basic_esm_info" dcl 86 in procedure "rlm_create_relation" set ref 86* type 2 000207 automatic fixed bin(17,0) initial level 2 in structure "my_unblocked_cism_info" dcl 87 in procedure "rlm_create_relation" set ref 87* type 2 based fixed bin(17,0) initial level 2 in structure "basic_esm_info" dcl 8-21 in procedure "rlm_create_relation" set ref 193 193* 360* typed_vector_array based structure level 1 dcl 9-21 typed_vector_array_ptr 000260 automatic pointer dcl 9-43 set ref 154* 155 218* 412 413 419 420 421 441 unblocked_cism_info based structure level 1 dcl 7-28 set ref 375* unblocked_cism_info_ptr 000254 automatic pointer dcl 7-34 set ref 157* 177* 198 198* 202 203 203 218* unspec builtin function dcl 105 set ref 358* 375* 446* version based char(8) initial level 2 in structure "basic_esm_info" dcl 8-21 in procedure "rlm_create_relation" set ref 192* 359* version based char(8) initial level 2 in structure "unblocked_cism_info" dcl 7-28 in procedure "rlm_create_relation" set ref 202* 376* version based char(8) level 2 in structure "index_attribute_map" dcl 4-18 in procedure "rlm_create_relation" set ref 445* version based fixed bin(35,0) level 2 in structure "rel_creation_info" dcl 5-4 in procedure "rlm_create_relation" ref 173 version 000202 automatic char(8) initial level 2 in structure "my_basic_esm_info" dcl 86 in procedure "rlm_create_relation" set ref 86* version 000207 automatic char(8) initial level 2 in structure "my_unblocked_cism_info" dcl 87 in procedure "rlm_create_relation" set ref 87* version based char(8) level 2 in structure "relation_header" dcl 2-15 in procedure "rlm_create_relation" set ref 393* version based char(8) level 2 in structure "file_create_info" dcl 6-21 in procedure "rlm_create_relation" set ref 183 183* 342* version based char(8) level 2 in structure "attribute_info" dcl 3-18 in procedure "rlm_create_relation" set ref 416* version based fixed bin(35,0) level 2 in structure "typed_vector_array" dcl 9-21 in procedure "rlm_create_relation" ref 155 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 13-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 13-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 13-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 13-7 BLOCKED_CONTROL_INTERVAL_STORAGE_METHOD internal static fixed bin(17,0) initial dcl 7-38 CI_0_ADDRESSABLE_LENGTH internal static fixed bin(17,0) initial dcl 12-31 CI_ADDRESSABLE_LENGTH internal static fixed bin(17,0) initial dcl 12-29 CONTROL_INTERVAL_ADDRESSABLE_LENGTH_IN_BYTES internal static fixed bin(17,0) initial dcl 12-22 CONTROL_INTERVAL_ZERO_ADDRESSABLE_LENGTH_IN_BYTES internal static fixed bin(17,0) initial dcl 12-25 FCI_READ_BRACKET_IDX internal static fixed bin(17,0) initial dcl 6-45 FCI_WRITE_BRACKET_IDX internal static fixed bin(17,0) initial dcl 6-45 ORDERED_ELEMENT_STORAGE_METHOD internal static fixed bin(17,0) initial dcl 8-46 RELATION_OPENING_INFO_VERSION_2 internal static char(8) initial dcl 1-43 blocked_cism_info based structure level 1 dcl 7-22 blocked_cism_info_ptr automatic pointer dcl 7-33 collection_manager_$allocate_control_interval 000000 constant entry external dcl 11-50 collection_manager_$compact_control_interval 000000 constant entry external dcl 11-52 collection_manager_$create_collection 000000 constant entry external dcl 11-54 collection_manager_$delete 000000 constant entry external dcl 11-64 collection_manager_$delete_from_ci_buffer 000000 constant entry external dcl 11-67 collection_manager_$destroy_collection 000000 constant entry external dcl 11-58 collection_manager_$free_control_interval 000000 constant entry external dcl 11-60 collection_manager_$get 000000 constant entry external dcl 11-71 collection_manager_$get_by_ci_ptr 000000 constant entry external dcl 11-80 collection_manager_$get_control_interval_ptr 000000 constant entry external dcl 11-74 collection_manager_$get_from_ci_buffer 000000 constant entry external dcl 11-77 collection_manager_$get_header 000000 constant entry external dcl 11-83 collection_manager_$get_id 000000 constant entry external dcl 11-86 collection_manager_$get_portion 000000 constant entry external dcl 11-89 collection_manager_$get_portion_by_ci_ptr 000000 constant entry external dcl 11-97 collection_manager_$get_portion_from_ci_buffer 000000 constant entry external dcl 11-93 collection_manager_$modify 000000 constant entry external dcl 11-101 collection_manager_$modify_in_ci_buffer 000000 constant entry external dcl 11-107 collection_manager_$modify_portion 000000 constant entry external dcl 11-110 collection_manager_$modify_unprotected 000000 constant entry external dcl 11-104 collection_manager_$postcommit_increments 000000 constant entry external dcl 11-113 collection_manager_$put 000000 constant entry external dcl 11-115 collection_manager_$put_header 000000 constant entry external dcl 11-121 collection_manager_$put_in_ci_buffer 000000 constant entry external dcl 11-118 collection_manager_$put_unprotected_header 000000 constant entry external dcl 11-123 collection_manager_$replace_ci_buffer 000000 constant entry external dcl 11-126 collection_manager_$setup_ci_buffer 000000 constant entry external dcl 11-129 collection_manager_$simple_get_by_ci_ptr 000000 constant entry external dcl 11-132 collection_manager_$simple_get_from_ci_buffer 000000 constant entry external dcl 11-135 ioa_$rsnnl 000000 constant entry external dcl 135 ordered_esm_info based structure level 1 dcl 8-31 ordered_esm_info_ptr automatic pointer dcl 8-41 record_manager_$delete_record_by_id 000000 constant entry external dcl 10-63 record_manager_$delete_records_by_id_list 000000 constant entry external dcl 10-66 record_manager_$delete_records_by_spec 000000 constant entry external dcl 10-69 record_manager_$destroy_collection 000000 constant entry external dcl 10-31 record_manager_$destroy_cursor 000000 constant entry external dcl 10-33 record_manager_$get_record_by_id 000000 constant entry external dcl 10-36 record_manager_$get_record_count 000000 constant entry external dcl 10-52 record_manager_$get_record_count_by_interval 000000 constant entry external dcl 10-54 record_manager_$get_record_ids_by_interval 000000 constant entry external dcl 10-50 record_manager_$get_record_ids_by_spec 000000 constant entry external dcl 10-48 record_manager_$get_records_and_ids_by_interval 000000 constant entry external dcl 10-46 record_manager_$get_records_and_ids_by_spec 000000 constant entry external dcl 10-44 record_manager_$get_records_by_id_list 000000 constant entry external dcl 10-38 record_manager_$get_records_by_interval 000000 constant entry external dcl 10-42 record_manager_$get_records_by_spec 000000 constant entry external dcl 10-40 record_manager_$modify_record_by_id 000000 constant entry external dcl 10-72 record_manager_$modify_records_by_id_list 000000 constant entry external dcl 10-75 record_manager_$modify_records_by_spec 000000 constant entry external dcl 10-78 record_manager_$put_record_by_id 000000 constant entry external dcl 10-57 record_manager_$put_records_by_id 000000 constant entry external dcl 10-60 sys_info$max_seg_size external static fixed bin(17,0) dcl 146 tva_maximum_dimension_name_length automatic fixed bin(17,0) dcl 9-48 tva_number_of_dimensions automatic fixed bin(17,0) dcl 9-46 tva_number_of_vector_slots automatic fixed bin(17,0) dcl 9-44 typed_vector_array_supplied automatic bit(1) dcl 91 vector_util_$init_typed_vector_array 000000 constant entry external dcl 133 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 001362 constant entry internal dcl 295 ref 155 173 CHECK_VERSION_CHAR 001456 constant entry internal dcl 310 ref 192 202 ERROR_RETURN 001560 constant entry internal dcl 325 ref 213 220 224 230 238 243 248 FINISH 001234 constant entry internal dcl 263 ref 167 257 328 INIT_ATTRIBUTE_INFO 001731 constant entry internal dcl 403 ref 241 INIT_DEFAULT_CISM_INFO 001666 constant entry internal dcl 368 ref 198 INIT_DEFAULT_ESM_INFO 001647 constant entry internal dcl 351 ref 188 INIT_DEFAULT_FILE_CREATE_INFO 001566 constant entry internal dcl 333 ref 181 INIT_INDEX_ATTRIBUTE_MAP 002060 constant entry internal dcl 429 ref 246 INIT_RELATION_HEADER 001703 constant entry internal dcl 384 ref 235 MAIN_RETURN 001232 constant label dcl 259 ref 329 array 000325 constant entry external dcl 150 rlm_create_relation 000310 constant entry external dcl 64 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2532 2604 2243 2542 Length 3272 2243 52 451 266 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rlm_create_relation 438 external procedure is an external procedure. on unit on line 167 64 on unit FINISH 72 internal procedure is called by several nonquick procedures. CHECK_VERSION internal procedure shares stack frame of external procedure rlm_create_relation. CHECK_VERSION_CHAR internal procedure shares stack frame of external procedure rlm_create_relation. ERROR_RETURN internal procedure shares stack frame of external procedure rlm_create_relation. INIT_DEFAULT_FILE_CREATE_INFO internal procedure shares stack frame of external procedure rlm_create_relation. INIT_DEFAULT_ESM_INFO internal procedure shares stack frame of external procedure rlm_create_relation. INIT_DEFAULT_CISM_INFO internal procedure shares stack frame of external procedure rlm_create_relation. INIT_RELATION_HEADER internal procedure shares stack frame of external procedure rlm_create_relation. INIT_ATTRIBUTE_INFO internal procedure shares stack frame of external procedure rlm_create_relation. INIT_INDEX_ATTRIBUTE_MAP internal procedure shares stack frame of external procedure rlm_create_relation. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 dm_area_ptr rlm_create_relation STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rlm_create_relation 000100 my_file_create_info rlm_create_relation 000202 my_basic_esm_info rlm_create_relation 000207 my_unblocked_cism_info rlm_create_relation 000213 record_collection_id rlm_create_relation 000214 rel_opening_id rlm_create_relation 000216 record_cursor_ptr rlm_create_relation 000226 BYTES_PER_WORD rlm_create_relation 000230 relation_opening_info_ptr rlm_create_relation 000232 relation_header_ptr rlm_create_relation 000234 attribute_info_ptr rlm_create_relation 000236 ai_maximum_attribute_name_length rlm_create_relation 000237 ai_number_of_attributes rlm_create_relation 000240 index_attribute_map_ptr rlm_create_relation 000242 iam_maximum_number_of_indices rlm_create_relation 000243 iam_maximum_number_of_attributes_per_index rlm_create_relation 000244 INITIAL_NUMBER_OF_INDICES rlm_create_relation 000245 UNUSED_INDEX_ATTRIBUTE_MAP_ENTRY rlm_create_relation 000246 rel_creation_info_ptr rlm_create_relation 000250 REL_CREATION_INFO_VERSION_2 rlm_create_relation 000252 file_create_info_ptr rlm_create_relation 000254 unblocked_cism_info_ptr rlm_create_relation 000256 basic_esm_info_ptr rlm_create_relation 000260 typed_vector_array_ptr rlm_create_relation 000346 iai_attribute_idx INIT_ATTRIBUTE_INFO THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op ext_entry ext_entry_desc int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. collection_manager_$create_file file_manager_$delete_close get_dm_free_area_ get_ring_ record_manager_$create_collection record_manager_$create_cursor rlm_opening_info$free rlm_opening_info$init rlm_update_opening_info$attribute_info rlm_update_opening_info$increment_openings rlm_update_opening_info$index_attribute_map rlm_update_opening_info$relation_header sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$unimplemented_cism dm_error_$unimplemented_esm error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 85 000221 86 000255 87 000261 89 000266 93 000270 115 000272 2 29 000274 3 29 000276 4 37 000277 4 45 000300 4 47 000302 5 11 000303 64 000307 67 000316 150 000317 154 000346 155 000352 157 000367 159 000374 162 000407 163 000411 164 000412 167 000413 169 000435 172 000442 173 000445 175 000457 176 000462 177 000465 181 000470 183 000477 188 000556 192 000565 193 000605 198 000660 202 000667 203 000712 212 000765 213 001020 218 001024 220 001046 223 001052 224 001072 229 001076 230 001112 233 001116 235 001121 237 001123 238 001137 241 001143 242 001145 243 001161 246 001165 247 001167 248 001203 252 001207 254 001221 255 001224 257 001226 259 001232 263 001233 268 001241 272 001245 275 001247 276 001260 279 001263 282 001267 284 001301 286 001310 288 001333 293 001361 295 001362 302 001373 307 001455 310 001456 317 001467 322 001557 325 001560 328 001561 329 001565 333 001566 340 001570 342 001572 343 001575 344 001614 347 001646 351 001647 356 001651 358 001653 359 001656 360 001661 361 001663 364 001665 368 001666 373 001670 375 001672 376 001675 377 001700 380 001702 384 001703 392 001705 393 001721 395 001724 397 001727 399 001730 403 001731 412 001733 413 001736 415 001740 416 001760 417 001763 419 001765 420 001775 421 002044 423 002055 425 002057 429 002060 440 002062 441 002064 444 002072 445 002117 446 002122 448 002143 450 002145 ----------------------------------------------------------- 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