COMPILATION LISTING OF SEGMENT bjm_per_system_init_1_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 1002.0 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This is the part one initialization for the before journal manager. 10*It is responsible for creating the objects needed to run a Data Management 11*System. This currently means the bj_pst and bj_txt. This part of 12*initialization assumes that no running DMS support exists; i.e. 13*transaction_manager_ may not be relied upon, only calls to basic data 14*management support routines (e.g. dm_per_system_). 15* 16**/ 17 18 /* HISTORY: 19* 20*Written by M. Pandolf, 07/10/82. 21*Modified: 22*08/31/82 by M. Pandolf: to split into two parts 23*02/14/83 by M. Pandolf: to set version for TXT 24*08/06/83 by Lee A. Newcomb: removed obsolete code arg. from calls 25* to dm_per_system_ entries. 26*09/07/83 by L. A. Newcomb: split part one and two into two distinct programs. 27* This helps maintenance and binding. History comments for part two 28* BJM initialization have been removed. 29*11/19/84 by Maggie Sharpe: to clean up format and dcls. 30**/ 31 32 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 33 34 35 36 bjm_per_system_init_1_: 37 procedure (p_code); 38 39 /* DECLARATIONS */ 40 41 /* Parameter */ 42 43 dcl p_code fixed bin (35) /* standard system status code */ 44 parameter; 45 46 /* Automatics */ 47 48 dcl 1 default_before_journal_default_acl /* used to set default BJ ACL */ 49 dim (1) aligned automatic, 50 2 access_name char (32) init ("*.*.*"), 51 2 modes bit (36) init ("500000000000"b3), 52 2 mbz bit (36) init ("000000000000"b3), 53 2 status_code fixed bin (35) init (0); 54 55 /* External Static: Status/Error Codes */ 56 57 dcl ( 58 dm_error_$bj_pst_not_enough_buffers 59 ) fixed bin (35) external static; 60 61 /* External Static: Data References */ 62 63 dcl ( /* external data references */ 64 dm_system_data_$bj_txt_relp bit (18), 65 sys_info$time_of_bootload fixed bin (71) 66 ) external static; 67 /* Constants */ 68 69 dcl ( 70 PAGE_SIZE fixed bin init (1024), 71 CI_SIZE fixed bin init (4096) 72 ) internal static options (constant); 73 74 /* Entries */ 75 76 dcl dm_per_system_$create entry (char (*), ptr); 77 dcl dm_per_system_$alloc entry (fixed bin, ptr); 78 79 /* Builtin */ 80 dcl ( 81 addr, divide, mod, 82 ptr, size, rel, unspec 83 ) builtin; 84 85 /* initialize the parameter */ 86 87 p_code = 0; 88 89 /* create the bj_pst */ 90 91 call dm_per_system_$create (BJ_PST, bj_pst_ptr); 92 93 call INITIALIZE_PST (); 94 if p_code ^= 0 then /* sorry */ 95 return; 96 97 /* allocate the bj_txt */ 98 99 call dm_per_system_$alloc (size (bj_txt), bj_txt_ptr); 100 101 unspec (bj_txt) = "0"b; 102 bj_txt_ptr -> bj_txt.max_n_entries = dm_system_data_$max_n_transactions; 103 bj_txt_ptr -> bj_txt.version = BJ_TXT_VERSION_1; 104 105 dm_system_data_$bj_txt_relp = rel (bj_txt_ptr); 106 107 return; 108 109 110 /* end bjm_per_system_init_1_; */ 111 112 INITIALIZE_PST: 113 proc (); 114 115 bj_pst.version = 0; 116 unspec (bj_pst.lock) = "0"b; 117 bj_pst.time_of_bootload = sys_info$time_of_bootload; 118 bj_pst.max_n_entries = dm_system_data_$bj_max_n_journals; 119 bj_pst.n_entries_used = 0; 120 bj_pst.highest_ix_used = 0; 121 122 bj_pst.pn_table_offset = PAGE_BOUNDARY (0 + size (bj_pst)); 123 bj_pst.check_in_table_offset = PAGE_BOUNDARY (bj_pst.pn_table_offset + size (bj_pn_table)); 124 bj_pst.buffer_table_offset = PAGE_BOUNDARY (bj_pst.check_in_table_offset + size (bj_check_in_table)); 125 126 /* fill in max array bound for the various tables */ 127 ptr (bj_pst_ptr, bj_pst.pn_table_offset) -> bj_pn_table.max_n_entries = dm_system_data_$bj_max_n_journals; 128 ptr (bj_pst_ptr, bj_pst.check_in_table_offset) -> bj_check_in_table.max_n_processes = 129 dm_system_data_$bj_max_n_processes; 130 ptr (bj_pst_ptr, bj_pst.check_in_table_offset) -> bj_check_in_table.max_n_journals = 131 dm_system_data_$bj_max_n_journals; 132 bj_pst.max_n_buffers = 255 - divide (bj_pst.buffer_table_offset, PAGE_SIZE, 17, 0); 133 134 135 if bj_pst.max_n_buffers < dm_system_data_$bj_max_n_journals then do; 136 p_code = dm_error_$bj_pst_not_enough_buffers; 137 return; 138 end; 139 140 bj_pst.version = BJ_PST_VERSION_1; 141 142 return; 143 144 end INITIALIZE_PST; 145 146 PAGE_BOUNDARY: 147 proc (w) returns (fixed bin (18) uns); 148 149 dcl w fixed bin (18) uns; 150 dcl n fixed bin (18) uns; 151 152 n = mod (w, PAGE_SIZE); 153 if n = 0 then return (w); 154 else return (w + (PAGE_SIZE - n)); 155 156 end PAGE_BOUNDARY; 157 158 159 /* INCLUDE FILES start next page */ 1 1 /* BEGIN dm_bj_static.incl.pl1 */ 1 2 /* 1 3*Modified: 1 4*10/04/82 by Lee A. Newcomb: To change from internal static to external 1 5* static. 1 6**/ 1 7 1 8 dcl dm_system_data_$bj_max_n_journals fixed bin ext static; 1 9 dcl dm_system_data_$bj_max_n_processes fixed bin ext static; 1 10 dcl dm_system_data_$max_n_transactions fixed bin ext static; 1 11 1 12 /* END dm_bj_static.incl.pl1 */ 1 13 160 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 */ 161 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 */ 162 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 */ 163 5 1 /* BEGIN INCLUDE FILE: dm_bj_check_in_table.incl.pl1 */ 5 2 /* 5 3*Table for fast checking of who's got what BJ open 5 4* 5 5*Written by Andre Bensoussan June/July 1982 5 6*Modified: 5 7*08/30/82 by Lee A. Newcomb: To use dm_system_data_ for max length of 5 8* vector and array bounds. 5 9**/ 5 10 /* format: style4,indattr,idind33,^indcomtxt */ 5 11 5 12 dcl bj_check_in_table_ptr ptr; 5 13 5 14 dcl 1 bj_check_in_table based (bj_check_in_table_ptr) aligned, 5 15 2 max_n_processes fixed bin, 5 16 2 max_n_journals fixed bin, 5 17 2 process_id dim (dm_system_data_$bj_max_n_processes refer 5 18 (bj_check_in_table.max_n_processes)) bit (36), 5 19 2 cross_proc_bj dim (dm_system_data_$bj_max_n_processes refer 5 20 (bj_check_in_table.max_n_processes), 5 21 dm_system_data_$bj_max_n_journals refer (bj_check_in_table.max_n_journals)) 5 22 bit (1) unaligned; 5 23 5 24 /* END INCLUDE FILE: dm_bj_check_in_table.incl.pl1 */ 164 6 1 /* BEGIN INCLUDE FILE: dm_bj_txt.incl.pl1 */ 6 2 /* 6 3*dm_bj_txt - before journal per-system transaction table. 6 4* 6 5*Designed by A. Bensoussan 6 6*Written by M. Pandolf 06/02/82 6 7*Modified: 6 8*10/01/82 by Lee A. Newcomb: To use dm_system_data_ for dimension attributes 6 9* and specify alignment on level one. 6 10*08feb83 by M. Pandolf: To restructure the TXT and TXTE. 6 11*30mar83 by M. Pandolf: To add last_completed_operation and ok_to_write. 6 12**/ 6 13 /* format: style4,indattr,idind33,^indcomtxt */ 6 14 6 15 dcl BJ_TXT_VERSION_1 fixed bin int static options (constant) init (1); 6 16 6 17 dcl bj_txt_ptr ptr; /* pointer to transaction table */ 6 18 dcl bj_txte_ptr ptr; /* pointer to transaction table element */ 6 19 6 20 dcl 1 bj_txt aligned based (bj_txt_ptr), /* transaction table */ 6 21 2 version fixed bin, /* should be BJ_TXT_VERSION_1 */ 6 22 2 max_n_entries fixed bin, 6 23 2 n_entries_used fixed bin, /* assumed contiguous */ 6 24 2 pad_header_to_32_words bit (36) dim (29), /* to mod32 align bj_txt.entry */ 6 25 2 entry dim (dm_system_data_$max_n_transactions refer (bj_txt.max_n_entries)) 6 26 like bj_txte; 6 27 6 28 dcl 1 bj_txte based (bj_txte_ptr) aligned, /* single entry, must be mod32 word aligned */ 6 29 2 tid bit (36), /* transaction id if this or last txn */ 6 30 2 bj_uid bit (36), /* UID of before journal chosen at begin mark */ 6 31 2 entry_state aligned, 6 32 3 last_completed_operation char (4), /* to prevent multiple abort and commit */ 6 33 3 ok_to_write bit (1), /* basically validates using this entry */ 6 34 2 owner_info aligned, /* info about creation of txte */ 6 35 3 process_id bit (36), /* of process that wrote begin mark */ 6 36 2 operator_info aligned, /* of process that is currently using this txte */ 6 37 3 process_id bit (36), /* of process that shall write subsequent marks */ 6 38 3 ppte_ptr ptr, /* pointer to PPTE for this transaction */ 6 39 3 bj_oid bit (36), /* before journal opening ID for operator */ 6 40 2 records_info aligned, /* grouped to be saved and restored as one unit */ 6 41 3 curr_checkpoint_rec_id bit (36), /* ident of checkpoint record if doing a rollback, */ 6 42 /* else, this value must be zero. */ 6 43 3 first_bj_rec_id bit (36), /* ident of first mark for this transaction */ 6 44 3 last_bj_rec_id bit (36), /* ident of current mark for this transaction */ 6 45 3 n_rec_written fixed bin (35), /* count of marks written for this transaction */ 6 46 3 n_bytes_written fixed bin (35), /* count of total bytes written to journal */ 6 47 3 last_fm_postcommit_handler_rec_id 6 48 bit (36), /* ident of last special handler in list */ 6 49 2 append_state aligned, /* the first two members define the state of this */ 6 50 3 current_operation char (4), /* transaction and its interaction with bj_storage: */ 6 51 3 pending_bj_rec_id bit (36), /* operation rec_id state */ 6 52 /* *null* XXX quiesed */ 6 53 /* ^null "0"b write pending */ 6 54 /* ^null ^"0"b write completed, needs flushing */ 6 55 /* */ 6 56 3 pending_n_rec_written fixed bin (35), /* copy to n_rec_written before flush */ 6 57 3 pending_n_bytes_written fixed bin (35), /* copy to n_bytes_written before flush */ 6 58 2 pad_entry_to_32_words bit (36) dim (13); /* make any part of table 32 words long */ 6 59 6 60 /* END INCLUDE FILE: dm_bj_txt_ptr */ 165 7 1 /* BEGIN INCLUDE FILE dm_bj_names.incl.pl1 */ 7 2 7 3 dcl SYSTEM_BJ char (32) internal static options (constant) 7 4 init ("dm_default_bj"); 7 5 7 6 /* SYSTEM_BJ is the name of the before journal to be used by processes 7 7* which have not set up their own journals for data management. */ 7 8 7 9 7 10 dcl BJ_PST char (16) internal static options (constant) init ("bj_pst_segment"); 7 11 7 12 /* BJ_PST is the name of the system wide before journal registration table */ 7 13 7 14 /* END INCLUDE FILE dm_bj_names.incl.pl1 */ 166 8 1 /* BEGIN INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 8 2 8 3 /* format: ^indcom */ 8 4 8 5 /* DESCRIPTION: 8 6* These are the severity codes used by the dms daemon when calling its logger. 8 7* The severity is ranked thusly: 8 8* 8 9* severity log write situation 8 10* -------- --- ----- --------- 8 11* 0 no yes standard output, query, etc. 8 12* 1 yes yes fatal error, terminate dms daemon. 8 13* 2 yes yes nonfatal error. 8 14* 3 yes yes informative message. 8 15* 4 yes no log information only. 8 16**/ 8 17 8 18 /* HISTORY: 8 19* 8 20*Written by M. Pandolf, 10/06/82. 8 21*Modified: 8 22*12/10/84 by R. Michael Tague: Rename and reformat description/history. 8 23*01/13/85 by Lee A. Newcomb: Renamed to dm_log_sv_codes from 8 24* dm_daemon_sv_codes as the severity codes for the DM log are not 8 25* restrained to the DM Daemon's use. 8 26*01/24/85 by Lee A. Newcomb: Fixed to say dm_log_sv_codes.incl.pl1 in the 8 27* BEGIN and END INCLUDE comments, instead of dm_daemon_sv_codes.==. 8 28**/ 8 29 8 30 /* format: style5 */ 8 31 8 32 dcl (PRINT_SV, QUERY_SV) fixed bin internal static 8 33 options (constant) init (0); 8 34 dcl (CRASH_SV, FATAL_SV) fixed bin internal static 8 35 options (constant) init (1); 8 36 dcl ERROR_SV fixed bin internal static 8 37 options (constant) init (2); 8 38 dcl INFORM_SV fixed bin internal static 8 39 options (constant) init (3); 8 40 dcl LOG_SV fixed bin internal static 8 41 options (constant) init (4); 8 42 8 43 /* END INCLUDE FILE dm_log_sv_codes.incl.pl1 */ 167 168 169 170 end bjm_per_system_init_1_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0915.9 bjm_per_system_init_1_.pl1 >spec>on>7192.pbf-04/04/85>bjm_per_system_init_1_.pl1 160 1 01/07/85 0857.8 dm_bj_static.incl.pl1 >ldd>include>dm_bj_static.incl.pl1 161 2 01/07/85 0857.7 dm_bj_pst.incl.pl1 >ldd>include>dm_bj_pst.incl.pl1 162 3 04/04/85 0819.1 dm_bj_pste.incl.pl1 >spec>on>7192.pbf-04/04/85>dm_bj_pste.incl.pl1 163 4 01/07/85 0857.4 dm_bj_pn_table.incl.pl1 >ldd>include>dm_bj_pn_table.incl.pl1 164 5 01/07/85 0857.3 dm_bj_check_in_table.incl.pl1 >ldd>include>dm_bj_check_in_table.incl.pl1 165 6 01/07/85 0858.0 dm_bj_txt.incl.pl1 >ldd>include>dm_bj_txt.incl.pl1 166 7 01/07/85 0857.4 dm_bj_names.incl.pl1 >ldd>include>dm_bj_names.incl.pl1 167 8 03/06/85 1031.1 dm_log_sv_codes.incl.pl1 >ldd>include>dm_log_sv_codes.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_PST 000000 constant char(16) initial unaligned dcl 7-10 set ref 91* BJ_PST_VERSION_1 constant fixed bin(17,0) initial dcl 2-14 ref 140 BJ_TXT_VERSION_1 constant fixed bin(17,0) initial dcl 6-15 ref 103 PAGE_SIZE 000312 constant fixed bin(17,0) initial dcl 69 ref 132 152 154 access_name 000100 automatic char(32) initial array level 2 dcl 48 set ref 48* bj_check_in_table based structure level 1 dcl 5-14 set ref 124 bj_check_in_table_ptr automatic pointer dcl 5-12 ref 124 bj_pn_table based structure level 1 dcl 4-15 set ref 123 bj_pn_table_ptr automatic pointer dcl 4-13 ref 123 bj_pst based structure level 1 dcl 2-18 set ref 122 bj_pst_ptr 000114 automatic pointer dcl 2-16 set ref 91* 115 116 117 118 119 120 122 122 123 123 124 124 127 127 128 128 130 130 132 132 135 140 bj_pste based structure level 1 dcl 3-48 bj_txt based structure level 1 dcl 6-20 set ref 99 99 101* bj_txt_ptr 000116 automatic pointer dcl 6-17 set ref 99 99 99* 101 102 103 105 bj_txte based structure level 1 dcl 6-28 buffer_table_offset 13 based fixed bin(18,0) level 2 unsigned dcl 2-18 set ref 124* 132 check_in_table_offset 12 based fixed bin(18,0) level 2 unsigned dcl 2-18 set ref 123* 124 128 130 default_before_journal_default_acl 000100 automatic structure array level 1 dcl 48 divide builtin function dcl 80 ref 132 dm_error_$bj_pst_not_enough_buffers 000010 external static fixed bin(35,0) dcl 57 ref 136 dm_per_system_$alloc 000020 constant entry external dcl 77 ref 99 dm_per_system_$create 000016 constant entry external dcl 76 ref 91 dm_system_data_$bj_max_n_journals 000022 external static fixed bin(17,0) dcl 1-8 ref 118 122 123 124 127 130 135 dm_system_data_$bj_max_n_processes 000024 external static fixed bin(17,0) dcl 1-9 ref 124 124 128 dm_system_data_$bj_txt_relp 000012 external static bit(18) unaligned dcl 63 set ref 105* dm_system_data_$max_n_transactions 000026 external static fixed bin(17,0) dcl 1-10 ref 99 99 102 highest_ix_used 10 based fixed bin(17,0) level 2 dcl 2-18 set ref 120* lock 2 based structure level 2 dcl 2-18 set ref 116* max_n_buffers 14 based fixed bin(17,0) level 2 dcl 2-18 set ref 132* 135 max_n_entries 6 based fixed bin(17,0) level 2 in structure "bj_pst" dcl 2-18 in procedure "bjm_per_system_init_1_" set ref 118* max_n_entries 1 based fixed bin(17,0) level 2 in structure "bj_txt" dcl 6-20 in procedure "bjm_per_system_init_1_" set ref 101 102* max_n_entries based fixed bin(17,0) level 2 in structure "bj_pn_table" dcl 4-15 in procedure "bjm_per_system_init_1_" set ref 127* max_n_journals 1 based fixed bin(17,0) level 2 dcl 5-14 set ref 130* max_n_processes based fixed bin(17,0) level 2 dcl 5-14 set ref 128* mbz 11 000100 automatic bit(36) initial array level 2 dcl 48 set ref 48* mod builtin function dcl 80 ref 152 modes 10 000100 automatic bit(36) initial array level 2 dcl 48 set ref 48* n 000140 automatic fixed bin(18,0) unsigned dcl 150 set ref 152* 153 154 n_entries_used 7 based fixed bin(17,0) level 2 dcl 2-18 set ref 119* p_code parameter fixed bin(35,0) dcl 43 set ref 36 87* 94 136* pn_table_offset 11 based fixed bin(18,0) level 2 unsigned dcl 2-18 set ref 122* 123 127 ptr builtin function dcl 80 ref 127 128 130 rel builtin function dcl 80 ref 105 size builtin function dcl 80 ref 99 99 122 123 124 status_code 12 000100 automatic fixed bin(35,0) initial array level 2 dcl 48 set ref 48* sys_info$time_of_bootload 000014 external static fixed bin(71,0) dcl 63 ref 117 time_of_bootload 4 based fixed bin(71,0) level 2 dcl 2-18 set ref 117* unspec builtin function dcl 80 set ref 101* 116* version based fixed bin(17,0) level 2 in structure "bj_txt" dcl 6-20 in procedure "bjm_per_system_init_1_" set ref 103* version based fixed bin(17,0) level 2 in structure "bj_pst" dcl 2-18 in procedure "bjm_per_system_init_1_" set ref 115* 140* w parameter fixed bin(18,0) unsigned dcl 149 ref 146 152 153 154 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BJ_PSTE_VERSION_2 internal static fixed bin(17,0) initial dcl 3-42 CI_SIZE internal static fixed bin(17,0) initial dcl 69 CRASH_SV internal static fixed bin(17,0) initial dcl 8-34 ERROR_SV internal static fixed bin(17,0) initial dcl 8-36 FATAL_SV internal static fixed bin(17,0) initial dcl 8-34 INFORM_SV internal static fixed bin(17,0) initial dcl 8-38 LOG_SV internal static fixed bin(17,0) initial dcl 8-40 PRINT_SV internal static fixed bin(17,0) initial dcl 8-32 QUERY_SV internal static fixed bin(17,0) initial dcl 8-32 SYSTEM_BJ internal static char(32) initial unaligned dcl 7-3 addr builtin function dcl 80 bj_pste_ptr automatic pointer dcl 3-45 bj_txte_ptr automatic pointer dcl 6-18 NAMES DECLARED BY EXPLICIT CONTEXT. INITIALIZE_PST 000135 constant entry internal dcl 112 ref 93 PAGE_BOUNDARY 000271 constant entry internal dcl 146 ref 122 123 124 bjm_per_system_init_1_ 000017 constant entry external dcl 36 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 452 502 313 462 Length 1046 313 30 330 137 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bjm_per_system_init_1_ 118 external procedure is an external procedure. INITIALIZE_PST internal procedure shares stack frame of external procedure bjm_per_system_init_1_. PAGE_BOUNDARY internal procedure shares stack frame of external procedure bjm_per_system_init_1_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bjm_per_system_init_1_ 000100 default_before_journal_default_acl bjm_per_system_init_1_ 000114 bj_pst_ptr bjm_per_system_init_1_ 000116 bj_txt_ptr bjm_per_system_init_1_ 000140 n PAGE_BOUNDARY THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return mod_fx1 ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dm_per_system_$alloc dm_per_system_$create THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$bj_pst_not_enough_buffers dm_system_data_$bj_max_n_journals dm_system_data_$bj_max_n_processes dm_system_data_$bj_txt_relp dm_system_data_$max_n_transactions sys_info$time_of_bootload LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 36 000014 48 000024 87 000054 91 000056 93 000072 94 000073 99 000076 101 000113 102 000125 103 000130 105 000132 107 000134 112 000135 115 000136 116 000137 117 000143 118 000146 119 000150 120 000151 122 000152 123 000166 124 000205 127 000234 128 000243 130 000250 132 000252 135 000260 136 000262 137 000265 140 000266 142 000270 146 000271 152 000273 153 000277 154 000304 ----------------------------------------------------------- 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