COMPILATION LISTING OF SEGMENT bjm_get_bj_path_from_oid Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0940.6 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* A procedure to return the dir and entry names of an open before 9*journal given its opening ID. We do not lock the PST; as the journal is 10*open, the pathname info will not be modified. 11* 12* BJ_OID is an input argument. BJ_DIR, BJ_ENTRY, and CODE are 13*output arguments. 14**/ 15 16 /* HISTORY: 17*Written by Mike Pandolf, 08/19/82. 18*Modified: 19*11/11/82 by M. Pandolf: to use standard entry and exit protocol. 20*11/15/82 by M. Pandolf: to be called as bjm_get_bj_path_from_oid. 21*11/18/82 by M. Pandolf: to not lock PST: as long as we have the 22* journal open, pathname info will not be modified. 23*12/06/83 by L. A. Newcomb: Renamed before_journal_manager_static_ to 24* bjm_data_ and moved some cells from dm_data_ to bjm_data_. 25*02/19/85 by Lee A. Newcomb: Fixed to check the versions of the various 26* structures used and to properly cleanup; standardized format. 27*03/19/85 by Steve Herbst: Fixed to initialize bjm_data_$bj_code. 28**/ 29 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 30 31 bjm_get_bj_path_from_oid: 32 procedure (p_bj_oid, p_bj_dir, p_bj_entry, p_code); 33 34 /* DECLARATIONS */ 35 36 /* Parameter */ 37 dcl ( 38 p_bj_oid bit (36) aligned, /* BJ opening ID */ 39 p_bj_dir char (*), /* dir of BJ identified bj BJ_OID */ 40 p_bj_entry char (*), /* entryname of BJ identified bj BJ_OID */ 41 p_code fixed bin (35) /* standard system status code */ 42 ) parameter; 43 44 /* Automatic */ 45 dcl ( 46 bj_oid bit (36) aligned init (""b), 47 bjm_clean_up_needed bit (1) aligned init (""b) 48 ) automatic; 49 50 /* Based */ 51 /* Builtin */ 52 dcl ptr builtin; 53 54 /* Condition */ 55 dcl cleanup condition; 56 57 /* Constant */ 58 dcl ( 59 CHECK_FOR_BJM_RECURSION bit (1) aligned init ("1"b), 60 DONT_CHECK_FOR_BJM_RECURSION bit (1) aligned init (""b), 61 ME char (32) 62 init ("bjm_get_bj_path_from_oid") 63 ) internal static options (constant); 64 65 /* Entry */ 66 dcl ( 67 bj_cleanup_tables$handler entry (fixed bin (35)), 68 bj_oid_util$get_ptr entry (bit (36) aligned) returns (ptr), 69 bj_pst_search entry (bit (36) aligned) returns (ptr) 70 ) external; 71 72 /* External */ 73 dcl ( 74 bjm_data_$bj_pst_ptr ptr, 75 ( 76 dm_error_$bj_bad_ppte_version, 77 dm_error_$bj_bad_pst_version, 78 dm_error_$bj_bad_pste_version, 79 dm_error_$bj_recursive_invoc 80 ) fixed bin (35) 81 ) external static; 82 83 /* Static */ 84 85 /* END OF DECLARATIONS */ 86 87 COPY_AND_INIT_PARAMETERS: 88 do; 89 bj_oid = p_bj_oid; 90 p_bj_dir = ""; 91 p_bj_entry = ""; 92 p_code = 0; 93 end COPY_AND_INIT_PARAMETERS; 94 95 SETUP_FOR_NON_STANDARD_EXIT: 96 do; 97 on cleanup call CLEAN_UP (); 98 call SET_BJM_DATA_ERROR_HANDLING_VALUES (NONLOCAL_ERROR_EXIT, ME, 99 CHECK_FOR_BJM_RECURSION); 100 101 end SETUP_FOR_NON_STANDARD_EXIT; 102 103 GET_BJ_TABLE_PTRS: 104 do; 105 bj_ppte_ptr = bj_oid_util$get_ptr (bj_oid); 106 call CHECK_VERSION_NUMERIC (bj_ppte.version, BJ_PPTE_VERSION_1, 107 dm_error_$bj_bad_ppte_version); 108 109 bj_pste_ptr = bj_pst_search ((bj_ppte.bj_uid)); /* get a pointer to the PSTE for this PPTE */ 110 call CHECK_VERSION_NUMERIC (bj_pste.version, BJ_PSTE_VERSION_2, 111 dm_error_$bj_bad_pste_version); 112 end GET_BJ_TABLE_PTRS; 113 114 /* use the bj_ix to look up the BJ pathname in the pathname table */ 115 call CHECK_VERSION_NUMERIC (bjm_data_$bj_pst_ptr -> bj_pst.version, 116 BJ_PST_VERSION_1, dm_error_$bj_bad_pst_version); 117 bj_pn_table_ptr = 118 ptr (bjm_data_$bj_pst_ptr, 119 bjm_data_$bj_pst_ptr -> bj_pst.pn_table_offset); 120 121 SET_OUTPUT_PARAMETERS: 122 do; 123 p_bj_dir = bj_pn_table (bj_pste.bj_ix).dir; 124 p_bj_entry = bj_pn_table (bj_pste.bj_ix).entry; 125 end SET_OUTPUT_PARAMETERS; 126 127 call FINISH (); 128 129 MAIN_RETURN: 130 return; 131 132 NONLOCAL_ERROR_EXIT: 133 call ERROR_RETURN (bjm_data_$bj_code); 134 135 FINISH: 136 proc (); 137 138 call SET_BJM_DATA_ERROR_HANDLING_VALUES (bjm_data_$bj_default_error_label, 139 "", DONT_CHECK_FOR_BJM_RECURSION); 140 141 return; 142 143 end FINISH; 144 145 ERROR_RETURN: 146 proc (er_p_code); 147 148 dcl er_p_code fixed bin (35) parameter; 149 150 call CLEAN_UP (); 151 p_code = er_p_code; 152 goto MAIN_RETURN; 153 154 end ERROR_RETURN; 155 156 CLEAN_UP: 157 proc (); 158 159 if bjm_clean_up_needed then 160 call bj_cleanup_tables$handler (0); 161 162 call FINISH (); 163 164 return; 165 166 end CLEAN_UP; 167 168 SET_BJM_DATA_ERROR_HANDLING_VALUES: 169 proc (sbdehv_p_error_exit, sbdehv_p_operation, 170 sbdehv_p_check_for_recursive_invocation); 171 172 /* This internal procedure centralizes the setting of the BJM global */ 173 /* error values in bjm_data_. It is called near the beginning of */ 174 /* this module, and in the FINISH internal procedure. ONLY THE FIRST */ 175 /* OF THESE CALLS SHOULD ASK FOR DETECTION OF A RECURSIVE INVOCATION */ 176 /* OF THE BEFORE JOURNAL MANAGER, if the other calls did, we could */ 177 /* end up getting a recursive call ERROR_RETURN, CLEAN_UP, FINISH, */ 178 /* this proc, etc. */ 179 180 dcl ( 181 sbdehv_p_error_exit label variable, 182 sbdehv_p_operation char (*), 183 sbdehv_p_check_for_recursive_invocation 184 bit (1) aligned 185 ) parameter; 186 187 if sbdehv_p_check_for_recursive_invocation then 188 if bjm_data_$bj_operation ^= "" then 189 call ERROR_RETURN (dm_error_$bj_recursive_invoc); 190 191 bjm_clean_up_needed = "1"b; 192 bjm_data_$bj_exit_err = sbdehv_p_error_exit; 193 bjm_data_$bj_operation = sbdehv_p_operation; 194 bjm_data_$bj_code = 0; 195 196 return; 197 198 end SET_BJM_DATA_ERROR_HANDLING_VALUES; 199 200 CHECK_VERSION_NUMERIC: 201 proc (cvn_p_given_version, cvn_p_correct_version, cvn_p_error_to_use); 202 203 /* The error code to use is passed as this is really a template proc */ 204 /* used in several modules to check structure versions. It is hoped */ 205 /* newer versions of these structures will be changed to use */ 206 /* char (8) versions. */ 207 208 dcl ( 209 cvn_p_given_version fixed bin, 210 cvn_p_correct_version fixed bin, 211 cvn_p_error_to_use fixed bin (35) 212 ) parameter; 213 214 if cvn_p_given_version ^= cvn_p_correct_version then 215 call ERROR_RETURN (cvn_p_error_to_use); 216 217 end CHECK_VERSION_NUMERIC; 218 1 1 /* BEGIN INCLUDE FILE: dm_bj_ppt.incl.pl1 */ 1 2 /* 1 3*Layout of the per-process before journal table and entries. 1 4* 1 5*Written by Andre Bensoussan June/July 1982 1 6*Modified: 1 7*09/29/82 by Lee A. Newcomb: To make two default oid cells, pad ppte's 1 8* to account for all used space, and use dm_system_data_ for 1 9* determining dimension of bj_ppt.e. 1 10**/ 1 11 /* format: style4,indattr,idind33,^indcomtxt */ 1 12 1 13 dcl BJ_PPT_VERSION_1 fixed bin int static options (constant) init (1); 1 14 dcl BJ_PPTE_VERSION_1 fixed bin int static options (constant) init (1); 1 15 1 16 dcl bj_ppt_ptr ptr; 1 17 1 18 dcl 1 bj_ppt based (bj_ppt_ptr) aligned, 1 19 2 version fixed bin, 1 20 2 max_n_entries fixed bin, /* should be = dm_system_data_$bj_max_n_journals */ 1 21 2 n_entries_used fixed bin, /* # of BJs open in this process */ 1 22 2 highest_ix_used fixed bin, /* max. # of BJs ever opened in this process */ 1 23 2 default_bj, /* for selecting a txn def. BJ by write_before_mark protocol */ 1 24 3 user_set_oid bit (36), /* explicit user setting via $set_default_bj */ 1 25 3 last_opened_oid bit (36), /* implicit if no user setting, set by open and close */ 1 26 /* if both zero, use system default BJ */ 1 27 2 process_id bit (36), /* so we don't have to keep calling for it. */ 1 28 2 process_ix fixed bin, /* index into bj_check_in_table */ 1 29 2 mod_list_area (100) fixed bin (35), /* for keeping track of ppt mods, not curr. used */ 1 30 1 31 2 e dim (dm_system_data_$bj_max_n_journals refer (bj_ppt.max_n_entries)) 1 32 like bj_ppte; /* an entry for each BJ open in this process */ 1 33 /* always make sure bj_ppt.e is on a even word boundary */ 1 34 1 35 /* now specify the format of each per-process BJ table entry */ 1 36 1 37 dcl bj_ppte_ptr ptr; 1 38 1 39 dcl 1 bj_ppte based (bj_ppte_ptr) aligned, 1 40 2 version fixed bin, /* better be the same for all entries in a bj_ppt */ 1 41 2 bj_uid bit (36), /* UID of the BJ page file */ 1 42 2 pf_oid bit (36), /* OID of the BJ page file */ 1 43 2 n_opening fixed bin, /* how many openings this process has done for this BJ */ 1 44 2 bj_pste_ptr ptr, /* "link" to per-system BJ table entry */ 1 45 2 open_time fixed bin (71); /* used to fill in bj_ppt.default_bj.last_opened_oid */ 1 46 /* if the last opened BJ is closed */ 1 47 1 48 /* END INCLUDE FILE: bj_ppt.incl.pl1 */ 219 220 2 1 /* BEGIN INCLUDE FILE: dm_bj_pst.incl.pl1 */ 2 2 /* 2 3*Layout of the before journal per-system table header and BJ table entries. 2 4* 2 5*Written by Andre Bensoussan 06-15-1982 2 6*Modified: 2 7*09/29/82 by Lee A. Newcomb: To use dm_system_data_ for determining 2 8* dimension of bj_pst.e and force bj_pst.mod_list_area and 2 9* bj_pst.e to even word boundaries. 2 10*04/27/82 by M. Pandolf: To add meter space by cutting away from mod_list_area. 2 11**/ 2 12 /* format: style4,indattr,idind33,^indcomtxt */ 2 13 2 14 dcl BJ_PST_VERSION_1 fixed bin internal static options (constant) init (1); 2 15 2 16 dcl bj_pst_ptr ptr; 2 17 2 18 dcl 1 bj_pst based (bj_pst_ptr) aligned, 2 19 2 version fixed bin, 2 20 2 pad1 bit (36), 2 21 2 lock, 2 22 3 pid bit (36), /* process_id holding lock */ 2 23 3 event bit (36), 2 24 2 time_of_bootload fixed bin (71), /* for ease of access */ 2 25 2 max_n_entries fixed bin, /* as determined from dm_system_data_$bj_max_n_journals */ 2 26 2 n_entries_used fixed bin, /* current # of BJs open on the system */ 2 27 2 highest_ix_used fixed bin, /* max. # of BJs that has ever been open of the system */ 2 28 2 pn_table_offset fixed bin (18) uns, /* relative offset of bj_pn_table in bj_pst seg. */ 2 29 2 check_in_table_offset fixed bin (18) uns, /* ditto for bj_check_in_table */ 2 30 2 buffer_table_offset fixed bin (18) uns, /* ditto for where our BJ buffers are located */ 2 31 2 max_n_buffers fixed bin, /* must be <= to max_n_entries */ 2 32 2 pad2 bit (36), /* force next on even word boundary */ 2 33 2 meters, /* dim (50) fixed bin (71), */ 2 34 3 n_calls_begin_txn fixed bin (71), /* meter (1) */ 2 35 3 n_calls_before_image fixed bin (71), /* meter (2) */ 2 36 3 n_calls_abort fixed bin (71), /* meter (3) */ 2 37 3 n_calls_commit fixed bin (71), /* meter (4) */ 2 38 3 n_calls_rb_mark fixed bin (71), /* meter (5) */ 2 39 3 n_calls_fm_pc_mark fixed bin (71), /* meter (6) */ 2 40 3 n_calls_fm_rbh fixed bin (71), /* meter (7) */ 2 41 3 n_calls_rollback fixed bin (71), /* meter (8) */ 2 42 3 meter dim (9:50) fixed bin (71), /* meter (9) - meter (50) */ 2 43 2 mod_list_area (100) fixed bin (35), /* for keeping track of pst mods */ 2 44 2 45 2 e dim (dm_system_data_$bj_max_n_journals refer (bj_pst.max_n_entries)) 2 46 like bj_pste; /* per system BJ table entries */ 2 47 2 48 2 49 /* END INCLUDE FILE: dm_bj_pst.incl.pl1 */ 221 222 3 1 /* BEGIN INCLUDE FILE: dm_bj_pste.incl.pl1 */ 3 2 3 3 /* DESCRIPTION 3 4* 3 5* Layout of the per-system before journal table 3 6* entries. This structure is used to contain information 3 7* about a before journal active in a running DMS. It is 3 8* currently also used as the header of a before journal 3 9* (see dm_bj_header.incl.pl1). Version changes to this 3 10* structure require either automatic conversion to be set 3 11* up, or users to be told to re-create their journals. 3 12* 3 13* Currently, a bj_pste must be 64 words long; any 3 14* future changes must at least make sure a bj_pste is an 3 15* even # of words for the alignment of some of its 3 16* elements. 3 17**/ 3 18 3 19 /* HISTORY: 3 20* 3 21*Written by Andre Bensoussan, 06/15/82. 3 22*Modified: 3 23*08/16/82 by Andre Bensoussan: to add stamp_for_last_ci_put. 3 24*09/29/82 by Lee A. Newcomb: to fix BJ_PSTE_VERSION_1 and fix some 3 25* alignments. 3 26*11/01/82 by Andre Bensoussan: to add "stamp_for_last_ci_on_disk", 3 27* "n_bi_still_unsafe", and "n_bi_being_saved". 3 28*02/08/83 by M. Pandolf: to add append_state structure. 3 29*03/19/83 by L. A. Newcomb: to fix up some alignments and spelling problems. 3 30*04/27/83 by M. Pandolf: to add meter structure at end. 3 31*02/11/85 by Lee A. Newcomb: Fixed version constant name to agree with its 3 32* value of 2; fixed references to page files or PF's; fixed format 3 33* of description and history sections. 3 34*03/07/85 by Lee A. Newcomb: Changed a pad word to be txn_storage_limit and 3 35* expanded on the description for future generations (no 3 36* version was made). 3 37*03/27/85 by Lee A. Newcomb: Changed one of the unused meters to 3 38* n_txn_storage_limit_hits (again without a version change). 3 39**/ 3 40 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 3 41 3 42 dcl BJ_PSTE_VERSION_2 fixed bin internal static 3 43 options (constant) init (2); 3 44 3 45 dcl bj_pste_ptr ptr; 3 46 3 47 /* MUST HAVE EVEN NUMBER OR WORDS */ 3 48 dcl 1 bj_pste based (bj_pste_ptr) aligned, 3 49 2 version fixed bin, 3 50 2 bj_ix fixed bin, /* Index of this entry in bj_pst table */ 3 51 2 lock aligned, 3 52 3 pid bit (36), /* process ID of lock owner */ 3 53 3 event bit (36), 3 54 2 bj_uid bit (36), /* UID of BJ file */ 3 55 2 ci_size fixed bin, /* In number of bytes */ 3 56 2 max_size fixed bin, /* In number of ci's */ 3 57 2 active bit (1) aligned, /* 0 means journal not being used */ 3 58 2 time_header_updated fixed bin (71), 3 59 2 earliest_meaningful_time fixed bin (71), /* time stamp on first valid control interval */ 3 60 2 update_frequency fixed bin, /* Not used yet, probably will be how many CIs */ 3 61 2 last_rec_id bit (36), /* rec id of the last logical record in journal */ 3 62 2 n_processes fixed bin, /* Number of processes using this BJ */ 3 63 2 n_txn fixed bin, /* Number of txn in progress using this BJ */ 3 64 2 last_ci_info aligned, 3 65 3 last_ci_buffered fixed bin (24) uns, /* Last ci encached in the buffer */ 3 66 3 last_ci_put fixed bin (24) uns, /* Last ci put in the BJ */ 3 67 3 last_ci_flushed fixed bin (24) uns, /* Last ci for which flush initiated */ 3 68 3 last_ci_on_disk fixed bin (24) uns, /* Last ci of that portion of the BJ known to be ... */ 3 69 /* .. completely on disk */ 3 70 3 stamp_for_last_ci_put fixed bin (71), /* Time stamp associated with the last ci put in the BJ */ 3 71 3 stamp_for_last_ci_on_disk fixed bin (71), /* Time stamp associated with the last ci on disk in the BJ */ 3 72 2 n_bi_still_unsafe fixed bin, /* number of bi's still not on disk */ 3 73 2 n_bi_being_saved fixed bin, /* number of bi's for which flush initiated */ 3 74 2 buffer_offset fixed bin (18) uns, /* Now allocated in the bj_pst segment */ 3 75 2 txn_storage_limit fixed bin (35), /* # of bytes a single txn may write */ 3 76 2 cl aligned, /* Circular List */ 3 77 3 origin_ci fixed bin (24) uns, 3 78 3 lowest_ci fixed bin (24) uns, 3 79 3 highest_ci fixed bin (24) uns, 3 80 3 number_ci fixed bin (24) uns, 3 81 2 append_state aligned, 3 82 3 current_operation char (4), /* equal to "appe" when append in progress */ 3 83 3 pending_n_txn fixed bin, /* n_txn value when append done */ 3 84 3 pending_last_rec_id bit (36), /* last_rec_id value after append done */ 3 85 3 pending_last_element_id bit (36), /* last element id after append done */ 3 86 3 txte_rec_id_relp bit (18), /* rel ptr into seg containing TXT for txte.pending_bj_rec_id */ 3 87 2 pad_to_even_word1 bit (36) aligned, 3 88 2 meters aligned, /* dim (10) fixed bin (71), */ 3 89 3 n_bi_written fixed bin (71), /* meter (1) */ 3 90 3 n_bi_bytes_written fixed bin (71), /* meter (2) */ 3 91 3 n_journal_full fixed bin (71), /* meter (3) */ 3 92 3 n_successful_recycles fixed bin (71), /* meter (4) */ 3 93 3 n_ci_recycled fixed bin (71), /* meter (5) */ 3 94 3 n_txn_started fixed bin (71), /* meter (6) */ 3 95 3 n_non_null_txn fixed bin (71), /* meter (7) */ 3 96 3 n_txn_storage_limit_hits fixed bin (71), /* meter (8) */ 3 97 3 meter (9:10) fixed bin (71), 3 98 /* meter (9) - meter (10) */ 3 99 2 pad_to_64_words (6) bit (36); /* 64 is even (see below) */ 3 100 3 101 3 102 /* END INCLUDE FILE: dm_bj_pste.incl.pl1 */ 223 224 4 1 /* BEGIN INCLUDE FILE: dm_bj_pn_table.incl.pl1 */ 4 2 /* 4 3*This vector relates a BJ UID to its pathname. 4 4* 4 5*Written by Andre Bensoussan June/July 1982 4 6*Modified: 4 7*09/29/82 by Lee A. Newcomb: To make word aligned, convert to use 4 8* dm_system_data_$bj_max_n_journals, and store max_n_entries 4 9* for use with crash recovery. 4 10**/ 4 11 /* format: style4,indattr,idind33,^indcomtxt */ 4 12 4 13 dcl bj_pn_table_ptr ptr; 4 14 4 15 dcl 1 bj_pn_table based (bj_pn_table_ptr) aligned, 4 16 2 max_n_entries fixed bin, /* know how long the table is for crash recovery */ 4 17 2 bj_path_to_uid_relation dim (dm_system_data_$bj_max_n_journals refer (bj_pn_table.max_n_entries)), 4 18 3 dir char (168), 4 19 3 entry char (32), 4 20 3 bj_uid bit (36); 4 21 4 22 /* END INCLUDE FILE: dm_bj_pn_table.incl.pl1 */ 225 226 5 1 /* BEGIN INCLUDE FILE dm_bj_global_error_info.incl.pl1 */ 5 2 5 3 /* Originally found in before journal primitives written by */ 5 4 /* A. Bensoussan. Gathered into an include file for ease of use. */ 5 5 /* See the bjm_data_.alm source for details of use. */ 5 6 5 7 /* HISTORY: 5 8*Written by Mike Pandolf, 07/14/82. 5 9*Modified: 5 10*12/06/83 by L. A. Newcomb: Renamed before_journal_manager_static_ to 5 11* bjm_data_ and moved some cells from dm_data_ to bjm_data_. 5 12**/ 5 13 5 14 /* format: style4,indattr,ifthenstmt,ifthen,^indcomtxt,idind33 */ 5 15 dcl bjm_data_$bj_operation char (32) external static; 5 16 5 17 dcl bjm_data_$bj_exit_err label variable external; 5 18 5 19 dcl bjm_data_$bj_code fixed bin (35) external; 5 20 5 21 dcl bjm_data_$bj_default_error_label label external static; 5 22 5 23 5 24 /* END INCLUDE FILE dm_bj_global_error_info.incl.pl1 */ 227 228 229 230 end bjm_get_bj_path_from_oid; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0826.3 bjm_get_bj_path_from_oid.pl1 >spec>on>7192.pbf-04/04/85>bjm_get_bj_path_from_oid.pl1 219 1 01/07/85 0857.6 dm_bj_ppt.incl.pl1 >ldd>include>dm_bj_ppt.incl.pl1 221 2 01/07/85 0857.7 dm_bj_pst.incl.pl1 >ldd>include>dm_bj_pst.incl.pl1 223 3 04/04/85 0819.1 dm_bj_pste.incl.pl1 >spec>on>7192.pbf-04/04/85>dm_bj_pste.incl.pl1 225 4 01/07/85 0857.4 dm_bj_pn_table.incl.pl1 >ldd>include>dm_bj_pn_table.incl.pl1 227 5 01/07/85 0857.3 dm_bj_global_error_info.incl.pl1 >ldd>include>dm_bj_global_error_info.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. BJ_PPTE_VERSION_1 000023 constant fixed bin(17,0) initial dcl 1-14 set ref 106* BJ_PSTE_VERSION_2 000022 constant fixed bin(17,0) initial dcl 3-42 set ref 110* BJ_PST_VERSION_1 000023 constant fixed bin(17,0) initial dcl 2-14 set ref 115* CHECK_FOR_BJM_RECURSION 000011 constant bit(1) initial dcl 58 set ref 98* DONT_CHECK_FOR_BJM_RECURSION 000016 constant bit(1) initial dcl 58 set ref 138* ME 000000 constant char(32) initial unaligned dcl 58 set ref 98* bj_cleanup_tables$handler 000010 constant entry external dcl 66 ref 159 bj_ix 1 based fixed bin(17,0) level 2 dcl 3-48 ref 123 124 bj_oid 000100 automatic bit(36) initial dcl 45 set ref 45* 89* 105* bj_oid_util$get_ptr 000012 constant entry external dcl 66 ref 105 bj_path_to_uid_relation 1 based structure array level 2 dcl 4-15 bj_pn_table based structure level 1 dcl 4-15 bj_pn_table_ptr 000114 automatic pointer dcl 4-13 set ref 117* 123 124 bj_ppte based structure level 1 dcl 1-39 bj_ppte_ptr 000110 automatic pointer dcl 1-37 set ref 105* 106 109 bj_pst based structure level 1 dcl 2-18 bj_pst_search 000014 constant entry external dcl 66 ref 109 bj_pste based structure level 1 dcl 3-48 bj_pste_ptr 000112 automatic pointer dcl 3-45 set ref 109* 110 123 124 bj_uid 1 based bit(36) level 2 dcl 1-39 ref 109 bjm_clean_up_needed 000101 automatic bit(1) initial dcl 45 set ref 45* 159 191* bjm_data_$bj_code 000034 external static fixed bin(35,0) dcl 5-19 set ref 132* 194* bjm_data_$bj_default_error_label 000036 external static label variable dcl 5-21 set ref 138* bjm_data_$bj_exit_err 000032 external static label variable dcl 5-17 set ref 192* bjm_data_$bj_operation 000030 external static char(32) unaligned dcl 5-15 set ref 187 193* bjm_data_$bj_pst_ptr 000016 external static pointer dcl 73 ref 115 117 117 cleanup 000102 stack reference condition dcl 55 ref 97 cvn_p_correct_version parameter fixed bin(17,0) dcl 208 ref 200 214 cvn_p_error_to_use parameter fixed bin(35,0) dcl 208 set ref 200 214* cvn_p_given_version parameter fixed bin(17,0) dcl 208 ref 200 214 dir 1 based char(168) array level 3 dcl 4-15 ref 123 dm_error_$bj_bad_ppte_version 000020 external static fixed bin(35,0) dcl 73 set ref 106* dm_error_$bj_bad_pst_version 000022 external static fixed bin(35,0) dcl 73 set ref 115* dm_error_$bj_bad_pste_version 000024 external static fixed bin(35,0) dcl 73 set ref 110* dm_error_$bj_recursive_invoc 000026 external static fixed bin(35,0) dcl 73 set ref 187* entry 53 based char(32) array level 3 dcl 4-15 ref 124 er_p_code parameter fixed bin(35,0) dcl 148 ref 145 151 p_bj_dir parameter char unaligned dcl 37 set ref 31 90* 123* p_bj_entry parameter char unaligned dcl 37 set ref 31 91* 124* p_bj_oid parameter bit(36) dcl 37 ref 31 89 p_code parameter fixed bin(35,0) dcl 37 set ref 31 92* 151* pn_table_offset 11 based fixed bin(18,0) level 2 unsigned dcl 2-18 ref 117 ptr builtin function dcl 52 ref 117 sbdehv_p_check_for_recursive_invocation parameter bit(1) dcl 180 ref 168 187 sbdehv_p_error_exit parameter label variable dcl 180 ref 168 192 sbdehv_p_operation parameter char unaligned dcl 180 ref 168 193 version based fixed bin(17,0) level 2 in structure "bj_pst" dcl 2-18 in procedure "bjm_get_bj_path_from_oid" set ref 115* version based fixed bin(17,0) level 2 in structure "bj_ppte" dcl 1-39 in procedure "bjm_get_bj_path_from_oid" set ref 106* version based fixed bin(17,0) level 2 in structure "bj_pste" dcl 3-48 in procedure "bjm_get_bj_path_from_oid" set ref 110* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BJ_PPT_VERSION_1 internal static fixed bin(17,0) initial dcl 1-13 bj_ppt based structure level 1 dcl 1-18 bj_ppt_ptr automatic pointer dcl 1-16 bj_pst_ptr automatic pointer dcl 2-16 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION_NUMERIC 000455 constant entry internal dcl 200 ref 106 110 115 CLEAN_UP 000351 constant entry internal dcl 156 ref 97 150 COPY_AND_INIT_PARAMETERS 000057 constant label dcl 87 ERROR_RETURN 000326 constant entry internal dcl 145 ref 132 187 214 FINISH 000276 constant entry internal dcl 135 ref 127 162 GET_BJ_TABLE_PTRS 000142 constant label dcl 103 MAIN_RETURN 000264 constant label dcl 129 ref 152 NONLOCAL_ERROR_EXIT 000265 constant label dcl 132 ref 98 98 SETUP_FOR_NON_STANDARD_EXIT 000075 constant label dcl 95 SET_BJM_DATA_ERROR_HANDLING_VALUES 000377 constant entry internal dcl 168 ref 98 138 SET_OUTPUT_PARAMETERS 000240 constant label dcl 121 bjm_get_bj_path_from_oid 000035 constant entry external dcl 31 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 726 766 471 736 Length 1276 471 40 274 234 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bjm_get_bj_path_from_oid 114 external procedure is an external procedure. on unit on line 97 64 on unit FINISH 82 internal procedure is called by several nonquick procedures. ERROR_RETURN 64 internal procedure is called by several nonquick procedures. CLEAN_UP 70 internal procedure is called by several nonquick procedures. SET_BJM_DATA_ERROR_HANDLING_VALUES 72 internal procedure is called by several nonquick procedures. CHECK_VERSION_NUMERIC internal procedure shares stack frame of external procedure bjm_get_bj_path_from_oid. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bjm_get_bj_path_from_oid 000100 bj_oid bjm_get_bj_path_from_oid 000101 bjm_clean_up_needed bjm_get_bj_path_from_oid 000110 bj_ppte_ptr bjm_get_bj_path_from_oid 000112 bj_pste_ptr bjm_get_bj_path_from_oid 000114 bj_pn_table_ptr bjm_get_bj_path_from_oid THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return tra_ext enable ext_entry_desc int_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. bj_cleanup_tables$handler bj_oid_util$get_ptr bj_pst_search THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. bjm_data_$bj_code bjm_data_$bj_default_error_label bjm_data_$bj_exit_err bjm_data_$bj_operation bjm_data_$bj_pst_ptr dm_error_$bj_bad_ppte_version dm_error_$bj_bad_pst_version dm_error_$bj_bad_pste_version dm_error_$bj_recursive_invoc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 31 000030 45 000055 89 000057 90 000062 91 000067 92 000074 97 000075 98 000117 105 000142 106 000153 109 000166 110 000202 115 000215 117 000231 123 000240 124 000252 127 000260 129 000264 132 000265 230 000274 135 000275 138 000303 141 000324 145 000325 150 000333 151 000340 152 000345 156 000350 159 000356 162 000370 164 000375 168 000376 187 000412 191 000432 192 000435 193 000445 194 000453 196 000454 200 000455 214 000457 217 000470 ----------------------------------------------------------- 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