COMPILATION LISTING OF SEGMENT before_journal_status Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0930.2 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* before_journal_status - command level interface to bjm_get_journal_status. 10* meant to supply information about a particular journal, about all journals 11* opened in the caller's process, or about all journals opened in the system. 12* no attempt is made to find unused journals. 13* 14* usage: 15* bjst [JNL_PATH1 ... JNL_PATHn] [-long] [-brief] [-all] 16**/ 17 18 /* HISTORY: 19*Written by M. Pandolf, 04/01/83. 20*Modified: 21*07/01/83 by M. Pandolf: to process the -all control arg and to report 22* size for -bf option 23*12/13/84 by R. Michael Tague: Fixed DESCRIPTION AND HISTORY section, made 24* variables used in internal procedure declared locally, and fixed up 25* because of audit comments. 26*12/17/84 by R. Michael Tague: Changed to use pathname_ to display bj pathname. 27* Fixed to: not report activity information for an inactive before 28* journal, not output the unsupported "earliest_meaningful_time" 29* (time first record written), use correct parameter names on 30* internal procs, correctly calculate n_ci_used if the journal's 31* origin is <= current buffered CI, and free the bj_status and 32* bj_global_meters structures if cleanup is done; also changed to 33* use init clauses on many automatic variables. 34*03/20/85 by S. Cox: Added dm_not_available_ handler, and ERROR_RETURN. 35*03/20/85 by Lee A. Newcomb: To output per-transaction storage limit in brief 36* info. 37**/ 38 39 /* format: style2 */ 40 41 before_journal_status: 42 bjst: 43 procedure () options (variable); 44 45 /* DECLARATIONS */ 46 47 /* Automatic */ 48 49 dcl area_ptr pointer init (null); 50 dcl arg_count fixed bin; 51 dcl arg_len fixed bin (21); 52 dcl arg_no fixed bin; 53 dcl arg_ptr pointer; 54 dcl bj_dir char (168) init (""); 55 dcl bj_entry char (32) init (""); 56 dcl bj_ix fixed bin init (0); 57 dcl code fixed bin (35) init (0); 58 dcl freeing_in_progress bit (1) aligned init (""b); 59 /* for cleanup */ 60 dcl last_ci_put_time char (20); 61 dcl last_ci_disk_time char (20); 62 dcl path_count fixed bin init (0); 63 dcl report_format fixed bin init (DEFAULT_FORMAT); 64 dcl journal_group char (8) init (PER_PROCESS); 65 66 /* Based */ 67 68 dcl arg char (arg_len) based (arg_ptr); 69 70 /* Builtin */ 71 dcl null builtin; 72 dcl substr builtin; 73 dcl unspec builtin; 74 75 /* Condition */ 76 77 dcl (cleanup, dm_not_available_) 78 condition; 79 80 /* Constant */ 81 82 dcl ( 83 BRIEF_FORMAT init (-1), 84 DEFAULT_FORMAT init (0), 85 LONG_FORMAT init (1) 86 ) fixed bin internal static options (constant); 87 dcl MY_NAME char (32) internal static options (constant) init ("before_journal_status"); 88 dcl NOT_DONE char (20) internal static options (constant) init ("not yet performed"); 89 dcl ( 90 PER_PROCESS init ("process"), 91 PER_SYSTEM init ("system") 92 ) char (8) internal static options (constant); 93 94 /* Entry */ 95 96 dcl before_journal_manager_$get_journal_status 97 entry (char (*), char (*), ptr, ptr, ptr, fixed bin (35)); 98 dcl com_err_ entry () options (variable); 99 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 100 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 101 dcl date_time_ entry (fixed bin (71), char (*)); 102 dcl expand_pathname_$add_suffix 103 entry (char (*), char (*), char (*), char (*), fixed bin (35)); 104 dcl get_dm_free_area_ entry () returns (ptr); 105 dcl ioa_ entry () options (variable); 106 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 107 108 /* External */ 109 110 dcl dm_error_$system_not_initialized 111 fixed bin (35) ext static; 112 dcl error_table_$bad_arg fixed bin (35) ext static; 113 114 /* END DECLARATIONS */ 115 116 on dm_not_available_ 117 begin; 118 call com_err_ (dm_error_$system_not_initialized, MY_NAME); 119 call ERROR_RETURN; 120 end; 121 122 /* make a quick run through the arg list looking for control args */ 123 124 call cu_$arg_count (arg_count, code); 125 if code ^= 0 126 then do; 127 call com_err_ (code, MY_NAME); 128 call ERROR_RETURN; 129 end; 130 131 /* analyze the args, by validating control args and counting journal paths */ 132 133 do arg_no = 1 to arg_count; 134 call cu_$arg_ptr (arg_no, arg_ptr, arg_len, code); 135 if (arg = "-long") | (arg = "-lg") 136 then report_format = LONG_FORMAT; 137 else if (arg = "-brief") | (arg = "-bf") 138 then report_format = BRIEF_FORMAT; 139 else if (arg = "-all") | (arg = "-a") 140 then journal_group = PER_SYSTEM; 141 else if substr (arg, 1, 1) = "-" 142 then do; 143 call com_err_ (error_table_$bad_arg, MY_NAME, "^/The argument is ""^a"".", arg); 144 call ERROR_RETURN; 145 end; 146 else path_count = path_count + 1; 147 end; 148 149 /* make a second pass through the args looking for path names */ 150 151 area_ptr = get_dm_free_area_ (); 152 bj_status_ptr, bj_global_meters_ptr = null (); 153 on cleanup call CLEAN_UP (); 154 155 if path_count < 1 /* user wants active journals summary */ 156 then do; 157 call before_journal_manager_$get_journal_status ("", journal_group, area_ptr, bj_status_ptr, 158 bj_global_meters_ptr, code); 159 if code ^= 0 160 then do; 161 call com_err_ (code, MY_NAME); 162 call ERROR_RETURN; 163 end; 164 else do bj_ix = 1 to bj_status.n_journals; 165 call PRINT_ONE_JOURNAL (bj_ix); 166 end; 167 if bj_status.n_journals = 0 168 then call ioa_ ("There are no journals currently being used."); 169 freeing_in_progress = "1"b; 170 free bj_status_ptr -> bj_status; 171 free bj_global_meters_ptr -> bj_global_meters; 172 bj_status_ptr, bj_global_meters_ptr = null (); 173 freeing_in_progress = ""b; 174 end; 175 else do arg_no = 1 to arg_count; 176 call cu_$arg_ptr (arg_no, arg_ptr, arg_len, code); 177 if substr (arg, 1, 1) ^= "-" 178 then do; 179 180 call expand_pathname_$add_suffix (arg, "bj", bj_dir, bj_entry, code); 181 if code ^= 0 182 then do; 183 INVALID_JOURNAL_ARG: 184 call com_err_ (code, MY_NAME, "^/Supplied journal pathname is ""^a"".", arg); 185 call ERROR_RETURN; 186 end; 187 188 call before_journal_manager_$get_journal_status (bj_dir, bj_entry, area_ptr, bj_status_ptr, 189 bj_global_meters_ptr, code); 190 if code ^= 0 191 then goto INVALID_JOURNAL_ARG; 192 else do; 193 call PRINT_ONE_JOURNAL (1); 194 freeing_in_progress = "1"b; 195 free bj_status_ptr -> bj_status; 196 free bj_global_meters_ptr -> bj_global_meters; 197 bj_status_ptr, bj_global_meters_ptr = null (); 198 freeing_in_progress = ""b; 199 end; 200 201 end; 202 end; 203 MAIN_RETURN: 204 return; 205 206 ERROR_RETURN: 207 proc (); 208 209 goto MAIN_RETURN; 210 end; 211 212 PRINT_ONE_JOURNAL: 213 procedure (poj_p_status_index); 214 215 dcl poj_p_status_index fixed bin; 216 217 dcl poj_index fixed bin; 218 dcl poj_first_record_time char (20); 219 dcl poj_header_update_time char (20); 220 dcl poj_n_ci_used fixed bin (35); 221 222 223 poj_index = poj_p_status_index; 224 225 PRINT_BRIEF_INFORMATION: 226 do; 227 call ioa_ ("^/pathname:^31t^a^/journal uid:^31t^12.3b^/activity:^31t^[not ^]in use", 228 pathname_ ((bj_status.journal (poj_index).dir), (bj_status.journal (poj_index).entry)), 229 bj_status.system_info (poj_index).bj_uid, ^bj_status.system_info (poj_index).active); 230 231 call ioa_ ("control interval size:^31t^i bytes^/control intervals:^31t^i", 232 bj_status.system_info (poj_index).ci_size, bj_status.system_info (poj_index).max_size); 233 call ioa_ ("transaction storage limit:^31t^i bytes", bj_status.system_info (poj_index).txn_storage_limit); 234 end PRINT_BRIEF_INFORMATION; 235 236 237 if report_format ^= BRIEF_FORMAT & bj_status.system_info (poj_index).active 238 then 239 PRINT_DEFAULT_INFORMATION_NEXT: 240 do; 241 242 if bj_status.system_info (poj_index).last_ci_buffered >= bj_status.system_info (poj_index).origin_ci 243 then poj_n_ci_used = 244 bj_status.system_info (poj_index).last_ci_buffered 245 - bj_status.system_info (poj_index).origin_ci + 1; 246 else poj_n_ci_used = 247 (bj_status.system_info (poj_index).highest_ci - bj_status.system_info (poj_index).origin_ci) 248 + 1 + bj_status.system_info (poj_index).last_ci_buffered; 249 250 call ioa_ ("control intervals used:^31t^i", poj_n_ci_used); 251 252 call ioa_ ( 253 "last control interval^/^11tbuffered:^31t^i^/^11tput:^31t^i^/^11tflushed:^31t^i^/^11ton disk:^31t^i", 254 unspec (bj_status.system_info (poj_index).last_ci_buffered), 255 unspec (bj_status.system_info (poj_index).last_ci_put), 256 unspec (bj_status.system_info (poj_index).last_ci_flushed), 257 unspec (bj_status.system_info (poj_index).last_ci_on_disk)); 258 end PRINT_DEFAULT_INFORMATION_NEXT; 259 260 if report_format = LONG_FORMAT 261 then 262 PRINT_LONG_FORMAT_INFORMATION: 263 do; 264 265 if bj_status.system_info (poj_index).time_header_updated = 0 266 then poj_header_update_time = NOT_DONE; 267 else call date_time_ (bj_status.system_info (poj_index).time_header_updated, poj_header_update_time); 268 269 if bj_status.system_info (poj_index).active 270 then do; 271 if bj_status.system_info (poj_index).stamp_for_last_ci_put = 0 272 then last_ci_put_time = NOT_DONE; 273 else call date_time_ (bj_status.system_info (poj_index).stamp_for_last_ci_put, 274 last_ci_put_time); 275 276 if bj_status.system_info (poj_index).stamp_for_last_ci_on_disk = 0 277 then last_ci_disk_time = NOT_DONE; 278 else call date_time_ (bj_status.system_info (poj_index).stamp_for_last_ci_on_disk, 279 last_ci_disk_time); 280 281 call ioa_ ("time last control interval^/^11tqueued:^31t^20a^/^11twritten:^31t^20a", 282 last_ci_put_time, last_ci_disk_time); 283 end; 284 285 call ioa_ ("time header updated:^31t^20a", poj_header_update_time); 286 if bj_status.system_info (poj_index).active 287 then do; 288 call ioa_ ("last record id:^31t^12.3b", bj_status.system_info (poj_index).last_rec_id); 289 290 call ioa_ ("images not on disk:^31t^i^/images being flushed:^31t^i", 291 bj_status.system_info (poj_index).n_bi_still_unsafe, 292 bj_status.system_info (poj_index).n_bi_being_saved); 293 294 call ioa_ ("users:^31t^i^/transactions:^31t^i", 295 bj_status.system_info (poj_index).n_processes, bj_status.system_info (poj_index).n_txn) 296 ; 297 end; 298 end PRINT_LONG_FORMAT_INFORMATION; 299 300 return; 301 302 end PRINT_ONE_JOURNAL; 303 304 CLEAN_UP: 305 proc (); 306 307 /* Try to free the bj_status and bj_global_meters structures. */ 308 /* If the freeing_in_progress indicator is on, then we do */ 309 /* nothing so as to not attempt a double free. */ 310 311 if ^freeing_in_progress 312 then do; 313 if bj_status_ptr ^= null () 314 then free bj_status; 315 if bj_global_meters_ptr ^= null () 316 then free bj_global_meters; 317 end; 318 319 end CLEAN_UP; 320 1 1 /* BEGIN INCLUDE FILE dm_bj_status.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* 1 5* This include is used to pass the status of a before journal or the 1 6* BJ meters to users. Any program using this include file must also 1 7* include dm_bj_pst.incl.pl1 and dm_bj_pste.incl.pl1. 1 8**/ 1 9 1 10 /* HISTORY: 1 11*Written by Mike Pandolf, 04/12/83. 1 12*Modified: 1 13*02/22/85 by Lee A. Newcomb: Added a description section and fixed the hisotry 1 14* section's format. 1 15**/ 1 16 1 17 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 1 18 1 19 dcl bj_status_n_journals fixed bin; 1 20 dcl bj_status_ptr pointer; 1 21 1 22 dcl 1 bj_status aligned based (bj_status_ptr), 1 23 2 n_journals fixed bin, 1 24 2 journal aligned 1 25 dim (bj_status_n_journals 1 26 refer (bj_status.n_journals)), 1 27 3 dir char (168), 1 28 3 entry char (32), 1 29 3 system_info aligned like bj_pste; 1 30 1 31 dcl bj_global_meters_ptr pointer; 1 32 1 33 dcl 1 bj_global_meters aligned based (bj_global_meters_ptr), 1 34 2 time_of_bootload fixed bin (71), 1 35 2 meters aligned like bj_pst.meters; 1 36 1 37 /* END INCLUDE FILE dm_bj_status.incl.pl1 */ 321 322 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 */ 323 324 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 */ 325 326 327 328 end before_journal_status; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0824.4 before_journal_status.pl1 >spec>on>7192.pbf-04/04/85>before_journal_status.pl1 321 1 04/04/85 0819.0 dm_bj_status.incl.pl1 >spec>on>7192.pbf-04/04/85>dm_bj_status.incl.pl1 323 2 01/07/85 0857.7 dm_bj_pst.incl.pl1 >ldd>include>dm_bj_pst.incl.pl1 325 3 04/04/85 0819.1 dm_bj_pste.incl.pl1 >spec>on>7192.pbf-04/04/85>dm_bj_pste.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. BRIEF_FORMAT 002042 constant fixed bin(17,0) initial dcl 82 ref 137 237 DEFAULT_FORMAT constant fixed bin(17,0) initial dcl 82 ref 63 LONG_FORMAT constant fixed bin(17,0) initial dcl 82 ref 135 260 MY_NAME 000011 constant char(32) initial unaligned dcl 87 set ref 118* 127* 143* 161* 183* NOT_DONE 000004 constant char(20) initial unaligned dcl 88 ref 265 271 276 PER_PROCESS 000002 constant char(8) initial unaligned dcl 89 ref 64 PER_SYSTEM 000000 constant char(8) initial unaligned dcl 89 ref 139 active 73 based bit(1) array level 4 dcl 1-22 ref 227 237 269 286 area_ptr 000100 automatic pointer initial dcl 49 set ref 49* 151* 157* 188* arg based char unaligned dcl 68 set ref 135 135 137 137 139 139 141 143* 177 180* 183* arg_count 000102 automatic fixed bin(17,0) dcl 50 set ref 124* 133 175 arg_len 000103 automatic fixed bin(21,0) dcl 51 set ref 134* 135 135 137 137 139 139 141 143 143 176* 177 180 180 183 183 arg_no 000104 automatic fixed bin(17,0) dcl 52 set ref 133* 134* 175* 176* arg_ptr 000106 automatic pointer dcl 53 set ref 134* 135 135 137 137 139 139 141 143 176* 177 180 183 before_journal_manager_$get_journal_status 000010 constant entry external dcl 96 ref 157 188 bj_dir 000110 automatic char(168) initial unaligned dcl 54 set ref 54* 180* 188* bj_entry 000162 automatic char(32) initial unaligned dcl 55 set ref 55* 180* 188* bj_global_meters based structure level 1 dcl 1-33 ref 171 196 315 bj_global_meters_ptr 000232 automatic pointer dcl 1-31 set ref 152* 157* 171 172* 188* 196 197* 315 315 bj_ix 000172 automatic fixed bin(17,0) initial dcl 56 set ref 56* 164* 165* bj_pst based structure level 1 dcl 2-18 bj_pste based structure level 1 dcl 3-48 bj_status based structure level 1 dcl 1-22 set ref 170 195 313 bj_status_ptr 000230 automatic pointer dcl 1-20 set ref 152* 157* 164 167 170 172* 188* 195 197* 227 227 227 227 227 227 231 231 233 237 242 242 242 242 246 246 246 252 252 252 252 252 252 252 252 265 267 269 271 273 276 278 286 288 290 290 294 294 313 313 bj_uid 70 based bit(36) array level 4 dcl 1-22 set ref 227* ci_size 71 based fixed bin(17,0) array level 4 dcl 1-22 set ref 231* cl 120 based structure array level 4 dcl 1-22 cleanup 000214 stack reference condition dcl 77 ref 153 code 000173 automatic fixed bin(35,0) initial dcl 57 set ref 57* 124* 125 127* 134* 157* 159 161* 176* 180* 181 183* 188* 190 com_err_ 000012 constant entry external dcl 98 ref 118 127 143 161 183 cu_$arg_count 000014 constant entry external dcl 99 ref 124 cu_$arg_ptr 000016 constant entry external dcl 100 ref 134 176 date_time_ 000020 constant entry external dcl 101 ref 267 273 278 dir 2 based char(168) array level 3 dcl 1-22 ref 227 227 dm_error_$system_not_initialized 000032 external static fixed bin(35,0) dcl 110 set ref 118* dm_not_available_ 000222 stack reference condition dcl 77 ref 116 entry 54 based char(32) array level 3 dcl 1-22 ref 227 227 error_table_$bad_arg 000034 external static fixed bin(35,0) dcl 112 set ref 143* expand_pathname_$add_suffix 000022 constant entry external dcl 102 ref 180 freeing_in_progress 000174 automatic bit(1) initial dcl 58 set ref 58* 169* 173* 194* 198* 311 get_dm_free_area_ 000024 constant entry external dcl 104 ref 151 highest_ci 122 based fixed bin(24,0) array level 5 unsigned dcl 1-22 ref 246 ioa_ 000026 constant entry external dcl 105 ref 167 227 231 233 250 252 281 285 288 290 294 journal 2 based structure array level 2 dcl 1-22 journal_group 000212 automatic char(8) initial unaligned dcl 64 set ref 64* 139* 157* last_ci_buffered 104 based fixed bin(24,0) array level 5 unsigned dcl 1-22 ref 242 242 246 252 252 last_ci_disk_time 000202 automatic char(20) unaligned dcl 61 set ref 276* 278* 281* last_ci_flushed 106 based fixed bin(24,0) array level 5 unsigned dcl 1-22 ref 252 252 last_ci_info 104 based structure array level 4 dcl 1-22 last_ci_on_disk 107 based fixed bin(24,0) array level 5 unsigned dcl 1-22 ref 252 252 last_ci_put 105 based fixed bin(24,0) array level 5 unsigned dcl 1-22 ref 252 252 last_ci_put_time 000175 automatic char(20) unaligned dcl 60 set ref 271* 273* 281* last_rec_id 101 based bit(36) array level 4 dcl 1-22 set ref 288* max_size 72 based fixed bin(17,0) array level 4 dcl 1-22 set ref 231* meters 16 based structure level 2 dcl 2-18 n_bi_being_saved 115 based fixed bin(17,0) array level 4 dcl 1-22 set ref 290* n_bi_still_unsafe 114 based fixed bin(17,0) array level 4 dcl 1-22 set ref 290* n_journals based fixed bin(17,0) level 2 dcl 1-22 ref 164 167 170 195 313 n_processes 102 based fixed bin(17,0) array level 4 dcl 1-22 set ref 294* n_txn 103 based fixed bin(17,0) array level 4 dcl 1-22 set ref 294* null builtin function dcl 71 ref 49 152 172 197 313 315 origin_ci 120 based fixed bin(24,0) array level 5 unsigned dcl 1-22 ref 242 242 246 path_count 000207 automatic fixed bin(17,0) initial dcl 62 set ref 62* 146* 146 155 pathname_ 000030 constant entry external dcl 106 ref 227 227 poj_header_update_time 000247 automatic char(20) unaligned dcl 219 set ref 265* 267* 285* poj_index 000246 automatic fixed bin(17,0) dcl 217 set ref 223* 227 227 227 227 227 227 231 231 233 237 242 242 242 242 246 246 246 252 252 252 252 252 252 252 252 265 267 269 271 273 276 278 286 288 290 290 294 294 poj_n_ci_used 000254 automatic fixed bin(35,0) dcl 220 set ref 242* 246* 250* poj_p_status_index parameter fixed bin(17,0) dcl 215 ref 212 223 report_format 000210 automatic fixed bin(17,0) initial dcl 63 set ref 63* 135* 137* 237 260 stamp_for_last_ci_on_disk 112 based fixed bin(71,0) array level 5 dcl 1-22 set ref 276 278* stamp_for_last_ci_put 110 based fixed bin(71,0) array level 5 dcl 1-22 set ref 271 273* substr builtin function dcl 72 ref 141 177 system_info 64 based structure array level 3 dcl 1-22 time_header_updated 74 based fixed bin(71,0) array level 4 dcl 1-22 set ref 265 267* txn_storage_limit 117 based fixed bin(35,0) array level 4 dcl 1-22 set ref 233* unspec builtin function dcl 73 ref 252 252 252 252 252 252 252 252 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BJ_PSTE_VERSION_2 internal static fixed bin(17,0) initial dcl 3-42 BJ_PST_VERSION_1 internal static fixed bin(17,0) initial dcl 2-14 bj_pst_ptr automatic pointer dcl 2-16 bj_pste_ptr automatic pointer dcl 3-45 bj_status_n_journals automatic fixed bin(17,0) dcl 1-19 poj_first_record_time automatic char(20) unaligned dcl 218 NAMES DECLARED BY EXPLICIT CONTEXT. CLEAN_UP 002005 constant entry internal dcl 304 ref 153 ERROR_RETURN 001220 constant entry internal dcl 206 ref 119 128 144 162 185 INVALID_JOURNAL_ARG 001077 constant label dcl 183 ref 190 MAIN_RETURN 001216 constant label dcl 203 ref 209 PRINT_BRIEF_INFORMATION 001234 constant label dcl 225 PRINT_DEFAULT_INFORMATION_NEXT 001415 constant label dcl 237 PRINT_LONG_FORMAT_INFORMATION 001517 constant label dcl 260 PRINT_ONE_JOURNAL 001230 constant entry internal dcl 212 ref 165 193 before_journal_status 000366 constant entry external dcl 41 bjst 000356 constant entry external dcl 41 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2260 2316 2045 2270 Length 2602 2045 36 250 212 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bjst 367 external procedure is an external procedure. on unit on line 116 74 on unit on unit on line 153 70 on unit ERROR_RETURN 64 internal procedure is called by several nonquick procedures. PRINT_ONE_JOURNAL internal procedure shares stack frame of external procedure bjst. CLEAN_UP internal procedure shares stack frame of on unit on line 153. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bjst 000100 area_ptr bjst 000102 arg_count bjst 000103 arg_len bjst 000104 arg_no bjst 000106 arg_ptr bjst 000110 bj_dir bjst 000162 bj_entry bjst 000172 bj_ix bjst 000173 code bjst 000174 freeing_in_progress bjst 000175 last_ci_put_time bjst 000202 last_ci_disk_time bjst 000207 path_count bjst 000210 report_format bjst 000212 journal_group bjst 000230 bj_status_ptr bjst 000232 bj_global_meters_ptr bjst 000246 poj_index PRINT_ONE_JOURNAL 000247 poj_header_update_time PRINT_ONE_JOURNAL 000254 poj_n_ci_used PRINT_ONE_JOURNAL THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return tra_ext enable ext_entry int_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. before_journal_manager_$get_journal_status com_err_ cu_$arg_count cu_$arg_ptr date_time_ expand_pathname_$add_suffix get_dm_free_area_ ioa_ pathname_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$system_not_initialized error_table_$bad_arg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 49 000333 54 000335 55 000340 56 000343 57 000344 58 000345 62 000346 63 000347 64 000351 41 000355 116 000374 118 000410 119 000424 120 000431 124 000432 125 000443 127 000445 128 000462 133 000466 134 000475 135 000512 137 000527 139 000542 141 000555 143 000561 144 000614 145 000620 146 000621 147 000622 151 000624 152 000633 153 000636 155 000654 157 000657 159 000712 161 000714 162 000731 163 000735 164 000736 165 000745 166 000747 167 000751 169 000767 170 000771 171 000776 172 001000 173 001003 174 001004 175 001005 176 001015 177 001032 180 001037 181 001075 183 001077 185 001132 188 001136 190 001171 193 001173 194 001177 195 001201 196 001206 197 001210 198 001213 202 001214 203 001216 206 001217 209 001225 212 001230 223 001232 227 001234 231 001331 233 001362 237 001406 242 001415 246 001424 250 001431 252 001451 260 001514 265 001517 267 001527 269 001546 271 001552 273 001560 276 001577 278 001612 281 001631 285 001654 286 001674 288 001700 290 001722 294 001753 300 002004 304 002005 311 002006 313 002011 315 002022 319 002031 ----------------------------------------------------------- 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