COMPILATION LISTING OF SEGMENT fm_get_last_ci_num Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/09/86 1237.0 mst Tue Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 7 8 9 /****^ HISTORY COMMENTS: 10* 1) change(86-11-18,Blair), approve(86-11-18,PBF7311), audit(86-11-26,Dupuis), 11* install(86-12-09,MR12.0-1237): 12* Correct the p_blocking_factor parameter to be aligned so we don't always 13* get a value of zero from the top half of the word being passed in. This 14* was causing the copying of dm files to fail and status to give erroneous 15* results for the last-control interval. 16* END HISTORY COMMENTS */ 17 18 19 /* DESCRIPTION: 20* 21* This subroutine determines the number of the last control interval 22* in a file. It does so as follows: 23* 24* 1) Find the component which has the highest name (component names are 25* "0", "1", "2", ...). This component, say with name "N", is the last 26* component of the file and its last page is the last control interval 27* of the file. 28* 29* 2) Get the current length of "N", say M pages / control intervals. 30* 31* 3) The number of components prior to "N" is N - 1 + 1, or N. The -1 32* is to exclude component "N" and the +1 is to include component "0". 33* The number of control intervals prior to component "N" is 34* N * . p_blocking_factor is the maximum number of 35* control intervals per component. So calculate the number of the last 36* control interval with the expression: N * + M. 37* 38* The reason why we don't just add up the lengths of all the components 39* is that we are not calculating the number of control intervals in use. 40* We are looking for the number of the last control interval in use. It 41* is very possible that control intervals and even components have been 42* freed and are no longer in use, but that does not change the number of 43* the last control interval. 44**/ 45 46 /* HISTORY: 47*Written by Matthew Pierret, 08/01/84. 48* (Extracted from fm_open_.pl1, written by Jeff Ives.) 49*Modified: 50*11/16/84 by Matthew Pierret: Answered audit comments: declared all builtins, 51* used structures in star_structures.incl.pl1 instead of declaring 52* them locally. 53*12/11/84 by Lindsey L. Spratt: Fixed to set the validation level down to 54* get_ring_(). 55**/ 56 57 /* format: style2,ind3 */ 58 59 fm_get_last_ci_num: 60 proc (p_file_path_name, p_blocking_factor, p_last_ci_num); 61 62 63 /* START OF DECLARATIONS */ 64 65 /* Parameter */ 66 67 dcl p_blocking_factor fixed bin (17) parm; 68 dcl p_file_path_name char (168) parm; 69 dcl p_last_ci_num fixed bin (27) parm; 70 71 /* Automatic */ 72 73 dcl code fixed bin (35) init (0); 74 dcl component_nindex fixed bin init (0); 75 dcl component_num fixed bin init (0); 76 dcl entry_idx fixed bin init (0); 77 dcl file_path_name char (168); 78 dcl highest_component_nindex 79 fixed bin init (0); 80 dcl highest_component_num fixed bin init (-1); 81 82 dcl 1 my_status_branch aligned like status_branch; 83 84 dcl saved_level fixed bin init (0); 85 86 /* Based */ 87 88 /* Builtin */ 89 90 dcl (addr, bin, hbound, lbound, null, rtrim, sum, unspec) 91 builtin; 92 93 /* Condition */ 94 95 dcl cleanup condition; 96 97 /* Constant */ 98 99 dcl myname init ("fm_get_last_ci_num") char (32) varying internal static options (constant); 100 dcl NO_ARG init ("") char (1) internal static options (constant); 101 dcl STAR_BRANCHES_ONLY fixed bin (2) static options (constant) init (2); 102 dcl CHASE_LINKS fixed bin (1) static options (constant) init (1); 103 104 /* Entry */ 105 106 dcl cu_$level_get entry (fixed bin); 107 dcl cu_$level_set entry (fixed bin); 108 dcl fm_error_util_$signal entry options (variable); 109 dcl get_ring_ entry () returns (fixed bin (3)); 110 dcl get_system_free_area_ entry () returns (ptr); 111 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, fixed bin (35)); 112 dcl hcs_$status_long entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 113 114 /* External */ 115 116 dcl dm_error_$programming_error 117 fixed bin (35) ext; 118 119 /* END OF DECLARATIONS */ 120 121 file_path_name = p_file_path_name; 122 123 star_names_ptr = null (); 124 star_entry_ptr = null (); 125 status_area_ptr = null (); 126 status_ptr = null (); 127 unspec (my_status_branch) = ""b; 128 129 call cu_$level_get (saved_level); 130 131 on cleanup call FINISH (); 132 133 call cu_$level_set (get_ring_ ()); 134 135 call hcs_$star_ (file_path_name, "*", STAR_BRANCHES_ONLY, get_system_free_area_ (), star_entry_count, 136 star_entry_ptr, star_names_ptr, code); 137 if code ^= 0 138 then call ERROR_RETURN (code, " Unable to get names matching ^a>*.^s", file_path_name, ""); 139 140 do entry_idx = lbound (star_entries, 1) to hbound (star_entries, 1); 141 component_nindex = star_entries (entry_idx).nindex; 142 component_num = bin (rtrim (star_names (component_nindex)), 17); 143 if component_num > highest_component_num 144 then 145 do; 146 highest_component_num = component_num; 147 highest_component_nindex = component_nindex; 148 end; 149 end; 150 151 if highest_component_nindex = 0 152 then call ERROR_RETURN (dm_error_$programming_error, " No msf components found in ^a.", file_path_name, (NO_ARG)); 153 154 call hcs_$status_long (file_path_name, star_names (highest_component_nindex), CHASE_LINKS, addr (my_status_branch), 155 null (), code); 156 if code ^= 0 157 then call ERROR_RETURN (code, " Unable to get status for ^a>^a.", file_path_name, 158 star_names (highest_component_nindex)); 159 160 if my_status_branch.short.type ^= Segment 161 then call ERROR_RETURN (code, " The branch ^a>^a is not a segment.", file_path_name, 162 star_names (highest_component_nindex)); 163 164 p_last_ci_num = highest_component_num * p_blocking_factor + my_status_branch.long.current_length - 1; 165 166 call FINISH (); 167 168 return; 169 170 ERROR_RETURN: 171 proc (er_p_code, er_p_message, er_p_arg_1, er_p_arg_2); 172 173 dcl er_p_code fixed bin (35) parm; 174 dcl er_p_message char (*) parm; 175 dcl er_p_arg_1 char (*) parm; 176 dcl er_p_arg_2 char (*) parm; 177 178 call fm_error_util_$signal (er_p_code, myname, (FM_ACTION_CANT_RESTART | FM_ACTION_LOG), -1, er_p_message, 179 er_p_arg_1, er_p_arg_2); 180 181 end ERROR_RETURN; 182 183 184 FINISH: 185 proc (); 186 187 if saved_level > 0 188 then call cu_$level_set (saved_level); 189 if star_names_ptr ^= null () 190 then free star_names; 191 if star_entry_ptr ^= null () 192 then free star_entries; 193 194 end FINISH; 195 196 1 1 /* ******* BEGIN INCLUDE FILE dm_fm_sub_error_flags.incl.pl1 ******** */ 1 2 1 3 /* format: style2,ind3 */ 1 4 1 5 /* HISTORY: 1 6*Written by Matthew Pierret, 07/02/83. 1 7*Modified: 1 8**/ 1 9 1 10 dcl 1 fm_error_flags aligned based, 1 11 2 action unal, 1 12 3 cant_restart bit (1) unal, 1 13 3 default_restart bit (1) unal, 1 14 3 quiet_restart bit (1) unal, 1 15 3 support_signal bit (1) unal, 1 16 3 mbz_1 bit (14) unal, 1 17 2 log unal, 1 18 3 system bit (1) unal, 1 19 3 mbz_2 bit (1) unal, 1 20 2 mbz_3 bit (16) unal; 1 21 1 22 dcl ( 1 23 FM_ACTION_CANT_RESTART init ("1000"b || (32)"0"b), 1 24 FM_ACTION_CAN_RESTART init ("0000"b || (32)"0"b), 1 25 FM_ACTION_DEFAULT_RESTART 1 26 init ("0100"b || (32)"0"b), 1 27 FM_ACTION_QUIET_RESTART 1 28 init ("0010"b || (32)"0"b), 1 29 FM_ACTION_LOG init ((18)"0"b || "10"b || (16)"0"b) 1 30 ) bit (36) aligned internal static options (constant); 1 31 1 32 /* ********* END INCLUDE FILE dm_fm_sub_error_flags.incl.pl1 ******** */ 197 198 2 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 2 2 2 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 2 4 2 5 /* This include file contains branch and link structures returned by 2 6* hcs_$status_ and hcs_$status_long. */ 2 7 2 8 dcl 1 status_branch aligned based (status_ptr), 2 9 2 short aligned, 2 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 2 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 2 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 2 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 2 14 3 dtu bit (36) unaligned, /* date/time last used */ 2 15 3 mode bit (5) unaligned, /* caller's effective access */ 2 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 2 17 3 pad1 bit (8) unaligned, 2 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 2 19 2 20 /* Limit of information returned by hcs_$status_ */ 2 21 2 22 2 long aligned, 2 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 2 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 2 25 3 lvid bit (36) unaligned, /* logical volume ID */ 2 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 2 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 2 28 3 pad2 bit (8) unaligned, 2 29 3 copy_switch bit (1) unaligned, /* copy switch */ 2 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 2 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 2 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 2 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 2 34 3 pad3 bit (5) unaligned, 2 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 2 36 3 uid bit (36) unaligned; /* unique ID */ 2 37 2 38 dcl 1 status_link aligned based (status_ptr), 2 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 2 40 2 nnames fixed bin (16) unaligned unsigned, 2 41 2 names_relp bit (18) unaligned, 2 42 2 dtem bit (36) unaligned, 2 43 2 dtd bit (36) unaligned, 2 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 2 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 2 46 2 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 2 48 based (pointer (status_area_ptr, status_branch.names_relp)), 2 49 /* array of names returned */ 2 50 status_pathname character (status_link.pathname_length) aligned 2 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 2 52 /* link target path */ 2 53 status_area_ptr pointer, 2 54 status_ptr pointer; 2 55 2 56 dcl (Link initial (0), 2 57 Segment initial (1), 2 58 Directory initial (2)) fixed bin internal static options (constant); 2 59 /* values for type fields declared above */ 2 60 2 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 199 200 3 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 3 2 3 3 /* This include file contains structures for the hcs_$star_, 3 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 3 5* 3 6* Written 23 October 1978 by Monte Davidoff. 3 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 3 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 3 9**/ 3 10 3 11 /* automatic */ 3 12 3 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 3 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 3 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 3 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 3 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 3 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 3 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 3 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 3 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 3 22 3 23 /* based */ 3 24 3 25 /* hcs_$star_ entry structure */ 3 26 3 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 3 28 2 type fixed binary (2) unsigned unaligned, 3 29 /* storage system type */ 3 30 2 nnames fixed binary (16) unsigned unaligned, 3 31 /* number of names of entry that match star_name */ 3 32 2 nindex fixed binary (18) unsigned unaligned; 3 33 /* index of first name in star_names */ 3 34 3 35 /* hcs_$star_ name structure */ 3 36 3 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 3 38 3 39 /* hcs_$star_list_ branch structure */ 3 40 3 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 42 2 type fixed binary (2) unsigned unaligned, 3 43 /* storage system type */ 3 44 2 nnames fixed binary (16) unsigned unaligned, 3 45 /* number of names of entry that match star_name */ 3 46 2 nindex fixed binary (18) unsigned unaligned, 3 47 /* index of first name in star_list_names */ 3 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 3 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 3 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 3 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 3 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 3 53 2 pad bit (7) unaligned, 3 54 2 records fixed binary (18) unsigned unaligned; 3 55 /* records used by branch */ 3 56 3 57 /* hcs_$star_dir_list_ branch structure */ 3 58 3 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 60 2 type fixed binary (2) unsigned unaligned, 3 61 /* storage system type */ 3 62 2 nnames fixed binary (16) unsigned unaligned, 3 63 /* number of names of entry that match star_name */ 3 64 2 nindex fixed binary (18) unsigned unaligned, 3 65 /* index of first name in star_list_names */ 3 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 3 67 2 pad bit (36) unaligned, 3 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 3 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 3 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 3 71 2 bit_count fixed binary (24) unaligned; 3 72 /* bit count of the branch */ 3 73 3 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 3 75 3 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 3 77 2 type fixed binary (2) unsigned unaligned, 3 78 /* storage system type */ 3 79 2 nnames fixed binary (16) unsigned unaligned, 3 80 /* number of names of entry that match star_name */ 3 81 2 nindex fixed binary (18) unsigned unaligned, 3 82 /* index of first name in star_list_names */ 3 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 3 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 3 85 2 pathname_len fixed binary (18) unsigned unaligned, 3 86 /* length of the pathname of the link */ 3 87 2 pathname_index fixed binary (18) unsigned unaligned; 3 88 /* index of start of pathname in star_list_names */ 3 89 3 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 3 91 3 92 declare star_list_names char (32) based (star_list_names_ptr) 3 93 dimension (star_links (star_branch_count + star_link_count).nindex 3 94 + star_links (star_branch_count + star_link_count).nnames 3 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 3 96 * binary ( 3 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 3 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 3 99 3 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 3 101 3 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 3 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 3 104 3 105 /* internal static */ 3 106 3 107 /* star_select_sw values */ 3 108 3 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 3 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 3 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 3 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 3 113 fixed binary (3) internal static options (constant) initial (5); 3 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 3 115 fixed binary (3) internal static options (constant) initial (7); 3 116 3 117 /* storage system types */ 3 118 3 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 3 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 3 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 3 122 3 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 201 202 203 end fm_get_last_ci_num; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/09/86 1237.0 fm_get_last_ci_num.pl1 >spec>install>1237>fm_get_last_ci_num.pl1 197 1 01/07/85 0858.8 dm_fm_sub_error_flags.incl.pl1 >ldd>include>dm_fm_sub_error_flags.incl.pl1 199 2 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.incl.pl1 201 3 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.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. CHASE_LINKS 000032 constant fixed bin(1,0) initial dcl 102 set ref 154* FM_ACTION_CANT_RESTART constant bit(36) initial dcl 1-22 ref 178 FM_ACTION_LOG constant bit(36) initial dcl 1-22 ref 178 NO_ARG constant char(1) initial unaligned dcl 100 ref 151 STAR_BRANCHES_ONLY 000034 constant fixed bin(2,0) initial dcl 101 set ref 135* Segment constant fixed bin(17,0) initial dcl 2-56 ref 160 addr builtin function dcl 90 ref 154 154 bin builtin function dcl 90 ref 142 cleanup 000174 stack reference condition dcl 95 ref 131 code 000100 automatic fixed bin(35,0) initial dcl 73 set ref 73* 135* 137 137* 154* 156 156* 160* component_nindex 000101 automatic fixed bin(17,0) initial dcl 74 set ref 74* 141* 142 147 component_num 000102 automatic fixed bin(17,0) initial dcl 75 set ref 75* 142* 143 146 cu_$level_get 000010 constant entry external dcl 106 ref 129 cu_$level_set 000012 constant entry external dcl 107 ref 133 187 current_length 7 000160 automatic fixed bin(12,0) level 3 packed unsigned unaligned dcl 82 set ref 164 dm_error_$programming_error 000026 external static fixed bin(35,0) dcl 116 set ref 151* entry_idx 000103 automatic fixed bin(17,0) initial dcl 76 set ref 76* 140* 141* er_p_arg_1 parameter char unaligned dcl 175 set ref 170 178* er_p_arg_2 parameter char unaligned dcl 176 set ref 170 178* er_p_code parameter fixed bin(35,0) dcl 173 set ref 170 178* er_p_message parameter char unaligned dcl 174 set ref 170 178* file_path_name 000104 automatic char(168) unaligned dcl 77 set ref 121* 135* 137* 151* 154* 156* 160* fm_error_util_$signal 000014 constant entry external dcl 108 ref 178 get_ring_ 000016 constant entry external dcl 109 ref 133 133 get_system_free_area_ 000020 constant entry external dcl 110 ref 135 135 hbound builtin function dcl 90 ref 140 hcs_$star_ 000022 constant entry external dcl 111 ref 135 hcs_$status_long 000024 constant entry external dcl 112 ref 154 highest_component_nindex 000156 automatic fixed bin(17,0) initial dcl 78 set ref 78* 147* 151 154 156 160 highest_component_num 000157 automatic fixed bin(17,0) initial dcl 80 set ref 80* 143 146* 164 lbound builtin function dcl 90 ref 140 long 4 000160 automatic structure level 2 dcl 82 my_status_branch 000160 automatic structure level 1 dcl 82 set ref 127* 154 154 myname 000000 constant varying char(32) initial dcl 99 set ref 178* nindex 0(18) based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 3-27 ref 141 nnames 0(02) based fixed bin(16,0) array level 2 packed unsigned unaligned dcl 3-27 ref 189 null builtin function dcl 90 ref 123 124 125 126 154 154 189 191 p_blocking_factor parameter fixed bin(17,0) dcl 67 ref 59 164 p_file_path_name parameter char(168) unaligned dcl 68 ref 59 121 p_last_ci_num parameter fixed bin(27,0) dcl 69 set ref 59 164* rtrim builtin function dcl 90 ref 142 saved_level 000172 automatic fixed bin(17,0) initial dcl 84 set ref 84* 129* 187 187* short 000160 automatic structure level 2 dcl 82 star_entries based structure array level 1 dcl 3-27 ref 140 140 191 star_entry_count 000206 automatic fixed bin(17,0) dcl 3-14 set ref 135* 140 189 191 star_entry_ptr 000210 automatic pointer dcl 3-15 set ref 124* 135* 140 140 141 189 191 191 star_names based char(32) array unaligned dcl 3-37 set ref 142 154* 156* 160* 189 star_names_ptr 000212 automatic pointer dcl 3-19 set ref 123* 135* 142 154 156 160 189 189 status_area_ptr 000202 automatic pointer dcl 2-47 set ref 125* status_branch based structure level 1 dcl 2-8 status_ptr 000204 automatic pointer dcl 2-47 set ref 126* sum builtin function dcl 90 ref 189 type 000160 automatic fixed bin(2,0) level 3 packed unsigned unaligned dcl 82 set ref 160 unspec builtin function dcl 90 set ref 127* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Directory internal static fixed bin(17,0) initial dcl 2-56 FM_ACTION_CAN_RESTART internal static bit(36) initial dcl 1-22 FM_ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 1-22 FM_ACTION_QUIET_RESTART internal static bit(36) initial dcl 1-22 Link internal static fixed bin(17,0) initial dcl 2-56 fm_error_flags based structure level 1 dcl 1-10 star_ALL_ENTRIES internal static fixed bin(2,0) initial dcl 3-111 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 3-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 3-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 3-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 3-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 3-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 3-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 3-120 star_branch_count automatic fixed bin(17,0) dcl 3-13 star_dir_list_branch based structure array level 1 dcl 3-59 star_link_count automatic fixed bin(17,0) dcl 3-17 star_link_pathname based char unaligned dcl 3-102 star_links based structure array level 1 dcl 3-76 star_linkx automatic fixed bin(17,0) dcl 3-18 star_list_branch based structure array level 1 dcl 3-41 star_list_branch_ptr automatic pointer dcl 3-16 star_list_names based char(32) array unaligned dcl 3-92 star_list_names_ptr automatic pointer dcl 3-20 star_select_sw automatic fixed bin(3,0) dcl 3-21 status_entry_names based char(32) array dcl 2-47 status_link based structure level 1 dcl 2-38 status_pathname based char dcl 2-47 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 000600 constant entry internal dcl 170 ref 137 151 156 160 FINISH 000675 constant entry internal dcl 184 ref 131 166 fm_get_last_ci_num 000114 constant entry external dcl 59 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1140 1170 1002 1150 Length 1430 1002 30 224 136 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fm_get_last_ci_num 388 external procedure is an external procedure. on unit on line 131 64 on unit ERROR_RETURN internal procedure shares stack frame of external procedure fm_get_last_ci_num. FINISH 68 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fm_get_last_ci_num 000100 code fm_get_last_ci_num 000101 component_nindex fm_get_last_ci_num 000102 component_num fm_get_last_ci_num 000103 entry_idx fm_get_last_ci_num 000104 file_path_name fm_get_last_ci_num 000156 highest_component_nindex fm_get_last_ci_num 000157 highest_component_num fm_get_last_ci_num 000160 my_status_branch fm_get_last_ci_num 000172 saved_level fm_get_last_ci_num 000202 status_area_ptr fm_get_last_ci_num 000204 status_ptr fm_get_last_ci_num 000206 star_entry_count fm_get_last_ci_num 000210 star_entry_ptr fm_get_last_ci_num 000212 star_names_ptr fm_get_last_ci_num THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mpfx2 enable_op ext_entry int_entry any_to_any_truncate_op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$level_get cu_$level_set fm_error_util_$signal get_ring_ get_system_free_area_ hcs_$star_ hcs_$status_long THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$programming_error LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 59 000110 73 000121 74 000122 75 000123 76 000124 78 000125 80 000126 84 000130 121 000131 123 000136 124 000140 125 000141 126 000142 127 000143 129 000146 131 000154 133 000176 135 000216 137 000272 140 000302 141 000311 142 000315 143 000347 146 000352 147 000353 149 000355 151 000357 154 000413 156 000460 160 000516 164 000556 166 000573 168 000577 170 000600 178 000623 181 000673 184 000674 187 000702 189 000713 191 000747 194 000756 ----------------------------------------------------------- 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