COMPILATION LISTING OF SEGMENT bjm_per_system_init_2_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/24/85 0835.7 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This is the part two initialization program for the before journal 10* manager. This assumes the current process may run Data Management in the 11* using the standard interfaces. It is responisble for making the default 12* before journal exist and available to users. If the journal already 13* exists, it must make sure the journal is valid. Currently, the journal 14* is forced to work via a call to bj_open$force, but more work needs to be 15* done to use the DMS configuration file indicators in deciding how to 16* handle this case. 17**/ 18 19 /* HISTORY: 20* 21*Written by M. Pandolf, 07/10/82. 22*Modified: 23*08/31/82 by M. Pandolf: to split into two parts 24*11/04/82 by M. Pandolf: to set acl on default BJ for all processes 25*02/14/83 by M. Pandolf: to set version for TXT 26*03/23/83 by Lee A. Newcomb: to create default BJ where told by config file. 27*03/24/83 by L. A. Newcomb: to not give up if the default BJ already exists 28* from a previous DMS invocation. 29*03/30/83 by M. Pandolf: use new dm_system_data_ names for default journal. 30*04/12/83 by L. A. Newcomb: added special handling of the default BJ being in 31* the bootload directory during part 2 init so the default dirname 32* in dm_system_data_ is set properly. 33*05/03/83 by L. A. Newcomb: part_2 system initialization now uses 34* dm_system_data_ to get the default size of the system default 35* before journal. 36*05/15/83 by L. A. Newcomb: part_2 now tries to open the default before 37* journal if it existed previous to this bootload; and too make 38* sure that the journal is in a usable state. 39*08/01/83 by Lindsey L. Spratt: Changed to reference before_journal_manager_ 40* create close and open_force primitives through the 41* before_journal_manager_ TV, rather than directly (e.g., "call 42* before_journal_manager_$create_bj" instead of "call bjm_create"). 43* This is necessary to support the binding of the integrity 44* services. 45*08/06/83 by Lee A. Newcomb: removed obsolete code arg. from calls 46* to dm_per_system_ entries. 47*09/09/83 by L. A. Newcomb: split part one and two into two distinct programs. 48* This helps maintenance and binding. History comments for part one 49* BJM initialization have been removed. 50*06/25/84 by Matthew Pierret: Changed to use file_manager_$add_acl_entries 51* instead of file_manager_$open/$acl_add/$close. 52*11/22/84 by Lee A. Newcomb: Fixed to use new dm_misc_util_$get_("" 53* enabled_)bootload_dir("" name) entries. 54*12/05/84 by M. Sharpe: to correct format; set/reset/validation level around 55* the calls to file_manager_. 56*12/11/84 by M. Sharpe: to use ERROR_RETURN and ERROR_LOG_RETURN; to use 57* a constant for "bootload_dir"; to restructure the conditional 58* for checking the status code. 59*12/26/84 by Matthew Pierret: Changed to use modern calling sequence of 60* file_manager_$add_acl_entries, which takes a general_acl structure. 61*01/16/84 by M. Sharpe: to replace the call to file_manager_$add_acl_entries 62* with a call to before_journal_manager_$= and thus remove all 63* validation setting in the program; to add cleanup handler. 64*03/05/85 by Steve Herbst: Replaced dm_log_ with dm_misc_util_$log. 65*03/18/85 by Steve Herbst: Removed spurious newline from warning log message. 66*04/02/85 by Lee A. Newcomb: Fixed to not pass this modules name to 67* dm_misc_util_$log when calling $log without an error code. 68**/ 69 70 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo */ 71 /* format: ^inddcls,dclind5,idind35,linecom */ 72 73 74 bjm_per_system_init_2_: 75 procedure (p_code); 76 77 /* DECLARATIONS */ 78 79 /* Parameter */ 80 81 dcl p_code fixed bin (35) /* standard system status code */ 82 parameter; 83 84 /* Automatics */ 85 86 dcl ( 87 code fixed bin (35), /* local copy of status code */ 88 create_code fixed bin (35) init (-1), 89 /* indicates to cleanup whether or not bj was created */ 90 default_before_journal_directory char (168), /* where we put the default BJ */ 91 default_before_journal_oid bit (36) aligned init (""b) 92 /* used in part_2 to make sure BJ is ok. */ 93 ) automatic; 94 95 dcl 1 default_before_journal_default_acl /* used to set default BJ ACL */ 96 aligned automatic, 97 2 version char (8) aligned 98 init (GENERAL_ACL_VERSION_1), 99 2 count fixed bin init (1), 100 2 entries dim (1) like general_acl_entry; 101 102 /* Builtin */ 103 dcl addr builtin; 104 105 /* Condition */ 106 107 dcl cleanup condition; 108 109 /* Constants */ 110 111 dcl ( 112 CI_SIZE fixed bin init (4096), 113 BOOTLOAD_DIR char (12) init ("bootload_dir"), 114 IOA_GENERAL_RS_NO_NEW_LINE bit (1) aligned init ("0"b), 115 IOA_GENERAL_RS_DONT_PAD bit (1) aligned init ("1"b), 116 MY_NAME char (26) 117 init ("bjm_per_system_init$part_2") 118 ) internal static options (constant); 119 120 /* Entries */ 121 122 dcl before_journal_manager_$close_bj entry (bit (36) aligned, 123 fixed bin (35)); 124 dcl before_journal_manager_$create_bj entry (char (*), char (*), fixed bin, 125 fixed bin, fixed bin (35)); 126 dcl before_journal_manager_$delete_bj entry (char (*), char (*), 127 fixed bin (35)); 128 dcl before_journal_manager_$open_bj_force 129 entry (char (*), char (*), 130 bit (36) aligned, fixed bin (35)); 131 dcl cu_$arg_list_ptr entry (ptr); 132 dcl dm_misc_util_$log entry options (variable); 133 dcl dm_misc_util_$get_bootload_dir entry (char (*)); 134 dcl dm_misc_util_$get_enabled_bootload_dirname 135 entry () returns (char (32)); 136 dcl before_journal_manager_$add_acl_entries 137 entry (char (*), char (*), ptr, 138 fixed bin (35)); 139 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, 140 char (*), fixed bin (21), 141 bit (1) aligned, bit (1) aligned); 142 143 144 /* External Static */ 145 146 147 dcl ( 148 dm_error_$file_already_exists fixed bin (35), 149 dm_system_data_$bj_default_dirname char (168), 150 dm_system_data_$bj_default_filename 151 char (32), 152 dm_system_data_$bj_default_journal_size 153 fixed bin 154 ) external static; 155 156 157 p_code = 0; 158 159 /* create the default system before journal */ 160 /* we must take care of the case where the default dirname is the keyword */ 161 /* BOOTLOAD_DIR (see dcls), and fill in the bootload dir name as load */ 162 /* config cannot */ 163 164 if dm_system_data_$bj_default_dirname = BOOTLOAD_DIR then/* must use init dir name */ 165 call dm_misc_util_$get_bootload_dir (default_before_journal_directory); 166 else default_before_journal_directory = dm_system_data_$bj_default_dirname; 167 168 on cleanup call CLEAN_UP (); 169 170 call before_journal_manager_$create_bj (default_before_journal_directory, 171 dm_system_data_$bj_default_filename, 172 dm_system_data_$bj_default_journal_size, CI_SIZE, create_code); 173 if create_code ^= 0 then 174 if create_code ^= dm_error_$file_already_exists then 175 call ERROR_RETURN (create_code); 176 else /* we need to make sure its valid. */ 177 /* Brain damage if we just created in bootload dir */ 178 /* and the journal already existed, so will fall through */ 179 if dm_system_data_$bj_default_dirname ^= BOOTLOAD_DIR then do; 180 /* check validity */ 181 call before_journal_manager_$open_bj_force ( 182 default_before_journal_directory, 183 dm_system_data_$bj_default_filename, default_before_journal_oid, 184 code); 185 if code ^= 0 then 186 call ERROR_LOG_RETURN (code, 187 "Default BJ from previous bootload is unrecoverably damaged: ^a>^a.", 188 default_before_journal_directory, 189 dm_system_data_$bj_default_filename); 190 191 call before_journal_manager_$close_bj (default_before_journal_oid, 192 code); 193 if code ^= 0 then 194 call ERROR_LOG_RETURN (code, 195 "Default BJ from previous bootload cannot be closed, aborting: ^a>^a.", 196 default_before_journal_directory, 197 dm_system_data_$bj_default_filename); 198 199 /* OK to use the journal */ 200 call dm_misc_util_$log (LOG_SV, 201 "Warning: using default BJ from previous DMS invocation."); 202 code = 0; /* so we fall through and make sure the ACL is right */ 203 end; 204 205 206 /* set ACL to RW for all users of DMS */ 207 208 default_before_journal_default_acl.entries (1).access_name = "*.*.*"; 209 default_before_journal_default_acl.entries (1).mode = "500000000000"b3; 210 default_before_journal_default_acl.entries (1).status_code = 0; 211 212 call before_journal_manager_$add_acl_entries 213 ((default_before_journal_directory), 214 (dm_system_data_$bj_default_filename), 215 addr (default_before_journal_default_acl), code); 216 217 if code ^= 0 then 218 call ERROR_RETURN (code); 219 220 if dm_system_data_$bj_default_dirname = BOOTLOAD_DIR then 221 dm_system_data_$bj_default_dirname = 222 dm_misc_util_$get_enabled_bootload_dirname (); 223 224 p_code = 0; /* successful */ 225 226 /* finished */ 227 228 MAIN_RETURN: 229 return; 230 231 ERROR_RETURN: 232 proc (er_p_code); 233 234 dcl er_p_code fixed bin (35); 235 236 p_code = er_p_code; 237 call CLEAN_UP (); 238 goto MAIN_RETURN; 239 240 end ERROR_RETURN; 241 242 243 244 245 CLEAN_UP: 246 proc (); 247 248 dcl c_code fixed bin (35); 249 250 if default_before_journal_oid ^= ""b then 251 call before_journal_manager_$close_bj (default_before_journal_oid, 252 c_code); 253 254 if create_code = 0 then 255 call before_journal_manager_$delete_bj (default_before_journal_directory, 256 dm_system_data_$bj_default_filename, c_code); 257 258 return; 259 260 end CLEAN_UP; 261 262 263 264 ERROR_LOG_RETURN: 265 proc options (variable); 266 267 dcl ( 268 erl_arg_list_ptr ptr, 269 erl_code fixed bin (35), 270 erl_message char (1024), 271 erl_message_length fixed bin (21) 272 ) automatic; 273 274 dcl ( 275 erl_fixed_bin_35_value fixed bin (35), 276 erl_message_overlay char (erl_message_length) 277 ) based; 278 279 call cu_$arg_list_ptr (erl_arg_list_ptr); 280 erl_code = 281 erl_arg_list_ptr -> arg_list.arg_ptrs (1) -> erl_fixed_bin_35_value; 282 283 call ioa_$general_rs (erl_arg_list_ptr, 2, 3, erl_message, 284 erl_message_length, IOA_GENERAL_RS_DONT_PAD, 285 IOA_GENERAL_RS_NO_NEW_LINE); 286 287 call dm_misc_util_$log (LOG_SV, erl_code, MY_NAME, 288 addr (erl_message) -> erl_message_overlay); 289 290 call ERROR_RETURN (erl_code); 291 292 end ERROR_LOG_RETURN; 293 294 /* end bjm_per_system_init_2_; */ 295 296 297 /* INCLUDE FILES start next page */ 298 1 1 /* BEGIN INCLUDE FILE: dm_bj_pste.incl.pl1 */ 1 2 1 3 /* DESCRIPTION 1 4* 1 5* Layout of the per-system before journal table 1 6* entries. This structure is used to contain information 1 7* about a before journal active in a running DMS. It is 1 8* currently also used as the header of a before journal 1 9* (see dm_bj_header.incl.pl1). Version changes to this 1 10* structure require either automatic conversion to be set 1 11* up, or users to be told to re-create their journals. 1 12* 1 13* Currently, a bj_pste must be 64 words long; any 1 14* future changes must at least make sure a bj_pste is an 1 15* even # of words for the alignment of some of its 1 16* elements. 1 17**/ 1 18 1 19 /* HISTORY: 1 20* 1 21*Written by Andre Bensoussan, 06/15/82. 1 22*Modified: 1 23*08/16/82 by Andre Bensoussan: to add stamp_for_last_ci_put. 1 24*09/29/82 by Lee A. Newcomb: to fix BJ_PSTE_VERSION_1 and fix some 1 25* alignments. 1 26*11/01/82 by Andre Bensoussan: to add "stamp_for_last_ci_on_disk", 1 27* "n_bi_still_unsafe", and "n_bi_being_saved". 1 28*02/08/83 by M. Pandolf: to add append_state structure. 1 29*03/19/83 by L. A. Newcomb: to fix up some alignments and spelling problems. 1 30*04/27/83 by M. Pandolf: to add meter structure at end. 1 31*02/11/85 by Lee A. Newcomb: Fixed version constant name to agree with its 1 32* value of 2; fixed references to page files or PF's; fixed format 1 33* of description and history sections. 1 34*03/07/85 by Lee A. Newcomb: Changed a pad word to be txn_storage_limit and 1 35* expanded on the description for future generations (no 1 36* version was made). 1 37*03/27/85 by Lee A. Newcomb: Changed one of the unused meters to 1 38* n_txn_storage_limit_hits (again without a version change). 1 39**/ 1 40 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 1 41 1 42 dcl BJ_PSTE_VERSION_2 fixed bin internal static 1 43 options (constant) init (2); 1 44 1 45 dcl bj_pste_ptr ptr; 1 46 1 47 /* MUST HAVE EVEN NUMBER OR WORDS */ 1 48 dcl 1 bj_pste based (bj_pste_ptr) aligned, 1 49 2 version fixed bin, 1 50 2 bj_ix fixed bin, /* Index of this entry in bj_pst table */ 1 51 2 lock aligned, 1 52 3 pid bit (36), /* process ID of lock owner */ 1 53 3 event bit (36), 1 54 2 bj_uid bit (36), /* UID of BJ file */ 1 55 2 ci_size fixed bin, /* In number of bytes */ 1 56 2 max_size fixed bin, /* In number of ci's */ 1 57 2 active bit (1) aligned, /* 0 means journal not being used */ 1 58 2 time_header_updated fixed bin (71), 1 59 2 earliest_meaningful_time fixed bin (71), /* time stamp on first valid control interval */ 1 60 2 update_frequency fixed bin, /* Not used yet, probably will be how many CIs */ 1 61 2 last_rec_id bit (36), /* rec id of the last logical record in journal */ 1 62 2 n_processes fixed bin, /* Number of processes using this BJ */ 1 63 2 n_txn fixed bin, /* Number of txn in progress using this BJ */ 1 64 2 last_ci_info aligned, 1 65 3 last_ci_buffered fixed bin (24) uns, /* Last ci encached in the buffer */ 1 66 3 last_ci_put fixed bin (24) uns, /* Last ci put in the BJ */ 1 67 3 last_ci_flushed fixed bin (24) uns, /* Last ci for which flush initiated */ 1 68 3 last_ci_on_disk fixed bin (24) uns, /* Last ci of that portion of the BJ known to be ... */ 1 69 /* .. completely on disk */ 1 70 3 stamp_for_last_ci_put fixed bin (71), /* Time stamp associated with the last ci put in the BJ */ 1 71 3 stamp_for_last_ci_on_disk fixed bin (71), /* Time stamp associated with the last ci on disk in the BJ */ 1 72 2 n_bi_still_unsafe fixed bin, /* number of bi's still not on disk */ 1 73 2 n_bi_being_saved fixed bin, /* number of bi's for which flush initiated */ 1 74 2 buffer_offset fixed bin (18) uns, /* Now allocated in the bj_pst segment */ 1 75 2 txn_storage_limit fixed bin (35), /* # of bytes a single txn may write */ 1 76 2 cl aligned, /* Circular List */ 1 77 3 origin_ci fixed bin (24) uns, 1 78 3 lowest_ci fixed bin (24) uns, 1 79 3 highest_ci fixed bin (24) uns, 1 80 3 number_ci fixed bin (24) uns, 1 81 2 append_state aligned, 1 82 3 current_operation char (4), /* equal to "appe" when append in progress */ 1 83 3 pending_n_txn fixed bin, /* n_txn value when append done */ 1 84 3 pending_last_rec_id bit (36), /* last_rec_id value after append done */ 1 85 3 pending_last_element_id bit (36), /* last element id after append done */ 1 86 3 txte_rec_id_relp bit (18), /* rel ptr into seg containing TXT for txte.pending_bj_rec_id */ 1 87 2 pad_to_even_word1 bit (36) aligned, 1 88 2 meters aligned, /* dim (10) fixed bin (71), */ 1 89 3 n_bi_written fixed bin (71), /* meter (1) */ 1 90 3 n_bi_bytes_written fixed bin (71), /* meter (2) */ 1 91 3 n_journal_full fixed bin (71), /* meter (3) */ 1 92 3 n_successful_recycles fixed bin (71), /* meter (4) */ 1 93 3 n_ci_recycled fixed bin (71), /* meter (5) */ 1 94 3 n_txn_started fixed bin (71), /* meter (6) */ 1 95 3 n_non_null_txn fixed bin (71), /* meter (7) */ 1 96 3 n_txn_storage_limit_hits fixed bin (71), /* meter (8) */ 1 97 3 meter (9:10) fixed bin (71), 1 98 /* meter (9) - meter (10) */ 1 99 2 pad_to_64_words (6) bit (36); /* 64 is even (see below) */ 1 100 1 101 1 102 /* END INCLUDE FILE: dm_bj_pste.incl.pl1 */ 299 300 2 1 /* BEGIN INCLUDE FILE: dm_bj_txt.incl.pl1 */ 2 2 /* 2 3*dm_bj_txt - before journal per-system transaction table. 2 4* 2 5*Designed by A. Bensoussan 2 6*Written by M. Pandolf 06/02/82 2 7*Modified: 2 8*10/01/82 by Lee A. Newcomb: To use dm_system_data_ for dimension attributes 2 9* and specify alignment on level one. 2 10*08feb83 by M. Pandolf: To restructure the TXT and TXTE. 2 11*30mar83 by M. Pandolf: To add last_completed_operation and ok_to_write. 2 12**/ 2 13 /* format: style4,indattr,idind33,^indcomtxt */ 2 14 2 15 dcl BJ_TXT_VERSION_1 fixed bin int static options (constant) init (1); 2 16 2 17 dcl bj_txt_ptr ptr; /* pointer to transaction table */ 2 18 dcl bj_txte_ptr ptr; /* pointer to transaction table element */ 2 19 2 20 dcl 1 bj_txt aligned based (bj_txt_ptr), /* transaction table */ 2 21 2 version fixed bin, /* should be BJ_TXT_VERSION_1 */ 2 22 2 max_n_entries fixed bin, 2 23 2 n_entries_used fixed bin, /* assumed contiguous */ 2 24 2 pad_header_to_32_words bit (36) dim (29), /* to mod32 align bj_txt.entry */ 2 25 2 entry dim (dm_system_data_$max_n_transactions refer (bj_txt.max_n_entries)) 2 26 like bj_txte; 2 27 2 28 dcl 1 bj_txte based (bj_txte_ptr) aligned, /* single entry, must be mod32 word aligned */ 2 29 2 tid bit (36), /* transaction id if this or last txn */ 2 30 2 bj_uid bit (36), /* UID of before journal chosen at begin mark */ 2 31 2 entry_state aligned, 2 32 3 last_completed_operation char (4), /* to prevent multiple abort and commit */ 2 33 3 ok_to_write bit (1), /* basically validates using this entry */ 2 34 2 owner_info aligned, /* info about creation of txte */ 2 35 3 process_id bit (36), /* of process that wrote begin mark */ 2 36 2 operator_info aligned, /* of process that is currently using this txte */ 2 37 3 process_id bit (36), /* of process that shall write subsequent marks */ 2 38 3 ppte_ptr ptr, /* pointer to PPTE for this transaction */ 2 39 3 bj_oid bit (36), /* before journal opening ID for operator */ 2 40 2 records_info aligned, /* grouped to be saved and restored as one unit */ 2 41 3 curr_checkpoint_rec_id bit (36), /* ident of checkpoint record if doing a rollback, */ 2 42 /* else, this value must be zero. */ 2 43 3 first_bj_rec_id bit (36), /* ident of first mark for this transaction */ 2 44 3 last_bj_rec_id bit (36), /* ident of current mark for this transaction */ 2 45 3 n_rec_written fixed bin (35), /* count of marks written for this transaction */ 2 46 3 n_bytes_written fixed bin (35), /* count of total bytes written to journal */ 2 47 3 last_fm_postcommit_handler_rec_id 2 48 bit (36), /* ident of last special handler in list */ 2 49 2 append_state aligned, /* the first two members define the state of this */ 2 50 3 current_operation char (4), /* transaction and its interaction with bj_storage: */ 2 51 3 pending_bj_rec_id bit (36), /* operation rec_id state */ 2 52 /* *null* XXX quiesed */ 2 53 /* ^null "0"b write pending */ 2 54 /* ^null ^"0"b write completed, needs flushing */ 2 55 /* */ 2 56 3 pending_n_rec_written fixed bin (35), /* copy to n_rec_written before flush */ 2 57 3 pending_n_bytes_written fixed bin (35), /* copy to n_bytes_written before flush */ 2 58 2 pad_entry_to_32_words bit (36) dim (13); /* make any part of table 32 words long */ 2 59 2 60 /* END INCLUDE FILE: dm_bj_txt_ptr */ 301 302 3 1 /* BEGIN INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 3 2 3 3 /* format: ^indcom */ 3 4 3 5 /* DESCRIPTION: 3 6* These are the severity codes used by the dms daemon when calling its logger. 3 7* The severity is ranked thusly: 3 8* 3 9* severity log write situation 3 10* -------- --- ----- --------- 3 11* 0 no yes standard output, query, etc. 3 12* 1 yes yes fatal error, terminate dms daemon. 3 13* 2 yes yes nonfatal error. 3 14* 3 yes yes informative message. 3 15* 4 yes no log information only. 3 16**/ 3 17 3 18 /* HISTORY: 3 19* 3 20*Written by M. Pandolf, 10/06/82. 3 21*Modified: 3 22*12/10/84 by R. Michael Tague: Rename and reformat description/history. 3 23*01/13/85 by Lee A. Newcomb: Renamed to dm_log_sv_codes from 3 24* dm_daemon_sv_codes as the severity codes for the DM log are not 3 25* restrained to the DM Daemon's use. 3 26*01/24/85 by Lee A. Newcomb: Fixed to say dm_log_sv_codes.incl.pl1 in the 3 27* BEGIN and END INCLUDE comments, instead of dm_daemon_sv_codes.==. 3 28**/ 3 29 3 30 /* format: style5 */ 3 31 3 32 dcl (PRINT_SV, QUERY_SV) fixed bin internal static 3 33 options (constant) init (0); 3 34 dcl (CRASH_SV, FATAL_SV) fixed bin internal static 3 35 options (constant) init (1); 3 36 dcl ERROR_SV fixed bin internal static 3 37 options (constant) init (2); 3 38 dcl INFORM_SV fixed bin internal static 3 39 options (constant) init (3); 3 40 dcl LOG_SV fixed bin internal static 3 41 options (constant) init (4); 3 42 3 43 /* END INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 303 304 4 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 4 2* 4 3* James R. Davis 10 May 79 */ 4 4 4 5 dcl 1 arg_list aligned based, 4 6 2 header, 4 7 3 arg_count fixed bin (17) unsigned unal, 4 8 3 pad1 bit (1) unal, 4 9 3 call_type fixed bin (18) unsigned unal, 4 10 3 desc_count fixed bin (17) unsigned unal, 4 11 3 pad2 bit (19) unal, 4 12 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 4 13 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 4 14 4 15 4 16 4 17 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 4 18 2 header, 4 19 3 arg_count fixed bin (17) unsigned unal, 4 20 3 pad1 bit (1) unal, 4 21 3 call_type fixed bin (18) unsigned unal, 4 22 3 desc_count fixed bin (17) unsigned unal, 4 23 3 pad2 bit (19) unal, 4 24 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 4 25 2 envptr ptr, 4 26 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 4 27 4 28 4 29 dcl ( 4 30 Quick_call_type init (0), 4 31 Interseg_call_type init (4), 4 32 Envptr_supplied_call_type 4 33 init (8) 4 34 ) fixed bin (18) unsigned unal int static options (constant); 4 35 4 36 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 4 37* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 4 38* an argument list of the proper size in the user's stack 4 39* 4 40**/ 4 41 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 305 306 5 1 /* Begin include file -- acl_structures.incl.pl1 BIM 3/82 */ 5 2 /* format: style3,indcomtxt,idind30 */ 5 3 5 4 declare acl_ptr pointer; 5 5 declare acl_count fixed bin; 5 6 5 7 declare 1 general_acl aligned based (acl_ptr), /* for fs_util_ */ 5 8 2 version char (8) aligned, 5 9 2 count fixed bin, 5 10 2 entries (acl_count refer (general_acl.count)) aligned like general_acl_entry; 5 11 5 12 declare 1 general_acl_entry based, 5 13 2 access_name character (32) unaligned, 5 14 2 mode bit (36) aligned, 5 15 2 status_code fixed bin (35); 5 16 5 17 5 18 declare 1 general_extended_acl aligned based (acl_ptr), /* for fs_util_ */ 5 19 2 version char (8) aligned, 5 20 2 count fixed bin, 5 21 2 entries (acl_count refer (general_extended_acl.count)) aligned like general_extended_acl_entry; 5 22 5 23 declare 1 general_extended_acl_entry aligned based, 5 24 2 access_name character (32) unaligned, 5 25 2 mode bit (36) aligned, 5 26 2 extended_mode bit (36) aligned, 5 27 2 status_code fixed bin (35); 5 28 5 29 5 30 declare 1 general_delete_acl aligned based (acl_ptr), /* for file_system_ */ 5 31 2 version char (8) aligned, 5 32 2 count fixed bin, 5 33 2 entries (acl_count refer (general_delete_acl.count)) aligned like delete_acl_entry; 5 34 5 35 declare 1 general_delete_acl_entry aligned based, 5 36 2 access_name character (32) unaligned, 5 37 2 status_code fixed bin (35); 5 38 5 39 5 40 declare 1 segment_acl aligned based (acl_ptr), 5 41 2 version fixed bin, 5 42 2 count fixed bin, 5 43 2 entries (acl_count refer (segment_acl.count)) aligned like segment_acl_entry; 5 44 5 45 declare 1 segment_acl_entry like general_extended_acl_entry aligned based; 5 46 declare 1 segment_acl_array (acl_count) aligned like segment_acl_entry based (acl_ptr); 5 47 5 48 5 49 declare 1 directory_acl aligned based (acl_ptr), 5 50 2 version fixed bin, 5 51 2 count fixed bin, 5 52 2 entries (acl_count refer (directory_acl.count)) aligned like directory_acl_entry; 5 53 5 54 declare 1 directory_acl_entry like general_acl_entry aligned based; 5 55 declare 1 directory_acl_array (acl_count) aligned like directory_acl_entry based (acl_ptr); 5 56 5 57 5 58 declare 1 delete_acl based (acl_ptr) aligned, 5 59 2 version fixed bin, 5 60 2 count fixed bin, 5 61 2 entries (acl_count refer (delete_acl.count)) aligned like delete_acl_entry; 5 62 5 63 declare 1 delete_acl_entry like general_delete_acl_entry aligned based; 5 64 declare 1 delete_acl_array (acl_count) aligned like delete_acl_entry based (acl_ptr); 5 65 5 66 5 67 declare (SEG_ACL_VERSION_1 init ("sga1"), 5 68 DIR_ACL_VERSION_1 init ("dra1"), 5 69 DELETE_ACL_VERSION_1 init ("dla1")) 5 70 char (4) int static options (constant); 5 71 5 72 declare (GENERAL_ACL_VERSION_1 init ("gacl001"), 5 73 GENERAL_EXTENDED_ACL_VERSION_1 init ("gxacl001"), 5 74 GENERAL_DELETE_ACL_VERSION_1 init ("gdacl001")) 5 75 char (8) internal static options (constant); 5 76 5 77 declare ACL_VERSION_1 fixed bin init (1) int static options (constant); 5 78 5 79 /* End include file acl_structures.incl.pl1 */ 307 308 309 end bjm_per_system_init_2_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/24/85 0803.8 bjm_per_system_init_2_.pl1 >spec>on>41-21>bjm_per_system_init_2_.pl1 299 1 04/05/85 0924.4 dm_bj_pste.incl.pl1 >ldd>include>dm_bj_pste.incl.pl1 301 2 01/07/85 0858.0 dm_bj_txt.incl.pl1 >ldd>include>dm_bj_txt.incl.pl1 303 3 03/06/85 1031.1 dm_log_sv_codes.incl.pl1 >ldd>include>dm_log_sv_codes.incl.pl1 305 4 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 307 5 10/14/83 1606.6 acl_structures.incl.pl1 >ldd>include>acl_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. BOOTLOAD_DIR 000013 constant char(12) initial unaligned dcl 111 ref 164 176 220 CI_SIZE 000016 constant fixed bin(17,0) initial dcl 111 set ref 170* GENERAL_ACL_VERSION_1 000000 constant char(8) initial unaligned dcl 5-72 ref 95 IOA_GENERAL_RS_DONT_PAD 000012 constant bit(1) initial dcl 111 set ref 283* IOA_GENERAL_RS_NO_NEW_LINE 000035 constant bit(1) initial dcl 111 set ref 283* LOG_SV 000002 constant fixed bin(17,0) initial dcl 3-40 set ref 200* 287* MY_NAME 000003 constant char(26) initial unaligned dcl 111 set ref 287* access_name 3 000155 automatic char(32) array level 3 packed unaligned dcl 95 set ref 208* addr builtin function dcl 103 ref 212 212 287 arg_list based structure level 1 dcl 4-5 arg_ptrs 2 based pointer array level 2 dcl 4-5 ref 280 before_journal_manager_$add_acl_entries 000030 constant entry external dcl 136 ref 212 before_journal_manager_$close_bj 000010 constant entry external dcl 122 ref 191 250 before_journal_manager_$create_bj 000012 constant entry external dcl 124 ref 170 before_journal_manager_$delete_bj 000014 constant entry external dcl 126 ref 254 before_journal_manager_$open_bj_force 000016 constant entry external dcl 128 ref 181 bj_txte based structure level 1 dcl 2-28 c_code 000100 automatic fixed bin(35,0) dcl 248 set ref 250* 254* cleanup 000172 stack reference condition dcl 107 ref 168 code 000100 automatic fixed bin(35,0) dcl 86 set ref 181* 185 185* 191* 193 193* 202* 212* 217 217* count 2 000155 automatic fixed bin(17,0) initial level 2 dcl 95 set ref 95* create_code 000101 automatic fixed bin(35,0) initial dcl 86 set ref 86* 170* 173 173 173* 254 cu_$arg_list_ptr 000020 constant entry external dcl 131 ref 279 default_before_journal_default_acl 000155 automatic structure level 1 dcl 95 set ref 212 212 default_before_journal_directory 000102 automatic char(168) unaligned dcl 86 set ref 164* 166* 170* 181* 185* 193* 212 254* default_before_journal_oid 000154 automatic bit(36) initial dcl 86 set ref 86* 181* 191* 250 250* delete_acl_entry based structure level 1 dcl 5-63 directory_acl_entry based structure level 1 dcl 5-54 dm_error_$file_already_exists 000034 external static fixed bin(35,0) dcl 147 ref 173 dm_misc_util_$get_bootload_dir 000024 constant entry external dcl 133 ref 164 dm_misc_util_$get_enabled_bootload_dirname 000026 constant entry external dcl 134 ref 220 dm_misc_util_$log 000022 constant entry external dcl 132 ref 200 287 dm_system_data_$bj_default_dirname 000036 external static char(168) unaligned dcl 147 set ref 164 166 176 220 220* dm_system_data_$bj_default_filename 000040 external static char(32) unaligned dcl 147 set ref 170* 181* 185* 193* 212 254* dm_system_data_$bj_default_journal_size 000042 external static fixed bin(17,0) dcl 147 set ref 170* entries 3 000155 automatic structure array level 2 dcl 95 er_p_code parameter fixed bin(35,0) dcl 234 ref 231 236 erl_arg_list_ptr 000100 automatic pointer dcl 267 set ref 279* 280 283* erl_code 000102 automatic fixed bin(35,0) dcl 267 set ref 280* 287* 290* erl_fixed_bin_35_value based fixed bin(35,0) dcl 274 ref 280 erl_message 000103 automatic char(1024) unaligned dcl 267 set ref 283* 287 erl_message_length 000503 automatic fixed bin(21,0) dcl 267 set ref 283* 287 287 erl_message_overlay based char unaligned dcl 274 set ref 287* general_acl_entry based structure level 1 unaligned dcl 5-12 general_delete_acl_entry based structure level 1 dcl 5-35 general_extended_acl_entry based structure level 1 dcl 5-23 ioa_$general_rs 000032 constant entry external dcl 139 ref 283 mode 13 000155 automatic bit(36) array level 3 dcl 95 set ref 209* p_code parameter fixed bin(35,0) dcl 81 set ref 74 157* 224* 236* segment_acl_entry based structure level 1 dcl 5-45 status_code 14 000155 automatic fixed bin(35,0) array level 3 dcl 95 set ref 210* version 000155 automatic char(8) initial level 2 dcl 95 set ref 95* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACL_VERSION_1 internal static fixed bin(17,0) initial dcl 5-77 BJ_PSTE_VERSION_2 internal static fixed bin(17,0) initial dcl 1-42 BJ_TXT_VERSION_1 internal static fixed bin(17,0) initial dcl 2-15 CRASH_SV internal static fixed bin(17,0) initial dcl 3-34 DELETE_ACL_VERSION_1 internal static char(4) initial unaligned dcl 5-67 DIR_ACL_VERSION_1 internal static char(4) initial unaligned dcl 5-67 ERROR_SV internal static fixed bin(17,0) initial dcl 3-36 Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 4-29 FATAL_SV internal static fixed bin(17,0) initial dcl 3-34 GENERAL_DELETE_ACL_VERSION_1 internal static char(8) initial unaligned dcl 5-72 GENERAL_EXTENDED_ACL_VERSION_1 internal static char(8) initial unaligned dcl 5-72 INFORM_SV internal static fixed bin(17,0) initial dcl 3-38 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 4-29 PRINT_SV internal static fixed bin(17,0) initial dcl 3-32 QUERY_SV internal static fixed bin(17,0) initial dcl 3-32 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 4-29 SEG_ACL_VERSION_1 internal static char(4) initial unaligned dcl 5-67 acl_count automatic fixed bin(17,0) dcl 5-5 acl_ptr automatic pointer dcl 5-4 arg_list_with_envptr based structure level 1 dcl 4-17 bj_pste based structure level 1 dcl 1-48 bj_pste_ptr automatic pointer dcl 1-45 bj_txt based structure level 1 dcl 2-20 bj_txt_ptr automatic pointer dcl 2-17 bj_txte_ptr automatic pointer dcl 2-18 delete_acl based structure level 1 dcl 5-58 delete_acl_array based structure array level 1 dcl 5-64 directory_acl based structure level 1 dcl 5-49 directory_acl_array based structure array level 1 dcl 5-55 general_acl based structure level 1 dcl 5-7 general_delete_acl based structure level 1 dcl 5-30 general_extended_acl based structure level 1 dcl 5-18 segment_acl based structure level 1 dcl 5-40 segment_acl_array based structure array level 1 dcl 5-46 NAMES DECLARED BY EXPLICIT CONTEXT. CLEAN_UP 000550 constant entry internal dcl 245 ref 168 237 ERROR_LOG_RETURN 000616 constant entry internal dcl 264 ref 185 193 ERROR_RETURN 000525 constant entry internal dcl 231 ref 173 217 290 MAIN_RETURN 000523 constant label dcl 228 ref 238 bjm_per_system_init_2_ 000127 constant entry external dcl 74 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1212 1256 737 1222 Length 1564 737 44 271 253 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bjm_per_system_init_2_ 220 external procedure is an external procedure. on unit on line 168 64 on unit ERROR_RETURN 64 internal procedure is called by several nonquick procedures. CLEAN_UP 86 internal procedure is called by several nonquick procedures. ERROR_LOG_RETURN 360 internal procedure is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME CLEAN_UP 000100 c_code CLEAN_UP ERROR_LOG_RETURN 000100 erl_arg_list_ptr ERROR_LOG_RETURN 000102 erl_code ERROR_LOG_RETURN 000103 erl_message ERROR_LOG_RETURN 000503 erl_message_length ERROR_LOG_RETURN bjm_per_system_init_2_ 000100 code bjm_per_system_init_2_ 000101 create_code bjm_per_system_init_2_ 000102 default_before_journal_directory bjm_per_system_init_2_ 000154 default_before_journal_oid bjm_per_system_init_2_ 000155 default_before_journal_default_acl bjm_per_system_init_2_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return tra_ext enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. before_journal_manager_$add_acl_entries before_journal_manager_$close_bj before_journal_manager_$create_bj before_journal_manager_$delete_bj before_journal_manager_$open_bj_force cu_$arg_list_ptr dm_misc_util_$get_bootload_dir dm_misc_util_$get_enabled_bootload_dirname dm_misc_util_$log ioa_$general_rs THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$file_already_exists dm_system_data_$bj_default_dirname dm_system_data_$bj_default_filename dm_system_data_$bj_default_journal_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 74 000124 86 000134 95 000137 157 000144 164 000146 166 000164 168 000167 170 000211 173 000241 176 000255 181 000262 185 000306 191 000340 193 000351 200 000403 202 000423 208 000424 209 000427 210 000431 212 000432 217 000470 220 000500 224 000521 228 000523 231 000524 236 000532 237 000537 238 000544 245 000547 250 000555 254 000570 258 000614 264 000615 279 000623 280 000631 283 000634 287 000677 290 000727 292 000736 ----------------------------------------------------------- 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