COMPILATION LISTING OF SEGMENT im_init_branch_ci_header Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/03/85 1521.7 mst Thu Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This program initializes the branch_ci_header structure. 10**/ 11 12 /* HISTORY: 13* 14*Written by Lindsey Spratt, 01/01/82. 15*Modified: 16*11/08/84 by Lindsey L. Spratt: Added the description and history sections. 17* Fixed to initialize the flags.pad. 18**/ 19 20 /* format: style2,ind3 */ 21 im_init_branch_ci_header: 22 proc (p_branch_ci_header_ptr); 23 24 dcl p_branch_ci_header_ptr ptr; 25 26 branch_ci_header_ptr = p_branch_ci_header_ptr; 27 28 branch_ci_header.common.is_leaf = "0"b; 29 branch_ci_header.common.flags.pad = "0"b; 30 branch_ci_header.common.key_range.first = 0; 31 branch_ci_header.common.key_range.last = 0; 32 branch_ci_header.common.parent_id_string = "0"b; 33 branch_ci_header.common.pad = "0"b; 34 branch_ci_header.common.key_tail_space_used_since_last_prefix_compaction = 0; 35 branch_ci_header.common.previous_id = 0; 36 branch_ci_header.common.next_id = 0; 37 branch_ci_header.low_branch_id = 0; 38 return; 39 1 1 /* BEGIN INCLUDE FILE - dm_im_ci_header.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* 1 5* Each node (control interval) in the index has a header which 1 6* describes the contents of that node. Although there are two different 1 7* kinds of headers, leaf and branch, they have a great deal in common, the 1 8* common_ci_header. The common_ci_header states which slots are used by 1 9* the keys (leaf or branch) in the key_range substructure. There is an 1 10* "upward pointer" to the node's parent branch key (parent_id_string). 1 11* There are pointers to the previous and next nodes (previous_id and 1 12* next_id) on the same level to facilitate rotation of keys, and sequential 1 13* searching. There is also a count of how much space is in use by the keys. 1 14* 1 15**/ 1 16 1 17 /* HISTORY: 1 18* 1 19*Written by Lindsey Spratt, 03/29/82. 1 20*Modified: 1 21*10/25/84 by Lindsey L. Spratt: Added a description and fixed the history 1 22* section format. 1 23**/ 1 24 1 25 /* format: style2,ind3 */ 1 26 dcl 1 common_ci_header based (common_ci_header_ptr), 1 27 2 flags unaligned, 1 28 3 is_leaf bit (1) unaligned, /* ON for leaf_ci, OFF for branch_ci. */ 1 29 3 pad bit (17) unaligned, /* Must be zero. */ 1 30 2 key_tail_space_used_since_last_prefix_compaction 1 31 fixed bin (18) unsigned unal, 1 32 2 key_range unaligned, 1 33 3 first fixed bin (18) unsigned, 1 34 3 last fixed bin (18) unsigned, 1 35 2 parent_id_string bit (36) aligned, 1 36 2 previous_id fixed bin (24) unsigned unaligned, 1 37 2 next_id fixed bin (24) unsigned unaligned, 1 38 2 pad bit (24) unaligned; 1 39 1 40 1 41 dcl common_ci_header_ptr ptr; 1 42 1 43 dcl 1 leaf_ci_header based (leaf_ci_header_ptr), 1 44 2 common like common_ci_header; 1 45 1 46 dcl leaf_ci_header_ptr ptr; 1 47 1 48 dcl 1 branch_ci_header based (branch_ci_header_ptr), 1 49 2 common like common_ci_header, 1 50 2 low_branch_id fixed bin (24) unsigned unaligned, 1 51 2 pad bit (12) unaligned; 1 52 1 53 dcl branch_ci_header_ptr ptr; 1 54 1 55 1 56 dcl ( 1 57 DEFAULT_INITIAL_KEY_SLOT 1 58 init (2), 1 59 DEFAULT_INDEX_CONTROL_INTERVAL_HEADER_SLOT 1 60 init (1), 1 61 LEAF_CI_HEADER_LENGTH_IN_BITS 1 62 init (180), 1 63 BRANCH_CI_HEADER_LENGTH_IN_BITS 1 64 init (216) 1 65 ) internal static options (constant) fixed bin; 1 66 1 67 /* END INCLUDE FILE - dm_im_ci_header.incl.pl1 */ 40 41 end im_init_branch_ci_header; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/03/85 1146.4 im_init_branch_ci_header.pl1 >spec>temp>famis1>im_init_branch_ci_header.pl1 40 1 01/03/85 1003.4 dm_im_ci_header.incl.pl1 >spec>temp>famis1>dm_im_ci_header.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. branch_ci_header based structure level 1 unaligned dcl 1-48 branch_ci_header_ptr 000100 automatic pointer dcl 1-53 set ref 26* 28 29 30 31 32 33 34 35 36 37 common based structure level 2 unaligned dcl 1-48 common_ci_header based structure level 1 unaligned dcl 1-26 first 1 based fixed bin(18,0) level 4 packed unsigned unaligned dcl 1-48 set ref 30* flags based structure level 3 packed unaligned dcl 1-48 is_leaf based bit(1) level 4 packed unaligned dcl 1-48 set ref 28* key_range 1 based structure level 3 packed unaligned dcl 1-48 key_tail_space_used_since_last_prefix_compaction 0(18) based fixed bin(18,0) level 3 packed unsigned unaligned dcl 1-48 set ref 34* last 1(18) based fixed bin(18,0) level 4 packed unsigned unaligned dcl 1-48 set ref 31* low_branch_id 5 based fixed bin(24,0) level 2 packed unsigned unaligned dcl 1-48 set ref 37* next_id 3(24) based fixed bin(24,0) level 3 packed unsigned unaligned dcl 1-48 set ref 36* p_branch_ci_header_ptr parameter pointer dcl 24 ref 21 26 pad 0(01) based bit(17) level 4 in structure "branch_ci_header" packed unaligned dcl 1-48 in procedure "im_init_branch_ci_header" set ref 29* pad 4(12) based bit(24) level 3 in structure "branch_ci_header" packed unaligned dcl 1-48 in procedure "im_init_branch_ci_header" set ref 33* parent_id_string 2 based bit(36) level 3 dcl 1-48 set ref 32* previous_id 3 based fixed bin(24,0) level 3 packed unsigned unaligned dcl 1-48 set ref 35* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BRANCH_CI_HEADER_LENGTH_IN_BITS internal static fixed bin(17,0) initial dcl 1-56 DEFAULT_INDEX_CONTROL_INTERVAL_HEADER_SLOT internal static fixed bin(17,0) initial dcl 1-56 DEFAULT_INITIAL_KEY_SLOT internal static fixed bin(17,0) initial dcl 1-56 LEAF_CI_HEADER_LENGTH_IN_BITS internal static fixed bin(17,0) initial dcl 1-56 common_ci_header_ptr automatic pointer dcl 1-41 leaf_ci_header based structure level 1 unaligned dcl 1-43 leaf_ci_header_ptr automatic pointer dcl 1-46 NAME DECLARED BY EXPLICIT CONTEXT. im_init_branch_ci_header 000004 constant entry external dcl 21 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 76 106 45 106 Length 274 45 10 151 30 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME im_init_branch_ci_header 66 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME im_init_branch_ci_header 000100 branch_ci_header_ptr im_init_branch_ci_header THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. return ext_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. CONSTANTS 000043 aa 400000777777 000044 aa 377777777777 000000 aa 464000000000 BEGIN PROCEDURE im_init_branch_ci_header ENTRY TO im_init_branch_ci_header STATEMENT 1 ON LINE 21 im_init_branch_ci_header: proc (p_branch_ci_header_ptr); 000001 at 000001000000 000002 ta 000001000000 000003 da 000024300000 000004 aa 000120 6270 00 eax7 80 000005 aa 7 00034 3521 20 epp2 pr7|28,* 000006 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000007 aa 000002000000 000010 aa 000000000000 STATEMENT 1 ON LINE 26 branch_ci_header_ptr = p_branch_ci_header_ptr; 000011 aa 6 00032 3735 20 epp7 pr6|26,* 000012 aa 7 00002 3715 20 epp5 pr7|2,* p_branch_ci_header_ptr 000013 aa 5 00000 3715 20 epp5 pr5|0,* p_branch_ci_header_ptr 000014 aa 6 00100 6515 00 spri5 pr6|64 branch_ci_header_ptr STATEMENT 1 ON LINE 28 branch_ci_header.common.is_leaf = "0"b; 000015 aa 000027 2350 04 lda 23,ic 000044 = 377777777777 000016 aa 5 00000 3551 00 ansa pr5|0 branch_ci_header.is_leaf STATEMENT 1 ON LINE 29 branch_ci_header.common.flags.pad = "0"b; 000017 aa 000024 2350 04 lda 20,ic 000043 = 400000777777 000020 aa 5 00000 3551 00 ansa pr5|0 branch_ci_header.pad STATEMENT 1 ON LINE 30 branch_ci_header.common.key_range.first = 0; 000021 aa 000000 2350 07 lda 0,dl 000022 aa 5 00001 5511 60 stba pr5|1,60 branch_ci_header.first STATEMENT 1 ON LINE 31 branch_ci_header.common.key_range.last = 0; 000023 aa 000022 7710 00 arl 18 000024 aa 5 00001 5511 14 stba pr5|1,14 branch_ci_header.last STATEMENT 1 ON LINE 32 branch_ci_header.common.parent_id_string = "0"b; 000025 aa 5 00002 4501 00 stz pr5|2 branch_ci_header.parent_id_string STATEMENT 1 ON LINE 33 branch_ci_header.common.pad = "0"b; 000026 aa 777700 2350 03 lda 262080,du 000027 aa 5 00004 3551 00 ansa pr5|4 branch_ci_header.pad STATEMENT 1 ON LINE 34 branch_ci_header.common.key_tail_space_used_since_last_prefix_compaction = 0; 000030 aa 000000 2350 03 lda 0,du 000031 aa 5 00000 5511 14 stba pr5|0,14 branch_ci_header.key_tail_space_used_since_last_prefix_compaction STATEMENT 1 ON LINE 35 branch_ci_header.common.previous_id = 0; 000032 aa 000000 2350 07 lda 0,dl 000033 aa 5 00003 7511 74 stca pr5|3,74 branch_ci_header.previous_id STATEMENT 1 ON LINE 36 branch_ci_header.common.next_id = 0; 000034 aa 000030 7730 00 lrl 24 000035 aa 5 00003 7511 03 stca pr5|3,03 branch_ci_header.next_id 000036 aa 5 00004 7521 60 stcq pr5|4,60 branch_ci_header.next_id STATEMENT 1 ON LINE 37 branch_ci_header.low_branch_id = 0; 000037 aa 000030 7370 00 lls 24 000040 aa 0 00060 3771 00 anaq pr0|48 = 777777770000 000000000000 000041 aa 5 00005 7511 74 stca pr5|5,74 branch_ci_header.low_branch_id STATEMENT 1 ON LINE 38 return; 000042 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 41 end im_init_branch_ci_header; END PROCEDURE im_init_branch_ci_header ----------------------------------------------------------- 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