COMPILATION LISTING OF SEGMENT bj_ci_zero Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0936.7 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* bj_ci_zero has several entries for reading or writing CI zero of 10* a before journal. CI0 only contains the BJ header, never any before 11* images or marks. Note we do not need to copy the parameters as this 12* is only called from a bjm_* module in the DM ring. 13**/ 14 15 /* HISTORY: 16* 17*Written by Andre Bensoussan, 7/??/82 18*Modified: 19*10/15/82 by M. Pandolf: to use file_manager_ to manipulate data management 20* system files. 21*10/24/83 by M. Pandolf: to have get_bj_uid check to see that the dm file is 22* really a before journal. 23*06/07/84 by Lee Baldwin: Renamed dm_error_$bj_header_bad to $bj_bad_header. 24*12/05/84 by M. Sharpe: to fix format; to set/reset validation level around 25* the calls to file_manager_. 26*02/13/85 by Lee A. Newcomb: Fixed to use BJ_PSTE_VERSION_2, use an 27* ERROR_RETURN proc, use like to declare my_ci_parts and correctly 28* initialize it, and format declarations; added a description 29* to that blank section; removed the invalid entry bj_ci_zero. 30**/ 31 32 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 33 34 bj_ci_zero$get_header: 35 proc (p_bj_file_oid, p_bj_header_ptr, p_bj_header_n_words); 36 37 /* DECLARATIONS */ 38 39 /* Parameter */ 40 dcl ( 41 p_bj_file_oid bit (36) aligned, 42 p_bj_header_ptr ptr, 43 p_bj_header_n_words fixed bin 44 ) parameter; 45 46 /* Automatic */ 47 dcl ( 48 code fixed bin (35), 49 1 my_bj_header automatic aligned like bj_header, 50 1 my_ci_header aligned like ci_header, 51 saved_level fixed bin 52 ) automatic; 53 54 dcl 1 my_ci_parts aligned, 55 2 number_of_parts fixed bin (17) init (1), 56 2 must_be_zero fixed bin init (0), 57 2 part dim (1) like ci_parts.part; 58 59 /* Based */ 60 /* Builtin */ 61 dcl (addr, null, size) builtin; 62 63 /* Condition */ 64 dcl cleanup condition; 65 66 /* Constant */ 67 dcl ME char (10) init ("bj_ci_zero") 68 internal static options (constant); 69 70 /* Entry */ 71 dcl ( 72 bj_report_err entry (fixed bin (35), char (*)), 73 cu_$level_get entry (fixed bin), 74 cu_$level_set entry (fixed bin), 75 file_manager_$get entry (bit (36) aligned, 76 fixed bin (24) uns, ptr, 77 fixed bin (35)), 78 file_manager_$get_ci_header entry (bit (36) aligned, 79 fixed bin (24) uns, 80 1 aligned like ci_header, 81 fixed bin (35)), 82 file_manager_$put_journal entry (bit (36) aligned, 83 fixed bin (24) uns, ptr, 84 fixed bin (35)), 85 get_ring_ entry () returns (fixed bin (3)) 86 ) external; 87 88 /* External */ 89 dcl dm_error_$bj_bad_header fixed bin (35) external; 90 91 /* bj_ci_zero$get_header: repeat for reader */ 92 /* entry (p_bj_file_oid, p_bj_header_ptr, p_bj_header_n_words); */ 93 94 call FILL_CI_PARTS (p_bj_header_ptr, p_bj_header_n_words); 95 96 call cu_$level_get (saved_level); 97 on cleanup call cu_$level_set (saved_level); 98 99 call cu_$level_set (get_ring_ ()); 100 call file_manager_$get (p_bj_file_oid, 0, ci_parts_ptr, code); 101 call cu_$level_set (saved_level); 102 103 if code ^= 0 then 104 call ERROR_RETURN (code); 105 106 goto MAIN_RETURN; /* all done */ 107 108 /* end bj_ci_zero$get_header; */ 109 110 bj_ci_zero$put_header: 111 entry (p_bj_file_oid, p_bj_header_ptr, p_bj_header_n_words); 112 113 call FILL_CI_PARTS (p_bj_header_ptr, p_bj_header_n_words); 114 115 call cu_$level_get (saved_level); 116 on cleanup call cu_$level_set (saved_level); 117 118 call cu_$level_set (get_ring_ ()); 119 call file_manager_$put_journal (p_bj_file_oid, 0, ci_parts_ptr, code); 120 call cu_$level_set (saved_level); 121 122 if code ^= 0 then 123 call ERROR_RETURN (code); 124 125 goto MAIN_RETURN; /* no error */ 126 127 /* end bj_ci_zero$put_header; */ 128 129 bj_ci_zero$get_pf_uid: 130 entry (p_bj_file_oid) returns (bit (36)); 131 132 my_ci_header.stamp.version = CI_HEADER_STAMP_VERSION_1; 133 134 call cu_$level_get (saved_level); 135 on cleanup call cu_$level_set (saved_level); 136 137 call cu_$level_set (get_ring_ ()); 138 call file_manager_$get_ci_header (p_bj_file_oid, 0, my_ci_header, code); 139 call cu_$level_set (saved_level); 140 141 if code ^= 0 then 142 call ERROR_RETURN (code); 143 144 return (my_ci_header.id.uid); 145 146 /* end bj_ci_zero$get_pf_oid; */ 147 148 bj_ci_zero$get_bj_uid: 149 entry (p_bj_file_oid) returns (bit (36)); 150 151 call bj_ci_zero$get_header (p_bj_file_oid, addr (my_bj_header), 152 size (my_bj_header)); 153 154 if my_bj_header.version ^= BJ_PSTE_VERSION_2 then 155 call ERROR_RETURN (dm_error_$bj_bad_header); 156 157 return (my_bj_header.bj_uid); 158 159 /* end bj_ci_zero$get_bj_uid; */ 160 161 MAIN_RETURN: 162 return; 163 164 ERROR_RETURN: 165 proc (er_p_code); 166 167 dcl er_p_code fixed bin (35) parameter; 168 169 call bj_report_err (er_p_code, ME); 170 return; /* should not get this return */ 171 172 end ERROR_RETURN; 173 174 FILL_CI_PARTS: 175 proc (fcp_p_bj_header_ptr, fcp_p_bj_header_n_words); 176 177 dcl ( 178 fcp_p_bj_header_ptr ptr, 179 fcp_p_bj_header_n_words fixed bin 180 ) parameter; 181 182 /* Some external entries need a ci_parts structure filled */ 183 /* in and by definition there is only one part, so we */ 184 /* resort to a common proc. */ 185 186 ci_parts_ptr = addr (my_ci_parts); 187 188 ci_parts.number_of_parts = 1; 189 ci_parts.part (1).offset_in_bytes = 0; 190 ci_parts.part (1).length_in_bytes = p_bj_header_n_words * 4; 191 /* file_manager_ requires byte number */ 192 ci_parts.part (1).local_ptr = p_bj_header_ptr; 193 194 return; 195 196 end FILL_CI_PARTS; 197 1 1 /* BEGIN INCLUDE FILE: dm_ci_parts.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* 1 5* This include file contains the ci_parts structure. This structure 1 6* is used across the file_manager_ interface to specify the parts of a 1 7* control interval to get or put. If the number_of parts is equal to 0, 1 8* modules which take ci_parts interpret this case to mean to do everything 1 9* except the actual requested operation, i.e., lock the control interval 1 10* but don't get anything. offset_in_bytes is the 0-originned offset in 1 11* bytes from the beginning of the addressable portion of the control interval. 1 12* An offset_in_bytes which is in the addressable portion is in error. 1 13* Likewise, if offset_in_bytes + length_in_bytes is outside of the addressable 1 14* portion, it is in error. 1 15**/ 1 16 1 17 /* HISTORY: 1 18*Written by Matthew Pierret, 01/28/82. 1 19* (01/28/82 Andre Bensoussan, Design.) 1 20*Modified: 1 21*11/07/84 by Matthew Pierret: To add must_be_zero, initial attributes on 1 22* automatic storge. 1 23**/ 1 24 1 25 /* format: style2,ind3 */ 1 26 1 27 dcl 1 ci_parts aligned based (ci_parts_ptr), 1 28 2 number_of_parts fixed bin (17), 1 29 2 must_be_zero fixed bin, 1 30 2 part (cip_number_of_parts refer (ci_parts.number_of_parts)), 1 31 3 offset_in_bytes fixed bin (17), 1 32 3 length_in_bytes fixed bin (17), 1 33 3 local_ptr ptr; 1 34 1 35 dcl ci_parts_ptr ptr init (null ()); 1 36 dcl cip_number_of_parts fixed bin (17) init (0); 1 37 1 38 1 39 /* BEGIN INCLUDE FILE: dm_ci_parts.incl.pl1 */ 198 199 2 1 /* BEGIN INCLUDE FILE: dm_ci_header.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* 2 5* This include file contains various structures which make up the 2 6* header and trailer of a control interval. 2 7* 2 8* **** NOTE: The include file dm_ci.incl.pl1 is heavily dependent **** 2 9* **** on this include file. When changing this include file, **** 2 10* **** check dm_ci.incl.pl1 to see if it is affected. **** 2 11**/ 2 12 2 13 /* HISTORY: 2 14*Written by Jeffrey D. Ives, 03/02/82. 2 15* (Design by Andre Bensoussan and Jeffrey D. Ives) 2 16*Modified: 2 17*11/02/84 by Matthew Pierret: Re-organized so that dm_ci.incl.pl1 and 2 18* dm_ci_header.incl.pl1 do not duplicate structures or constants. 2 19**/ 2 20 2 21 /* format: style2,ind3 */ 2 22 2 23 /* ci_header is the first four words of a control interval. Its contents 2 24* are used to verify that a control interval is in an expected format, 2 25* to identify the control interval and the file to which the control 2 26* interval belongs, and to maintain information for the synchronization 2 27* of disk I/O between DM file control intervals and associated before 2 28* journal control intervals. The first two words are the time stamp for 2 29* synchronization; the latter two identify the control interval. */ 2 30 2 31 dcl ci_header_ptr ptr; 2 32 dcl 1 ci_header aligned based (ci_header_ptr), 2 33 2 stamp like ci_stamp, 2 34 2 id like ci_id; 2 35 2 36 /* ci_trailer is the last two words of a control interval and must match 2 37* the first two words (ci_header.stamp). */ 2 38 2 39 dcl ci_trailer_ptr ptr; 2 40 dcl 1 ci_trailer like ci_header.stamp aligned based (ci_trailer_ptr); 2 41 2 42 2 43 /* ci_stamp is a two-word date/time modified stamp, consisting of: 2 44* version: a 9-bit version string for the structure 2 45* bj_idx: before journal index for I/O synchronization 2 46* time_modified: Multics clock time of last modification */ 2 47 2 48 dcl 1 ci_stamp aligned based, 2 49 3 version bit (9) unal, 2 50 3 bj_idx fixed bin (9) uns unal, 2 51 3 time_modified fixed bin (53) unal; 2 52 2 53 dcl CI_HEADER_STAMP_VERSION_1 2 54 bit (9) aligned static options (constant) init ("641"b3); 2 55 2 56 /* ci_id is a two-word identification of the control interval, which 2 57* rarely changes and consists of: 2 58* uid: DM file unique identifier 2 59* size_code: the control interval size in bytes, in an encoded 2 60* form (see ci_size_code below). 2 61* num: the control interval number. 0 is the number of the first 2 62* control interval of a file. */ 2 63 2 64 dcl 1 ci_id aligned based, 2 65 3 uid bit (36), 2 66 3 size_code bit (9) unal, 2 67 3 num fixed bin (27) uns unal; 2 68 2 69 /* ci_size_code is the structure which defines the content of ci_id.size_code. 2 70* The size in bytes of a control interval is equal to 2 71* (2 ** ci_size_code.exponent * (64 + 8 * ci_size_code.addon)). */ 2 72 2 73 dcl 1 ci_size_code aligned based, 2 74 2 exponent fixed bin (6) uns unal, 2 75 2 addon fixed bin (3) uns unal; 2 76 2 77 /* ci_header_chunks is a structure which can be used to update the 2 78* ci_stamp or ci_id in one memory cycle. */ 2 79 2 80 dcl 1 ci_header_chunks aligned based (ci_header_ptr), 2 81 2 stamp fixed bin (71), 2 82 2 id fixed bin (71); 2 83 2 84 /* ci_trailer_chunk is a structure which can e used to update the 2 85* ci_trailer in one memory cycle. */ 2 86 2 87 dcl 1 ci_trailer_chunk aligned based, 2 88 2 stamp fixed bin (71); 2 89 2 90 2 91 /* END INCLUDE FILE: dm_ci_header.incl.pl1 */ 200 201 3 1 /* BEGIN INCLUDE FILE: dm_bj_header.incl.pl1 */ 3 2 /* 3 3*Currently a BJ header (CI0 of the BJ PF) is just like a bj_pst entry for the journal. 3 4* 3 5*Written by Andre Bensoussan June/July 1982 3 6*Modified: 3 7*09/29/82 by Lee A. Newcomb: To make force alignment appropriately. 3 8**/ 3 9 /* format: style4,indattr,idind33,^indcomtxt */ 3 10 3 11 dcl BJ_UPDATE_FREQUENCY fixed bin internal static init (10); 3 12 3 13 dcl bj_header_ptr ptr; 3 14 3 15 dcl 1 bj_header based (bj_header_ptr) aligned like bj_pste; 3 16 3 17 /* END INCLUDE FILE: dm_bj_header.incl.pl1 */ 202 203 4 1 /* BEGIN INCLUDE FILE: dm_bj_pste.incl.pl1 */ 4 2 4 3 /* DESCRIPTION 4 4* 4 5* Layout of the per-system before journal table 4 6* entries. This structure is used to contain information 4 7* about a before journal active in a running DMS. It is 4 8* currently also used as the header of a before journal 4 9* (see dm_bj_header.incl.pl1). Version changes to this 4 10* structure require either automatic conversion to be set 4 11* up, or users to be told to re-create their journals. 4 12* 4 13* Currently, a bj_pste must be 64 words long; any 4 14* future changes must at least make sure a bj_pste is an 4 15* even # of words for the alignment of some of its 4 16* elements. 4 17**/ 4 18 4 19 /* HISTORY: 4 20* 4 21*Written by Andre Bensoussan, 06/15/82. 4 22*Modified: 4 23*08/16/82 by Andre Bensoussan: to add stamp_for_last_ci_put. 4 24*09/29/82 by Lee A. Newcomb: to fix BJ_PSTE_VERSION_1 and fix some 4 25* alignments. 4 26*11/01/82 by Andre Bensoussan: to add "stamp_for_last_ci_on_disk", 4 27* "n_bi_still_unsafe", and "n_bi_being_saved". 4 28*02/08/83 by M. Pandolf: to add append_state structure. 4 29*03/19/83 by L. A. Newcomb: to fix up some alignments and spelling problems. 4 30*04/27/83 by M. Pandolf: to add meter structure at end. 4 31*02/11/85 by Lee A. Newcomb: Fixed version constant name to agree with its 4 32* value of 2; fixed references to page files or PF's; fixed format 4 33* of description and history sections. 4 34*03/07/85 by Lee A. Newcomb: Changed a pad word to be txn_storage_limit and 4 35* expanded on the description for future generations (no 4 36* version was made). 4 37*03/27/85 by Lee A. Newcomb: Changed one of the unused meters to 4 38* n_txn_storage_limit_hits (again without a version change). 4 39**/ 4 40 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 4 41 4 42 dcl BJ_PSTE_VERSION_2 fixed bin internal static 4 43 options (constant) init (2); 4 44 4 45 dcl bj_pste_ptr ptr; 4 46 4 47 /* MUST HAVE EVEN NUMBER OR WORDS */ 4 48 dcl 1 bj_pste based (bj_pste_ptr) aligned, 4 49 2 version fixed bin, 4 50 2 bj_ix fixed bin, /* Index of this entry in bj_pst table */ 4 51 2 lock aligned, 4 52 3 pid bit (36), /* process ID of lock owner */ 4 53 3 event bit (36), 4 54 2 bj_uid bit (36), /* UID of BJ file */ 4 55 2 ci_size fixed bin, /* In number of bytes */ 4 56 2 max_size fixed bin, /* In number of ci's */ 4 57 2 active bit (1) aligned, /* 0 means journal not being used */ 4 58 2 time_header_updated fixed bin (71), 4 59 2 earliest_meaningful_time fixed bin (71), /* time stamp on first valid control interval */ 4 60 2 update_frequency fixed bin, /* Not used yet, probably will be how many CIs */ 4 61 2 last_rec_id bit (36), /* rec id of the last logical record in journal */ 4 62 2 n_processes fixed bin, /* Number of processes using this BJ */ 4 63 2 n_txn fixed bin, /* Number of txn in progress using this BJ */ 4 64 2 last_ci_info aligned, 4 65 3 last_ci_buffered fixed bin (24) uns, /* Last ci encached in the buffer */ 4 66 3 last_ci_put fixed bin (24) uns, /* Last ci put in the BJ */ 4 67 3 last_ci_flushed fixed bin (24) uns, /* Last ci for which flush initiated */ 4 68 3 last_ci_on_disk fixed bin (24) uns, /* Last ci of that portion of the BJ known to be ... */ 4 69 /* .. completely on disk */ 4 70 3 stamp_for_last_ci_put fixed bin (71), /* Time stamp associated with the last ci put in the BJ */ 4 71 3 stamp_for_last_ci_on_disk fixed bin (71), /* Time stamp associated with the last ci on disk in the BJ */ 4 72 2 n_bi_still_unsafe fixed bin, /* number of bi's still not on disk */ 4 73 2 n_bi_being_saved fixed bin, /* number of bi's for which flush initiated */ 4 74 2 buffer_offset fixed bin (18) uns, /* Now allocated in the bj_pst segment */ 4 75 2 txn_storage_limit fixed bin (35), /* # of bytes a single txn may write */ 4 76 2 cl aligned, /* Circular List */ 4 77 3 origin_ci fixed bin (24) uns, 4 78 3 lowest_ci fixed bin (24) uns, 4 79 3 highest_ci fixed bin (24) uns, 4 80 3 number_ci fixed bin (24) uns, 4 81 2 append_state aligned, 4 82 3 current_operation char (4), /* equal to "appe" when append in progress */ 4 83 3 pending_n_txn fixed bin, /* n_txn value when append done */ 4 84 3 pending_last_rec_id bit (36), /* last_rec_id value after append done */ 4 85 3 pending_last_element_id bit (36), /* last element id after append done */ 4 86 3 txte_rec_id_relp bit (18), /* rel ptr into seg containing TXT for txte.pending_bj_rec_id */ 4 87 2 pad_to_even_word1 bit (36) aligned, 4 88 2 meters aligned, /* dim (10) fixed bin (71), */ 4 89 3 n_bi_written fixed bin (71), /* meter (1) */ 4 90 3 n_bi_bytes_written fixed bin (71), /* meter (2) */ 4 91 3 n_journal_full fixed bin (71), /* meter (3) */ 4 92 3 n_successful_recycles fixed bin (71), /* meter (4) */ 4 93 3 n_ci_recycled fixed bin (71), /* meter (5) */ 4 94 3 n_txn_started fixed bin (71), /* meter (6) */ 4 95 3 n_non_null_txn fixed bin (71), /* meter (7) */ 4 96 3 n_txn_storage_limit_hits fixed bin (71), /* meter (8) */ 4 97 3 meter (9:10) fixed bin (71), 4 98 /* meter (9) - meter (10) */ 4 99 2 pad_to_64_words (6) bit (36); /* 64 is even (see below) */ 4 100 4 101 4 102 /* END INCLUDE FILE: dm_bj_pste.incl.pl1 */ 204 205 5 1 /* BEGIN dm_bj_static.incl.pl1 */ 5 2 /* 5 3*Modified: 5 4*10/04/82 by Lee A. Newcomb: To change from internal static to external 5 5* static. 5 6**/ 5 7 5 8 dcl dm_system_data_$bj_max_n_journals fixed bin ext static; 5 9 dcl dm_system_data_$bj_max_n_processes fixed bin ext static; 5 10 dcl dm_system_data_$max_n_transactions fixed bin ext static; 5 11 5 12 /* END dm_bj_static.incl.pl1 */ 5 13 206 207 208 209 end bj_ci_zero$get_header; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0826.0 bj_ci_zero.pl1 >spec>on>7192.pbf-04/04/85>bj_ci_zero.pl1 198 1 01/07/85 0900.8 dm_ci_parts.incl.pl1 >ldd>include>dm_ci_parts.incl.pl1 200 2 01/07/85 0900.5 dm_ci_header.incl.pl1 >ldd>include>dm_ci_header.incl.pl1 202 3 01/07/85 0857.4 dm_bj_header.incl.pl1 >ldd>include>dm_bj_header.incl.pl1 204 4 04/04/85 0819.1 dm_bj_pste.incl.pl1 >spec>on>7192.pbf-04/04/85>dm_bj_pste.incl.pl1 206 5 01/07/85 0857.8 dm_bj_static.incl.pl1 >ldd>include>dm_bj_static.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_PSTE_VERSION_2 constant fixed bin(17,0) initial dcl 4-42 ref 154 CI_HEADER_STAMP_VERSION_1 constant bit(9) initial dcl 2-53 ref 132 ME 000000 constant char(10) initial unaligned dcl 67 set ref 169* addr builtin function dcl 61 ref 151 151 186 bj_header based structure level 1 dcl 3-15 bj_pste based structure level 1 dcl 4-48 bj_report_err 000010 constant entry external dcl 71 ref 169 bj_uid 4 000102 automatic bit(36) level 2 dcl 47 set ref 157 ci_header based structure level 1 dcl 2-32 ci_id based structure level 1 dcl 2-64 ci_parts based structure level 1 dcl 1-27 ci_parts_ptr 000224 automatic pointer initial dcl 1-35 set ref 100* 119* 1-35* 186* 188 189 190 192 ci_stamp based structure level 1 dcl 2-48 cip_number_of_parts 000226 automatic fixed bin(17,0) initial dcl 1-36 set ref 1-36* cleanup 000216 stack reference condition dcl 64 ref 97 116 135 code 000100 automatic fixed bin(35,0) dcl 47 set ref 100* 103 103* 119* 122 122* 138* 141 141* cu_$level_get 000012 constant entry external dcl 71 ref 96 115 134 cu_$level_set 000014 constant entry external dcl 71 ref 97 99 101 116 118 120 135 137 139 dm_error_$bj_bad_header 000026 external static fixed bin(35,0) dcl 89 set ref 154* er_p_code parameter fixed bin(35,0) dcl 167 set ref 164 169* fcp_p_bj_header_n_words parameter fixed bin(17,0) dcl 177 ref 174 fcp_p_bj_header_ptr parameter pointer dcl 177 ref 174 file_manager_$get 000016 constant entry external dcl 71 ref 100 file_manager_$get_ci_header 000020 constant entry external dcl 71 ref 138 file_manager_$put_journal 000022 constant entry external dcl 71 ref 119 get_ring_ 000024 constant entry external dcl 71 ref 99 99 118 118 137 137 id 2 000202 automatic structure level 2 dcl 47 length_in_bytes 3 based fixed bin(17,0) array level 3 dcl 1-27 set ref 190* local_ptr 4 based pointer array level 3 dcl 1-27 set ref 192* must_be_zero 1 000210 automatic fixed bin(17,0) initial level 2 dcl 54 set ref 54* my_bj_header 000102 automatic structure level 1 dcl 47 set ref 151 151 151 151 my_ci_header 000202 automatic structure level 1 dcl 47 set ref 138* my_ci_parts 000210 automatic structure level 1 dcl 54 set ref 186 null builtin function dcl 61 ref 1-35 number_of_parts based fixed bin(17,0) level 2 in structure "ci_parts" dcl 1-27 in procedure "bj_ci_zero$get_header" set ref 188* number_of_parts 000210 automatic fixed bin(17,0) initial level 2 in structure "my_ci_parts" dcl 54 in procedure "bj_ci_zero$get_header" set ref 54* offset_in_bytes 2 based fixed bin(17,0) array level 3 dcl 1-27 set ref 189* p_bj_file_oid parameter bit(36) dcl 40 set ref 34 100* 110 119* 129 138* 148 151* p_bj_header_n_words parameter fixed bin(17,0) dcl 40 set ref 34 94* 110 113* 190 p_bj_header_ptr parameter pointer dcl 40 set ref 34 94* 110 113* 192 part 2 based structure array level 2 dcl 1-27 saved_level 000206 automatic fixed bin(17,0) dcl 47 set ref 96* 97* 101* 115* 116* 120* 134* 135* 139* size builtin function dcl 61 ref 151 151 stamp based structure level 2 in structure "ci_header" dcl 2-32 in procedure "bj_ci_zero$get_header" stamp 000202 automatic structure level 2 in structure "my_ci_header" dcl 47 in procedure "bj_ci_zero$get_header" uid 2 000202 automatic bit(36) level 3 dcl 47 set ref 144 version 000102 automatic fixed bin(17,0) level 2 in structure "my_bj_header" dcl 47 in procedure "bj_ci_zero$get_header" set ref 154 version 000202 automatic bit(9) level 3 in structure "my_ci_header" packed unaligned dcl 47 in procedure "bj_ci_zero$get_header" set ref 132* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BJ_UPDATE_FREQUENCY internal static fixed bin(17,0) initial dcl 3-11 bj_header_ptr automatic pointer dcl 3-13 bj_pste_ptr automatic pointer dcl 4-45 ci_header_chunks based structure level 1 dcl 2-80 ci_header_ptr automatic pointer dcl 2-31 ci_size_code based structure level 1 dcl 2-73 ci_trailer based structure level 1 dcl 2-40 ci_trailer_chunk based structure level 1 dcl 2-87 ci_trailer_ptr automatic pointer dcl 2-39 dm_system_data_$bj_max_n_journals external static fixed bin(17,0) dcl 5-8 dm_system_data_$bj_max_n_processes external static fixed bin(17,0) dcl 5-9 dm_system_data_$max_n_transactions external static fixed bin(17,0) dcl 5-10 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 000544 constant entry internal dcl 164 ref 103 122 141 154 FILL_CI_PARTS 000564 constant entry internal dcl 174 ref 94 113 MAIN_RETURN 000535 constant label dcl 161 ref 106 125 bj_ci_zero$get_bj_uid 000461 constant entry external dcl 148 bj_ci_zero$get_header 000041 constant entry external dcl 34 ref 151 bj_ci_zero$get_pf_uid 000325 constant entry external dcl 129 bj_ci_zero$put_header 000172 constant entry external dcl 110 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1040 1070 610 1050 Length 1400 610 30 273 230 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bj_ci_zero$get_header 198 external procedure is an external procedure. on unit on line 97 68 on unit on unit on line 116 68 on unit on unit on line 135 68 on unit ERROR_RETURN internal procedure shares stack frame of external procedure bj_ci_zero$get_header. FILL_CI_PARTS internal procedure shares stack frame of external procedure bj_ci_zero$get_header. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bj_ci_zero$get_header 000100 code bj_ci_zero$get_header 000102 my_bj_header bj_ci_zero$get_header 000202 my_ci_header bj_ci_zero$get_header 000206 saved_level bj_ci_zero$get_header 000210 my_ci_parts bj_ci_zero$get_header 000224 ci_parts_ptr bj_ci_zero$get_header 000226 cip_number_of_parts bj_ci_zero$get_header THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_in call_ext_out_desc call_ext_out return signal enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. bj_report_err cu_$level_get cu_$level_set file_manager_$get file_manager_$get_ci_header file_manager_$put_journal get_ring_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$bj_bad_header LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 54 000025 1 35 000030 1 36 000032 34 000035 94 000051 96 000062 97 000071 99 000115 100 000135 101 000154 103 000163 106 000167 110 000170 113 000202 115 000213 116 000222 118 000246 119 000266 120 000305 122 000314 125 000320 129 000321 132 000334 134 000336 135 000345 137 000371 138 000411 139 000430 141 000437 144 000443 148 000457 151 000470 154 000507 157 000521 161 000535 164 000544 169 000546 170 000563 174 000564 186 000566 188 000570 189 000572 190 000573 192 000577 194 000602 ----------------------------------------------------------- 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