COMPILATION LISTING OF SEGMENT im_initial_insert Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0925.2 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* This module does the initial insertion of a key into an empty index 9* collection. It creates the first control interval node of the index, 10* which is a leaf node as well as being the root node. 11**/ 12 13 /* HISTORY: 14*Written by Lindsey Spratt, 04/05/82. 15*Modified: 16*04/14/82 by Lindsey Spratt: Changed to use the new allocate_element calling 17* sequence, which has added the maximum_space_available. 18*08/12/82 by Matthew Pierret: Changed calling sequence to 19* collection_manager_$allocate_control_interval to accept the new 20* control interval id in the aligned automatic variable root_ci. 21* The unaligned index_header.root_id is then assigned this value. 22*08/30/82 by Lindsey Spratt: Added the p_key_element_id_string parameter to 23* return the location of the newly allocated key. 24*11/02/82 by Lindsey Spratt: Removed the p_index_cursor_ptr and 25* p_index_header_ptr parameters and added the 26* p_index_opening_info_ptr parameter. General alterations to use 27* the opening info, to not update the key count (this 28* is now done by the caller), and to update the index_header root_id 29* via the im_update_opening_info$root_id operation. 30*06/12/84 by Matthew Pierret: Re-named cm_$allocate_element to cm_$put. 31*10/28/84 by Lindsey L. Spratt: Changed to use version 2 index_opening_info. 32* Changed to use ERROR_RETURN. 33*03/07/85 by R. Michael Tague: Changed opening info version to version 3. 34**/ 35 /* format: style2,ind3 */ 36 37 /* format: style2,ind3 */ 38 39 im_initial_insert: 40 proc (p_index_opening_info_ptr, p_key_string, p_key_element_id_string, p_code); 41 42 43 /* START OF DECLARATIONS */ 44 /* Parameter */ 45 46 dcl p_index_opening_info_ptr 47 ptr parameter; 48 dcl p_key_string bit (*); 49 dcl p_key_element_id_string 50 bit (36) aligned; 51 dcl p_code fixed bin (35); 52 53 /* Automatic */ 54 55 dcl 1 local_leaf_header like leaf_ci_header; 56 dcl root_ci fixed bin (24) unsigned; 57 58 /* Based */ 59 60 /* Builtin */ 61 62 dcl null builtin; 63 64 /* Controlled */ 65 /* Constant */ 66 67 dcl myname init ("im_initial_insert") char (32) varying internal static options (constant); 68 69 /* Entry */ 70 71 dcl im_update_opening_info$root_id 72 entry (ptr, uns fixed bin (24), fixed bin (35)); 73 dcl sub_err_ entry () options (variable); 74 dcl im_init_leaf_ci_header entry (ptr); 75 76 /* External */ 77 78 dcl error_table_$unimplemented_version 79 fixed bin (35); 80 81 /* END OF DECLARATIONS */ 82 83 index_opening_info_ptr = p_index_opening_info_ptr; 84 call CHECK_VERSION (index_opening_info.version, INDEX_OPENING_INFO_VERSION_3, "index_opening_info"); 85 86 p_code = 0; 87 p_key_element_id_string = "0"b; 88 89 call collection_manager_$allocate_control_interval (index_opening_info.file_opening_id, 90 index_opening_info.collection_id, root_ci, p_code); 91 92 if p_code ^= 0 93 then call ERROR_RETURN (p_code); 94 95 element_id.control_interval_id = root_ci; 96 element_id.index = DEFAULT_INITIAL_KEY_SLOT; 97 call collection_manager_$put (index_opening_info.file_opening_id, index_opening_info.collection_id, 98 addr (p_key_string), length (p_key_string), element_id_string, (0), p_code); 99 if p_code ^= 0 100 then call ERROR_RETURN (p_code); 101 p_key_element_id_string = element_id_string; 102 103 call im_init_leaf_ci_header (addr (local_leaf_header)); 104 105 local_leaf_header.common.key_tail_space_used_since_last_prefix_compaction = length (p_key_string); 106 local_leaf_header.common.key_range = DEFAULT_INITIAL_KEY_SLOT; 107 element_id.index = DEFAULT_INDEX_CONTROL_INTERVAL_HEADER_SLOT; 108 call collection_manager_$put (index_opening_info.file_opening_id, index_opening_info.collection_id, 109 addr (local_leaf_header), length (unspec (local_leaf_header)), element_id_string, (0), p_code); 110 if p_code ^= 0 111 then call ERROR_RETURN (p_code); 112 113 /* Record the modified index_header in the index collection. The new version 114*of the header has the root_id and the updated number of keys. 115**/ 116 117 call im_update_opening_info$root_id (index_opening_info_ptr, root_ci, p_code); 118 if p_code ^= 0 119 then call ERROR_RETURN (p_code); 120 121 MAIN_RETURN: 122 return; 123 124 ERROR_RETURN: 125 proc (er_p_code); 126 dcl er_p_code fixed bin (35) parameter; 127 p_code = er_p_code; 128 goto MAIN_RETURN; 129 end ERROR_RETURN; 130 131 CHECK_VERSION: 132 proc (p_received_version, p_expected_version, p_structure_name); 133 dcl p_received_version char (8) aligned parameter; 134 dcl p_expected_version char (8) aligned parameter; 135 dcl p_structure_name char (*); 136 137 if p_received_version ^= p_expected_version 138 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 139 "^/Expected version ^d of the ^a structure. 140 Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 141 142 end CHECK_VERSION; 143 1 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 1 2 /* format: style3 */ 1 3 1 4 /* These constants are to be used for the flags argument of sub_err_ */ 1 5 /* They are just "string (condition_info_header.action_flags)" */ 1 6 1 7 declare ( 1 8 ACTION_CAN_RESTART init (""b), 1 9 ACTION_CANT_RESTART init ("1"b), 1 10 ACTION_DEFAULT_RESTART 1 11 init ("01"b), 1 12 ACTION_QUIET_RESTART 1 13 init ("001"b), 1 14 ACTION_SUPPORT_SIGNAL 1 15 init ("0001"b) 1 16 ) bit (36) aligned internal static options (constant); 1 17 1 18 /* End include file */ 144 145 2 1 /* BEGIN INCLUDE FILE - dm_im_ci_header.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* 2 5* Each node (control interval) in the index has a header which 2 6* describes the contents of that node. Although there are two different 2 7* kinds of headers, leaf and branch, they have a great deal in common, the 2 8* common_ci_header. The common_ci_header states which slots are used by 2 9* the keys (leaf or branch) in the key_range substructure. There is an 2 10* "upward pointer" to the node's parent branch key (parent_id_string). 2 11* There are pointers to the previous and next nodes (previous_id and 2 12* next_id) on the same level to facilitate rotation of keys, and sequential 2 13* searching. There is also a count of how much space is in use by the keys. 2 14* 2 15**/ 2 16 2 17 /* HISTORY: 2 18* 2 19*Written by Lindsey Spratt, 03/29/82. 2 20*Modified: 2 21*10/25/84 by Lindsey L. Spratt: Added a description and fixed the history 2 22* section format. 2 23**/ 2 24 2 25 /* format: style2,ind3 */ 2 26 dcl 1 common_ci_header based (common_ci_header_ptr), 2 27 2 flags unaligned, 2 28 3 is_leaf bit (1) unaligned, /* ON for leaf_ci, OFF for branch_ci. */ 2 29 3 pad bit (17) unaligned, /* Must be zero. */ 2 30 2 key_tail_space_used_since_last_prefix_compaction 2 31 fixed bin (18) unsigned unal, 2 32 2 key_range unaligned, 2 33 3 first fixed bin (18) unsigned, 2 34 3 last fixed bin (18) unsigned, 2 35 2 parent_id_string bit (36) aligned, 2 36 2 previous_id fixed bin (24) unsigned unaligned, 2 37 2 next_id fixed bin (24) unsigned unaligned, 2 38 2 pad bit (24) unaligned; 2 39 2 40 2 41 dcl common_ci_header_ptr ptr; 2 42 2 43 dcl 1 leaf_ci_header based (leaf_ci_header_ptr), 2 44 2 common like common_ci_header; 2 45 2 46 dcl leaf_ci_header_ptr ptr; 2 47 2 48 dcl 1 branch_ci_header based (branch_ci_header_ptr), 2 49 2 common like common_ci_header, 2 50 2 low_branch_id fixed bin (24) unsigned unaligned, 2 51 2 pad bit (12) unaligned; 2 52 2 53 dcl branch_ci_header_ptr ptr; 2 54 2 55 2 56 dcl ( 2 57 DEFAULT_INITIAL_KEY_SLOT 2 58 init (2), 2 59 DEFAULT_INDEX_CONTROL_INTERVAL_HEADER_SLOT 2 60 init (1), 2 61 LEAF_CI_HEADER_LENGTH_IN_BITS 2 62 init (180), 2 63 BRANCH_CI_HEADER_LENGTH_IN_BITS 2 64 init (216) 2 65 ) internal static options (constant) fixed bin; 2 66 2 67 /* END INCLUDE FILE - dm_im_ci_header.incl.pl1 */ 146 147 3 1 /* BEGIN INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4* This include file contains declarations of all collection_manager_ 3 5* entrypoints. 3 6**/ 3 7 3 8 /* HISTORY: 3 9*Written by Matthew Pierret 3 10*Modified: 3 11*04/14/82 by Lindsey Spratt: Changed the control_interval_id parameter of the 3 12* allocate_control_interval operation to be unaligned, as well as 3 13* unsigned. 3 14*06/17/82 by Matthew Pierret: Added the put_element_portion opertion and 3 15* removed the beginning_location parameter from the put_element 3 16* operation. Added the create_page_file_operation. 3 17*08/09/82 by Matthew Pierret: Changed "fixed bin (17)"s to "bit (36) aligned"s 3 18* wherever collection_id was required. 3 19* Also changed the control_interval_id parameter of the 3 20* allocate_control_interval operation back to be aligned. So there. 3 21*10/20/82 by Matthew Pierret: Changed $create_page_file to $create_file, 3 22* added the argument file_create_info_ptr to $create_file. 3 23*12/13/82 by Lindsey Spratt: Corrected $free_control_interval to 3 24* include the zero_on_free bit. 3 25*12/17/82 by Matthew Pierret: Added cm_$get_id. 3 26*01/07/83 by Matthew Pierret: Added cm_$put_element_buffered, 3 27* cm_$allocate_element_buffered, cm_$free_element_buffered. 3 28*04/27/83 by Matthew Pierret: Added cm_$put_unprotected_element, 3 29* cm_$put_unprotected_header. 3 30*11/07/83 by Matthew Pierret: Added $get_element_portion_buffered, 3 31* $simple_get_buffered_element. 3 32*02/08/84 by Matthew Pierret: Changed $get_id to have only one bit(1)aligned 3 33* parameter for specifying absolute/relative nature of search. 3 34*03/16/84 by Matthew Pierret: Added cm_$get_control_interval_ptr, 3 35* $get_element_ptr, $get_element_portion_ptr, $simple_get_element_ptr 3 36*04/03/84 by Matthew Pierret: Added cm_$compact_control_interval. 3 37*06/06/84 by Matthew Pierret: Re-named free_element* to delete and 3 38* delete_from_ci_buffer. 3 39* Re-named *_buffered_ci to =_ci_buffer. 3 40* get entries. 3 41* modify entries. 3 42* Changed calling sequence of modify entries to have a ptr/length 3 43* instead of length/ptr parameter pair. 3 44*03/11/85 by R. Michael Tague: Added $postcommit_increments. 3 45**/ 3 46 3 47 /* This include file contains declarations of collection_manager_ entrypoints */ 3 48 3 49 /* format: style2,ind3 */ 3 50 dcl collection_manager_$allocate_control_interval 3 51 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, fixed bin (35)); 3 52 dcl collection_manager_$compact_control_interval 3 53 entry (bit (36) aligned, fixed bin (24) uns, fixed bin (35)); 3 54 dcl collection_manager_$create_collection 3 55 entry (bit (36) aligned, ptr, ptr, bit (36) aligned, fixed bin (35)); 3 56 dcl collection_manager_$create_file 3 57 entry (char (*), char (*), ptr, bit (36) aligned, fixed bin (35)); 3 58 dcl collection_manager_$destroy_collection 3 59 entry (bit (36) aligned, bit (36) aligned, fixed bin (35)); 3 60 dcl collection_manager_$free_control_interval 3 61 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, bit (1) aligned, 3 62 fixed bin (35)); 3 63 3 64 dcl collection_manager_$delete 3 65 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 3 66 fixed bin (35)); 3 67 dcl collection_manager_$delete_from_ci_buffer 3 68 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, bit (1) aligned, 3 69 fixed bin (35)); 3 70 3 71 dcl collection_manager_$get 3 72 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), ptr, 3 73 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 3 74 dcl collection_manager_$get_control_interval_ptr 3 75 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) unsigned, ptr, 3 76 fixed bin (35)); 3 77 dcl collection_manager_$get_from_ci_buffer 3 78 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 3 79 ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 3 80 dcl collection_manager_$get_by_ci_ptr 3 81 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 3 82 fixed bin (35), ptr, bit (1) aligned, ptr, fixed bin (35), ptr, fixed bin (35)); 3 83 dcl collection_manager_$get_header 3 84 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (17), ptr, bit (1) aligned, 3 85 ptr, fixed bin (35), fixed bin (35)); 3 86 dcl collection_manager_$get_id 3 87 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin (17), 3 88 bit (1) aligned, bit (36) aligned, fixed bin (35)); 3 89 dcl collection_manager_$get_portion 3 90 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, fixed bin, ptr, 3 91 fixed bin (35), ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, 3 92 fixed bin (35), fixed bin (35)); 3 93 dcl collection_manager_$get_portion_from_ci_buffer 3 94 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 3 95 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 3 96 fixed bin (35)); 3 97 dcl collection_manager_$get_portion_by_ci_ptr 3 98 entry (ptr, bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), 3 99 ptr, fixed bin (35), fixed bin (35), bit (1) aligned, ptr, fixed bin (35), 3 100 fixed bin (35)); 3 101 dcl collection_manager_$modify 3 102 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 103 fixed bin (35), fixed bin (35)); 3 104 dcl collection_manager_$modify_unprotected 3 105 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 106 fixed bin (35), fixed bin (35)); 3 107 dcl collection_manager_$modify_in_ci_buffer 3 108 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 109 fixed bin (35), fixed bin (35)); 3 110 dcl collection_manager_$modify_portion 3 111 entry (bit (36) aligned, bit (36) aligned, fixed bin (35), fixed bin (35), ptr, 3 112 fixed bin (35), bit (36) aligned, fixed bin (35), fixed bin (35)); 3 113 dcl collection_manager_$postcommit_increments 3 114 entry (bit (36) aligned, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35)); 3 115 dcl collection_manager_$put 3 116 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 117 fixed bin (35), fixed bin (35)); 3 118 dcl collection_manager_$put_in_ci_buffer 3 119 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), bit (36) aligned, 3 120 fixed bin (35), fixed bin (35)); 3 121 dcl collection_manager_$put_header 3 122 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 3 123 dcl collection_manager_$put_unprotected_header 3 124 entry (bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35)); 3 125 3 126 dcl collection_manager_$replace_ci_buffer 3 127 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 3 128 fixed bin (35)); 3 129 dcl collection_manager_$setup_ci_buffer 3 130 entry (bit (36) aligned, bit (36) aligned, fixed bin (24) uns, ptr, fixed bin (35), 3 131 fixed bin (35)); 3 132 dcl collection_manager_$simple_get_by_ci_ptr 3 133 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 3 134 fixed bin (35)); 3 135 dcl collection_manager_$simple_get_from_ci_buffer 3 136 entry (ptr, bit (36) aligned, bit (36) aligned, ptr, fixed bin (35), fixed bin (35), 3 137 fixed bin (35)); 3 138 3 139 /* END INCLUDE FILE dm_collmgr_entry_dcls.incl.pl1 */ 148 149 4 1 /* BEGIN INCLUDE FILE dm_element_id.incl.pl1 */ 4 2 4 3 /* DESCRIPTION: 4 4* 4 5* Contains the declaration of an element identifier. Element 4 6* identifiers consist of two parts, the id (number) of the control interval 4 7* in which the element resides, and the index into the slot table of 4 8* the element in the control interval. The declaration of the element_id 4 9* structure reflects this division of the element identifier. The structure 4 10* is based on the automatic bit string element_id_string because programs 4 11* generally pass bit strings (element_id_string) to each other, then 4 12* interpret the bit string by overlaying the element_id structure ony if 4 13* it is necessary to access the parts of the id. Basing element_id on 4 14* addr(element_id_string) instead of on a pointer removes the necessity 4 15* for always setting that pointer explicitly and guarantees that changes 4 16* made to the string or structure do not get inconsistent. 4 17* 4 18* Changes made to element_id must also be made to datum_id, declared in 4 19* dm_cm_datum.incl.pl1. 4 20**/ 4 21 4 22 /* HISTORY: 4 23*Written by Matthew Pierret, 04/01/82. 4 24*Modified: 4 25*09/24/84 by Matthew Pierret: Added DESCRIPTION section. 4 26**/ 4 27 4 28 /* format: style2,ind3,ll79 */ 4 29 4 30 dcl element_id_string bit (36) aligned; 4 31 4 32 dcl 1 element_id aligned based (addr (element_id_string)), 4 33 2 control_interval_id 4 34 fixed bin (24) unal unsigned, 4 35 2 index fixed bin (12) unal unsigned; 4 36 4 37 4 38 /* END INCLUDE FILE dm_element_id.incl.pl1 */ 150 151 5 1 /* BEGIN INCLUDE FILE - dm_im_opening_info.incl.pl1 */ 5 2 5 3 /* DESRIPTION: 5 4* 5 5* The index_opening_info is per-process information, stored in a 5 6* hash_table managed by the opening_manager_, which allows the 5 7* index_manager_ to quickly reference certain unchanging pieces of 5 8* information rapidly. 5 9**/ 5 10 5 11 /* HISTORY: 5 12* 5 13*Written by Lindsey Spratt, 10/28/82. 5 14*Modified: 5 15*10/26/84 by Lindsey L. Spratt: Changed version to char(8). Added a 5 16* description. Added the current_rollback_count. Added the 5 17* key_count_array_ptr. 5 18*03/07/85 by R. Michael Tague: Added key_count_increments_ptr and 5 19* key_counts_postcommit_written. Changed to version 3. 5 20*03/25/85 by R. Michael Tague: Added key_count_unprotected_file. This 5 21* flag is used by im_update_opening_info to help it maintain the 5 22* key count array info. 5 23**/ 5 24 5 25 /* format: style2,ind3 */ 5 26 dcl 1 index_opening_info based (index_opening_info_ptr) aligned, 5 27 2 version char (8) aligned, 5 28 2 file_opening_id bit (36) aligned, 5 29 2 collection_id bit (36) aligned, 5 30 2 index_header_ptr ptr init (null), 5 31 2 field_table_ptr ptr init (null), 5 32 2 key_count_array_ptr 5 33 ptr init (null), 5 34 2 key_count_increments_ptr 5 35 ptr init (null), 5 36 2 flags, 5 37 3 key_count_postcommit_written 5 38 bit (1) unal init ("0"b), 5 39 3 key_count_unprotected_file 5 40 bit (1) unal init ("0"b), 5 41 3 pad bit (34) unal init (""b), 5 42 2 current_txn_id fixed bin (35) init (0), 5 43 2 current_rollback_count 5 44 fixed bin (35) init (0); 5 45 5 46 dcl index_opening_info_ptr ptr init (null); 5 47 dcl INDEX_OPENING_INFO_VERSION_3 5 48 init ("IdxOpn 3") char (8) aligned internal static options (constant); 5 49 5 50 /* END INCLUDE FILE - dm_im_opening_info.incl.pl1 */ 152 153 end im_initial_insert; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0823.4 im_initial_insert.pl1 >spec>on>7192.pbf-04/04/85>im_initial_insert.pl1 144 1 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 146 2 01/07/85 0858.8 dmgFranz PX  :B Franz EngAdmin Q~}wQ>BQ, @noneWY50_80C Qa?Guest *jt Guest UOFC L/{8j L^' builtin function dcl 62 ref 5-46 137 137 p_code parameter fixed bin(35,0) dcl 51 set ref 39 86* 89* 92 92* 97* 99 99* 108* 110 110* 117* 118 118* 127* p_expected_version parameter char(8) dcl 134 set ref 131 137 137* p_index_opening_info_ptr parameter pointer dcl 46 ref 39 83 p_key_element_id_string parameter bit(36) dcl 49 set ref 39 87* 101* p_key_string parameter bit unaligned dcl 48 set ref 39 97 97 97 97 105 p_received_version parameter char(8) dcl 133 set ref 131 137 137* p_structure_name parameter char unaligned dcl 135 set ref 131 137* root_ci 000105 automatic fixed bin(24,0) unsigned dcl 56 set ref 89* 95 117* sub_err_ 000012 constant entry external dcl 73 ref 137 version based char(8) level 2 dcl 5-26 set ref 84* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 1-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 1-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 1-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 1-7 BRANCH_CI_HEADER_LENGTH_IN_BITS internal static fixed bin(17,0) initial dcl 2-56 LEAF_CI_HEADER_LENGTH_IN_BITS internal static fixed bin(17,0) initial dcl 2-56 branch_ci_header based structure level 1 unaligned dcl 2-48 branch_ci_header_ptr automatic pointer dcl 2-53 collection_manager_$compact_control_interval 000000 constant entry external dcl 3-52 collection_manager_$create_collection 000000 constant entry external dcl 3-54 collection_manager_$create_file 000000 constant entry external dcl 3-56 collection_manager_$delete 000000 constant entry external dcl 3-64 collection_manager_$delete_from_ci_buffer 000000 constant entry external dcl 3-67 collection_manager_$destroy_collection 000000 constant entry external dcl 3-58 collection_manager_$free_control_interval 000000 constant entry external dcl 3-60 collection_manager_$get 000000 constant entry external dcl 3-71 collection_manager_$get_by_ci_ptr 000000 constant entry external dcl 3-80 collection_manager_$get_control_interval_ptr 000000 constant entry external dcl 3-74 collection_manager_$get_from_ci_buffer 000000 constant entry external dcl 3-77 collection_manager_$get_header 000000 constant entry external dcl 3-83 collection_manager_$get_id 000000 constant entry external dcl 3-86 collection_manager_$get_portion 000000 constant entry external dcl 3-89 collection_manager_$get_portion_by_ci_ptr 000000 constant entry external dcl 3-97 collection_manager_$get_portion_from_ci_buffer 000000 constant entry external dcl 3-93 collection_manager_$modify 000000 constant entry external dcl 3-101 collection_manager_$modify_in_ci_buffer 000000 constant entry external dcl 3-107 collection_manager_$modify_portion 000000 constant entry external dcl 3-110 collection_manager_$modify_unprotected 000000 constant entry external dcl 3-104 collection_manager_$postcommit_increments 000000 constant entry external dcl 3-113 collection_manager_$put_header 000000 constant entry external dcl 3-121 collection_manager_$put_in_ci_buffer 000000 constant entry external dcl 3-118 collection_manager_$put_unprotected_header 000000 constant entry external dcl 3-123 collection_manager_$replace_ci_buffer 000000 constant entry external dcl 3-126 collection_manager_$setup_ci_buffer 000000 constant entry external dcl 3-129 collection_manager_$simple_get_by_ci_ptr 000000 constant entry external dcl 3-132 collection_manager_$simple_get_from_ci_buffer 000000 constant entry external dcl 3-135 common_ci_header_ptr automatic pointer dcl 2-41 leaf_ci_header_ptr automatic pointer dcl 2-46 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000357 constant entry internal dcl 131 ref 84 ERROR_RETURN 000351 constant entry internal dcl 124 ref 92 99 110 118 MAIN_RETURN 000350 constant label dcl 121 ref 128 im_initial_insert 000064 constant entry external dcl 39 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 95 96 97 97 103 103 107 108 108 length builtin function ref 97 97 105 108 108 unspec builtin function ref 108 108 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 564 606 461 574 Length 1100 461 22 256 103 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME im_initial_insert 172 external procedure is an external procedure. ERROR_RETURN internal procedure shares stack frame of external procedure im_initial_insert. CHECK_VERSION internal procedure shares stack frame of external procedure im_initial_insert. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME im_initial_insert 000100 local_leaf_header im_initial_insert 000105 root_ci im_initial_insert 000106 error_table_$unimplemented_version im_initial_insert 000107 element_id_string im_initial_insert 000110 index_opening_info_ptr im_initial_insert THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. collection_manager_$allocate_control_interval collection_manager_$put im_init_leaf_ci_header im_update_opening_info$root_id sub_err_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 39 000057 5 46 000077 83 000101 84 000105 86 000132 87 000134 89 000135 92 000153 95 000164 96 000167 97 000171 99 000223 101 000234 103 000237 105 000250 106 000252 107 000256 108 000260 110 000312 117 000323 118 000337 121 000350 124 000351 127 000353 128 000356 131 000357 137 000370 142 000460 ----------------------------------------------------------- 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