COMPILATION LISTING OF SEGMENT cm_find_ci_to_alloc_datum Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0951.7 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 /* DESCRIPTION: 9* 10* This routine examines a number of control intervals attempting to 11* find one which has enough free space in which to allocate a datum of a 12* given size. If no control interval is found, one is allocated and that 13* control interval becomes the one inwhich to allocate the datum. 14* 15* The caller supplies the number of bytes required to hold the 16* contents of the datum and flags indicating whether a continued_datum 17* header, a coninued_continuation_datum header or no header is required. A 18* starting point may be supplied (p_input_ci). The routine returns the 19* control interval found (p_return_ci) and a pointer to the bci_header of 20* the control interval (p_bci_header). 21**/ 22 23 /* HISTORY: 24* 25*Written by Matthew Pierret, 10/27/82. 26*Modified: 27*11/19/82 by Lindsey Spratt: Changed to get the bci_header after allocating a 28* new control interval. 29*02/02/83 by Matthew Pierret: Upgraded to CM_INFO_VERSION_2. Added sub_err_ 30* call to report problems getting the last CI. Changed to use 31* cm_opening_info$get_storage_record instead of getting the storage 32* record directly. 33*07/19/83 by Matthew Pierret: Changed to allow for the space taken up by the 34* new datum slot in calculating the available free space. 35*08/05/83 by Matthew Pierret: Changed to use 36* cm_determine_free_space$does_new_datum_fit, which returns a flag 37* indicating whether there is enough free space in which to fit the 38* new datum, accounting for a possible new slot and datum header. 39* Removed the obsolete dm_data_$area_ptr. 40*05/21/84 by Matthew Pierret: Renamed include file dm_cm_cism_info to 41* dm_cism_info. Added RETURN and ERROR_RETURN procedures. Changed 42* to use automatic code variable instead of p_code parameter. 43*09/26/84 by Matthew Pierret: Renamed RETURN to RETURN_CI. Changed GET_LAST_CI 44* to a function. Changed CHECK_VERSION_CHAR_4 to CHECK_CI_VERSION. 45* Moved all includes out of internal subroutines, making references 46* to structures in those subroutines be by explicit pointer 47* reference. 48**/ 49 50 /* format: style2,ind3 */ 51 52 cm_find_ci_to_alloc_datum: 53 proc (p_cm_info_ptr, p_datum_contents_length_in_bytes, p_input_ci, p_is_continued, p_is_continuation, p_bci_header_ptr, 54 p_return_ci, p_code); 55 56 57 /* START OF DECLARATIONS */ 58 /* Parameter */ 59 60 dcl p_cm_info_ptr ptr parameter; 61 dcl p_datum_contents_length_in_bytes 62 fixed bin (35) parameter; 63 dcl p_input_ci fixed bin (24) uns parameter; 64 dcl p_is_continued bit (1) aligned parameter; 65 dcl p_is_continuation bit (1) aligned parameter; 66 dcl p_bci_header_ptr ptr; 67 dcl p_return_ci fixed bin (24) uns parameter; 68 dcl p_code fixed bin (35) parameter; 69 70 /* Automatic */ 71 72 dcl code fixed bin (35); 73 dcl (input_ci, last_ci, new_ci) 74 fixed bin (24) uns init (0); 75 dcl total_free_bytes fixed bin (35) init (0); 76 dcl fits_in_ci bit (1) aligned init ("0"b); 77 78 /* Based */ 79 /* Builtin */ 80 81 dcl (null, unspec) builtin; 82 83 /* Constant */ 84 85 dcl myname init ("cm_find_ci_to_alloc_datum") char (32) varying internal static 86 options (constant); 87 dcl BYTES_PER_WORD init (4) fixed bin internal static options (constant); 88 89 /* Entry */ 90 91 dcl sub_err_ entry () options (variable); 92 93 /* External */ 94 95 dcl ( 96 dm_error_$ci_not_allocated, 97 dm_error_$misformatted_ci, 98 dm_error_$unimplemented_ci_version, 99 error_table_$unimplemented_version 100 ) fixed bin (35) ext; 101 102 /* END OF DECLARATIONS */ 103 104 p_code, code = 0; 105 input_ci = p_input_ci; 106 cm_info_ptr = p_cm_info_ptr; 107 call CHECK_VERSION ((cm_info.version), (CM_INFO_VERSION_2), "cm_info"); 108 109 bci_header_ptr = p_bci_header_ptr; 110 if unspec (bci_header) ^= "0"b 111 then call CHECK_CI_VERSION (bci_header.layout_type); 112 113 if input_ci ^= 0 | (input_ci = 0 & cm_info.collection_id = HEADER_COLLECTION_ID) 114 then 115 do; 116 if unspec (bci_header) = "0"b 117 then 118 do; 119 call cm_get_bci_header (cm_info.file_oid, input_ci, bci_header_ptr, code); 120 if code ^= 0 121 then call ERROR_RETURN (code); 122 end; 123 124 call cm_determine_free_space$does_new_datum_fit (bci_header_ptr, p_datum_contents_length_in_bytes, (0), 125 p_is_continued, p_is_continuation, fits_in_ci, ("0"b), total_free_bytes); 126 127 if fits_in_ci 128 then call RETURN_CI (input_ci); 129 end; 130 131 last_ci = GET_LAST_CI (cm_info_ptr); 132 133 if input_ci ^= last_ci 134 then 135 do; 136 call cm_get_bci_header (cm_info.file_oid, last_ci, bci_header_ptr, code); 137 if code ^= 0 138 then 139 do; 140 if code = dm_error_$ci_not_allocated | code = dm_error_$misformatted_ci 141 then call sub_err_ (code, myname, ACTION_CANT_RESTART, null, 0, 142 "^/This internal inconsistency was encountered attempting to get control^/interval ^d. The storage record for collection ^3bo claims this control^/interval is the last control interval in the collection." 143 , last_ci, cm_info.collection_id); 144 145 else call ERROR_RETURN (code); 146 end; 147 148 call cm_determine_free_space$does_new_datum_fit (bci_header_ptr, p_datum_contents_length_in_bytes, (0), 149 p_is_continued, p_is_continuation, fits_in_ci, ("0"b), total_free_bytes); 150 151 if fits_in_ci 152 then call RETURN_CI (last_ci); 153 end; 154 155 /***** Still have not found a suitable control interval. Allocate a new one. */ 156 157 call cm_allocate_ci$info (cm_info_ptr, new_ci, code); 158 if code ^= 0 159 then call ERROR_RETURN (code); 160 161 call cm_get_bci_header (cm_info.file_oid, new_ci, bci_header_ptr, code); 162 if code ^= 0 163 then call ERROR_RETURN (code); 164 else call RETURN_CI (new_ci); 165 166 MAIN_RETURN: 167 return; 168 169 170 RETURN_CI: 171 proc (rc_p_return_ci); 172 173 dcl rc_p_return_ci fixed bin (24) uns; 174 175 p_return_ci = rc_p_return_ci; 176 go to MAIN_RETURN; 177 178 end RETURN_CI; 179 180 181 ERROR_RETURN: 182 proc (er_p_code); 183 184 dcl er_p_code fixed bin (35); 185 186 p_code = er_p_code; 187 go to MAIN_RETURN; 188 189 end ERROR_RETURN; 190 191 CHECK_VERSION: 192 proc (cv_p_given_version, cv_p_correct_version, cv_p_structure_name); 193 194 dcl cv_p_structure_name char (*); 195 dcl cv_p_given_version char (8) aligned; 196 dcl cv_p_correct_version char (8) aligned; 197 198 if cv_p_given_version ^= cv_p_correct_version 199 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 200 "^/Expected version ^8a of ^a structure; received ^8a.", cv_p_correct_version, cv_p_structure_name, 201 cv_p_given_version); 202 203 return; 204 205 end CHECK_VERSION; 206 207 208 CHECK_CI_VERSION: 209 proc (ccv_p_given_version); 210 211 dcl ccv_p_given_version char (4) aligned; 212 213 if ccv_p_given_version ^= BASIC_CI_LAYOUT_1 214 then call sub_err_ (dm_error_$unimplemented_ci_version, myname, ACTION_CANT_RESTART, null, 0, 215 "^/Expected version ^a control interval; received ^a.", BASIC_CI_LAYOUT_1, ccv_p_given_version); 216 else return; 217 218 end CHECK_CI_VERSION; 219 220 GET_LAST_CI: 221 proc (glc_p_cm_info_ptr) returns (fixed bin (24) uns); 222 223 dcl glc_p_cm_info_ptr ptr; 224 dcl glc_collection_header_ptr 225 ptr; 226 dcl glc_code fixed bin (35); 227 228 glc_collection_header_ptr = glc_p_cm_info_ptr -> cm_info.header_ptr; 229 call CHECK_VERSION (glc_collection_header_ptr -> collection_header.version, COLLECTION_HEADER_VERSION_2, 230 "collection_header"); 231 232 if glc_p_cm_info_ptr -> cm_info.storage_record_ptr = null () 233 then 234 do; 235 glc_code = 0; 236 call cm_opening_info$get_storage_record (glc_p_cm_info_ptr, glc_code); 237 if glc_code ^= 0 238 then call ERROR_RETURN (glc_code); 239 end; 240 241 if glc_collection_header_ptr -> collection_header.control_interval_storage_method 242 = UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD 243 then return (glc_p_cm_info_ptr -> cm_info.storage_record_ptr -> unblocked_storage_record.last_control_interval); 244 else return (glc_p_cm_info_ptr -> cm_info.storage_record_ptr -> blocked_storage_record.last_control_interval); 245 246 end GET_LAST_CI; 247 1 1 /* BEGIN INCLUDE FILE - dm_cm_info.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* The cm_info structure is used to hold per-process opening information 1 5* about a collection. It is generally allocated in the process' DM free 1 6* area, as returned by the function get_dm_free_area_. The opening_manager_ 1 7* is used to provide access the cm_info structure, keeping it in a hash 1 8* table keyed on file opening id and collection id combined. 1 9* Currently cm_info is never freed until the process terminates. Each 1 10* time a new transaction is started, detected when the current transaction 1 11* id of a process differs from cm_info.current_transaction_id, the information 1 12* in cm_info is refreshed. Storage record information is only refreshed on 1 13* demand, as most modules do not need the information in the storage record. 1 14* Instead, cm_info.storage_record_ptr is set to null (), but 1 15* cm_info.storage_record_buffer_ptr remains set to the previous value of 1 16* cm_info.storage_record_ptr. When a refreshed copy of the storage record is 1 17* requested, it is placed at the location pointed to by 1 18* cm_info.storage_record_buffer_ptr, saving the expense of re-allocation. 1 19**/ 1 20 1 21 /* HISTORY: 1 22*Written by Matthew Pierret, 10/27/82. 1 23*Modified: 1 24*01/25/83 by Matthew Pierret: Changed to version 2. Added 1 25* storage_record_buffer_ptr. This points to the storage_record. 1 26* When cm_info is refreshed, storage_record_ptr is set to null, 1 27* but storage_record_buffer_ptr continues to point at where the 1 28* storage_record was. When the storge_record is again requested, 1 29* it is put back in the same place rather than allocating a new 1 30* storage_record. 1 31*09/24/84 by Matthew Pierret: Re-wrote DESCRIPTION section. Removed the 1 32* init clause from the version component. 1 33**/ 1 34 1 35 /* format: style2,ind3,ll79 */ 1 36 1 37 dcl 1 cm_info aligned based (cm_info_ptr), 1 38 2 version char (8), 1 39 2 current_txn_id bit (36) aligned init ("0"b), 1 40 2 file_oid bit (36) aligned init ("0"b), 1 41 2 collection_id bit (36) aligned init ("0"b), 1 42 2 header_ptr ptr init (null), 1 43 2 storage_record_ptr ptr init (null), 1 44 2 storage_record_buffer_ptr 1 45 ptr init (null); 1 46 1 47 dcl cm_info_ptr ptr init (null); 1 48 dcl CM_INFO_VERSION_2 init ("cm_info2") char (8) aligned 1 49 internal static options (constant); 1 50 1 51 /* END INCLUDE FILE - dm_cm_info.incl.pl1 */ 248 249 2 1 /* BEGIN INCLUDE FILE dm_cm_basic_ci.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* 2 5* The collection_manager_ manages the structure of the addressable 2 6* portion of a control interval. The addressable portion is that portion of 2 7* a control interval which the file_manager_ will allow the 2 8* collection_manager_ to address. In this description control interval will 2 9* be used to mean the addressable portion of a control interval. 2 10* 2 11* A control interval is divided into four parts: the header, the datum 2 12* position table (also known as the slot table or slots), un-used space and 2 13* used space. The beginning of the header is at offset 0, and the end of the 2 14* used space is at the end of the control interval (curently offset 4072). 2 15* Pictoriarly, a control interval is structured as follows: 2 16* 2 17* ---------------------------------------------------------------------- 2 18* | || | | | | | || || | / / | |/| | | 2 19* | Header || | slot | || un-used space || |/ / /| |/| | | 2 20* | || | table | || || | / / | |/| | | 2 21* | || | | | | | || || |/ / /| |/| | | 2 22* ---------------------------------------------------------------------- 2 23* ^ ^ ^ ^ ^ ^ ^ 2 24* | | | | | | | 2 25* | |...........|.......|...| 2 26* start of used space| | | | 2 27* | | each| 2 28* scattered free space| is a used 2 29* datum 2 30* 2 31* The basic_control_interval structure describes the header 2 32* (basic_control_interval.header, bci_header) and the slots 2 33* (basic_control_interval.datum_position_table, datum_slot for one only). 2 34* Each datum_slot contains the offset (in bytes) and the length (in bits) of 2 35* a datum in the used space. If the offset is equal to FREE_SLOT (declared 2 36* in dm_cm_basic_ci_const.incl.pl1), the slot is un-used. The slot also 2 37* contains flags describing the type of datum (see dm_cm_datum.incl.pl1). 2 38**/ 2 39 2 40 /* HISTORY: 2 41*Written by Matthew Pierret, 02/07/82. 2 42*Modified: 2 43*03/25/82 by Matthew Pierret: Fixed alignment differences basic_control_interval 2 44* and its sub-structures. 2 45*06/14/82 by Matthew Pierret: Removed common header and buffers. Changed 2 46* basic_ci_header to bci_header. Added previous_control_interval. 2 47*07/12/82 by Matthew Pierret: Changed collection_id to be bit (36) aligned. 2 48*10/29/82 by Matthew Pierret: Added flags to datum slots. 2 49*11/10/82 by Matthew Pierret: Removed continued_datum_is_present flag, as it 2 50* is not used. 2 51*03/28/84 by Matthew Pierret: Added the constants BCI_HEADER_LENGTH_IN_BYTES 2 52* and DATUM_POSITION_TABLE_OFFSET_IN_BYTES. 2 53**/ 2 54 2 55 /* format: style2 */ 2 56 dcl 1 basic_control_interval 2 57 aligned based (basic_control_interval_ptr), 2 58 2 header like bci_header, 2 59 2 datum_position_table 2 60 (0 refer (basic_control_interval.number_of_datums)) like datum_slot; 2 61 2 62 2 63 dcl 1 bci_header aligned based (bci_header_ptr), 2 64 2 layout_type char (4) aligned, 2 65 2 collection_id bit (36) aligned, 2 66 2 next_control_interval 2 67 fixed bin (24) uns unal, 2 68 2 previous_control_interval 2 69 fixed bin (24) uns unal, 2 70 2 flags unal, 2 71 3 continuation_datum_is_present 2 72 bit (1) unal, 2 73 3 free_slot_is_present 2 74 bit (1) unal, 2 75 3 must_be_zero bit (4) unal, /* reserved */ 2 76 2 scattered_free_space 2 77 fixed bin (17) unal, 2 78 2 start_of_used_space 2 79 fixed bin (17) unal, 2 80 2 number_of_datums fixed bin (17) unal; 2 81 2 82 dcl 1 datum_slot aligned based (datum_slot_ptr), 2 83 2 flags unal, 2 84 3 special_format_datum 2 85 bit (1) unal, /* reserved */ 2 86 3 is_continued bit (1) unal, 2 87 3 is_continuation bit (1) unal, 2 88 3 mbz bit (1) unal, /* reserved */ 2 89 2 offset_in_bytes fixed bin (15) uns unal, 2 90 2 length_in_bits fixed bin (17) uns unal; 2 91 2 92 dcl basic_control_interval_ptr 2 93 ptr; 2 94 dcl bci_header_ptr ptr; 2 95 dcl datum_slot_ptr ptr; 2 96 2 97 dcl BASIC_CI_LAYOUT_1 char (4) aligned init ("bci1") internal static options (constant); 2 98 2 99 /* END INCLUDE FILE dm_cm_basic_ci.incl.pl1 */ 250 251 3 1 /* BEGIN INCLUDE FILE dm_cm_storage_record.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4* 3 5* A storage record is an extension to the collection_header structure. 3 6* It is expected to be more volatile than collection_header and has a 3 7* different format depending on the control interval storage method in use 3 8* for the collection. A storage record is stored as an element in the 3 9* file's Header clj >48 CLJones clj Multics J CVJ X.25ASCII_CRT_E Rosin.SysAdmin.a PDT >user_dir_dir>SUPPORT SUPPORT >user_dir_dir>SUPPORT SUPPORT Bull SUPPORT Project SQ{:05JYxSUPPORT S X^Rosin.SysAdmin Fudge.SysAdmin Schroth.SysMaint  Other @ dT1Rosin ~process_overseer_ >user_dir_dir>SUPPORT>Rosin  Sh T>X @ @ *|Grimes *~&F@ X***a"pend_tr_rep.ec HMG3`-Hv*a*P*fH|*@~print_keys_for_tr_.ec nPz*@vf*@n*"&F@ Y*aX~print_keys_for_tr.ec HMG3`$*a@*|*@X~print_keys_for_tr_cleanup.ec ~pkft.ec **@z*@*@*Z~&Hp{&*a&?print_trs.absin HG3`-Rza*B4*@print_trs.ec *Farley J|*@RBz*@J*&R}>bbzmZ>print_trs.absout RyG3`$zm*z*@Xredprint_.ec |*@**@*@*Z&F@ ]*aredprint.ec HMG3`- *a*|*@redprint_cleanup.ec  z*@*f&F@ _H*aH%reload_tr_db.ec HM!G3`$8^*a @*V8|*@reload_tr_db.absin ^@z*@V*&F@ `n*afreroute_trs.ec HM%G3`$*a$*|*@nfreroute_trs.absin **@z*@*@*,f&F@ a*anset_tr_db_acl.ec HM(G3`$$*a7*|*@add_tr_db_acl.ec dl_tr_db_acl.ec $z*@*&F@ n44*a,test_tr_queue_.ec HM,G3`$Rx*a6Z*pR**tr_file_backup.ec xZ*@p*,&F@ cb|abtr_file_backup.absin HM/G3`$*aBT*|*@z*@*@*@&F@ s"mtr_file_backup.absout HM2G3`$8m8**@trouble_fix.ec |*@ z*@*vL&PXI**zm"mtrouble.absout PbG3`$Hnzm=|P*fHz*@~vupdate_tr_data_new.ec nP*@f*"&Iu~*aXvupdate_tr_data.ec I{ G3`-a*|*@Xvupdate_tr_data_test.ec z*@*zVu :v&F@ j*aupdate_user_regs.absin HMaG3`-2a**|*@pRetriever .update_user_regs.ec 2z*@**&F@ {BBzm:update_user_regs.absout HMG3`$`zm`ph*~`z*@Hupdate_user_regs.values h*@~*:&F@ zzmupdate_user_regs.absout.old HMG3`$zm2*z*@*@**&F@ l*aHupdate_user_regs.values HMG3`$"zm* **@*@ *@"*@*p& H`22za*btrmr.07/03/92  HG3``$X`za=`X*@ Pz* P* *@ *& Hdxxzapprint_trs.07/03/92  HG3`n$za,hz* h* p& 'Hqzantrouble.07/03/92  'HG3`o$za)*@ 'z* '* '"& H ezmtrmr.absout  HG3`$zm*@  z*@  * &#I@**a"update_tr_data.ec.09/18/92 #I{G3`$PXaX`*@#`z*@#H*#HP*#a@TR_Admin process_overseer_ >user_dir_dir>TR>TR_Admin < (RT4InoneTT ( GPT>nX @ @Vu ~process_overseer_ >user_dir_dir>TR>Vu < RTnone_TT>#|oX @ @aTw"*@bn*@bnT&hv3P("ameetings hv3Ps<L"a~2rTwD"*@hv3L<*@hv3D*@hv3&j95N\\"aTstart_up.hsim j95eG`H$z"ahTw"*@j9z*@j9T&nP("a]ts nPt  H"a~2rTw@time_sheet n"*n*nx<&kP("ace kQB "a~2rTw"*k*k:&uR;5  "amrds.name uR;TG`H$*2"amTw2"*uR**@uRp&u$>P(BB"a:unix u$>Pt `h"a~2rTwh"*u$>`*u$>:&vW<1Exx"aprsr.note vW<3G$"aMTw"*@vW*@vWp&w+];)"alGee.sv.mbx w+];kGwSI"aTw"*@w+]*@w+]&w+;}ox"aconfid.arun w+;~VG$ "aTw "*@w+*@w+H&wuFK"aresign wuFKElGL$8@"aKTw P"*@wuF P*wuF~&wu3KPP"aH:design wu3KEWGLl$nv"aGTw X"*wu3 X*wu3H&qQ#"a~rxstart_up.ec qQ3G $"a3Tw"*@q"*q*@q*q~&q?8"aRtsms.forum q@$>udd>Multics>Gee>meetings>tsms.forumTwtimesheet_management_sys.forum q@Hq|@X"aarg_descriptor.i q|@3>udd>m>dz>vf>doc>vfile.lib>xps_lib>arg_descriptor.iTwHq@XHH"a@arg_list.i q@->udd>m>dz>vf>doc>vfile.lib>xps_lib>arg_list.iTw@Hq@X"acdo_item.i q@->udd>m>dz>vf>doc>vfile.lib>xps_lib>cdo_item.iTwHq@X"aunix_io_dcls.i q@1>udd>m>dz>vf>doc>vfile.lib>xps_lib>unix_io_dcls.iTwXHq@X@"aBvf_control.i q@/>udd>m>dz>vf>doc>vfile.lib>xps_lib>vf_control.iTw&q1O_ ``"aXGee.mbx qRorGI~"aTw"*@q~*@(q*@(qX&qM"aqGee.value qMG2$"a+Tw"*@q"*@q0*@q*@q*qXPN"aNov.94.sum PO $"aTwP*@/N*@BjP& @""""acal.basic  @Gw G$@H"agTwH"*@ @*@ &i@cXv"avPmultics_support.mls i$>udd>Multics>lib>multics_support.mlsTwXPmaint.mls iP&'@"aiMCR_Packet.trans '@fG$"a;Tw"*@'*@'&kAU="asubs.mls kAUG $"a8Tw"*k*@k&&A"aaudit.idea AG`H $"a7<Tw"*@*@d&QyP(.."a&Qcp6 QyQ DTL"a~2rTw *@Qy "*@Qy   *@Qy&&EbZll"adPCP6_discussion.trans EcGL $"aTw"*@*@d&4B"adb.goal 4B GQ$"aTw"*@4*@4&=Ca"a_cp6.mls =C+Gwu$"aTw"*@=*@=<& B_A"agrisk.mail  BG`H$,4"a3*Tw4"*@ ,*@ r&^K-DD"a<cp6.risk.note ^KG`Hl$bj"a`Tw "*@^ *^<&h]Kzz"ararchfile_index h]KEEG $$"a@Tw h"*h] h*h]r&h|K"aarchfile_dir_listing h|KE@G $"a)Tw p"*h| p*h|&uBF"ateam.goal uBRSG v$ "a  yJ@7G$  "awTw "*@y *@yd&WxN  . ."a & swat_plan WxNGL$ T L"a<Tw T*@Wx L"*@Wx R &RqK d d"a \jim RqKE`GL1$ J B"aTw "*@H *@H \ &HP( 4"a 4 Utime_report HPsz "a~2rTw *@D *@H &DQ  "a %Gee.activities.03/01/95 DQLGL $ "amTw *@D "*D &wK  "a jim4 wKEeG $ , $"aTw *w "*@w  tr H *Rq "*@Rq  \&]K Z Z"a RDts_04_01 ]KEzG2>$  x"aTw *] "*@]  R&K  "a ts_04_02 KEG`H$  "aTw * "*@ x &DQv  "a [Gee.activities.1 DQXG X$  "aTw "*D "*D>0Mabey Twjb*@^B:*@7O *@D &BK " ""a ts_05_01 BKEG$ H @"aTw *B "*@B@8*@wuFvn*@wu3~*@*@h]*@h|*@}~*@$*@> *@  *@&j $ ,*@w B J*@Rq x *@]  *@ @ H*@B &3K "a to 3KG2$ "aTw *@3 "*@3 4 &pK  "a jim.s pKGQQ$ , $"a-Tw ,*@p $"*@p j &(K X < <"a 4Gee.activities.backup (KT#G2F$ b Z"aTw b*@( Z"*(  4&PK r r"a jmay.sum.93 PKG$  "a Tw *@P "*@P  j&PK,  "a ts.may01.93 PKG2v$  "awTw *@P "*@P &PK  "a  ts.may02.93 PKG$  "a)Tw *@nd_ci_to_alloc_datum.pl1 248 1 01/07/85 0858.4 dm_cm_info.incl.pl1 >ldd>include>dm_cm_info.incl.pl1 250 2 01/07/85 0858.0 dm_cm_basic_ci.incl.pl1 >ldd>include>dm_cm_basic_ci.incl.pl1 252 3 01/07/85 0858.4 dm_cm_storage_record.incl.pl1 >ldd>include>dm_cm_storage_record.incl.pl1 254 4 01/07/85 0858.2 dm_cm_collection_header.incl.pl1 >ldd>include>dm_cm_collection_header.incl.pl1 256 5 01/07/85 0901.2 dm_cm_datum.incl.pl1 >ldd>include>dm_cm_datum.incl.pl1 258 6 01/07/85 0858.2 dm_cm_datum_constants.incl.pl1 >ldd>include>dm_cm_datum_constants.incl.pl1 260 7 01/07/85 0858.0 dm_cism_info.incl.pl1 >ldd>include>dm_cism_info.incl.pl1 262 8 01/07/85 0858.8 dm_hdr_collection_id.incl.pl1 >ldd>include>dm_hdr_collection_id.incl.pl1 264 9 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 266 10 04/04/85 0819.0 dm_cm_entry_dcls.incl.pl1 >spec>on>7192.pbf-04/04/85>dm_cm_entry_dcls.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. ACTION_CANT_RESTART 000000 constant bit(36) initial dcl 9-7 set ref 140* 198* 213* BASIC_CI_LAYOUT_1 000004 constant char(4) initial dcl 2-97 set ref 213 213* CM_INFO_VERSION_2 000006 constant char(8) initial dcl 1-48 ref 107 COLLECTION_HEADER_VERSION_2 000002 constant char(8) initial dcl 4-86 set ref 229* HEADER_COLLECTION_ID constant bit(36) initial dcl 8-19 ref 113 UNBLOCKED_CONTROL_INTERVAL_STORAGE_METHOD constant fixed bin(17,0) initial dcl 7-40 ref 241 bci_header based structure level 1 dcl 2-63 set ref 110 116 bci_header_ptr 000110 automatic pointer dcl 2-94 set ref 109* 110 110 116 119* 124* 136* 148* 161* blocked_storage_record based structure level 1 dcl 3-36 blocked_storage_record_ptr 000114 automatic pointer initial dcl 3-48 set ref 3-48* ccv_p_given_version parameter char(4) dcl 211 set ref 208 213 213* cm_allocate_ci$info 000022 constant entry external dcl 10-76 ref 157 cm_determine_free_space$does_new_datum_fit 000024 constant entry external dcl 10-101 ref 124 148 cm_get_bci_header 000026 constant entry external dcl 10-130 ref 119 136 161 cm_info based structure level 1 dcl 1-37 cm_info_ptr 000106 automatic pointer initial dcl 1-47 set ref 106* 107 113 119 131* 136 140 157* 161 1-47* cm_opening_info$get_storage_record 000030 constant entry external dcl 10-185 ref 236 code 000100 automatic fixed bin(35,0) dcl 72 set ref 104* 119* 120 120* 136* 137 140 140 140* 145* 157* 158 158* 161* 162 162* collection_header based structure level 1 dcl 4-65 collection_id 4 based bit(36) initial level 2 dcl 1-37 set ref 113 140* control_interval_storage_method 2(18) based fixed bin(17,0) level 2 packed unaligned dcl 4-65 ref 241 cv_p_correct_version parameter char(8) dcl 196 set ref 191 198 198* cv_p_given_version parameter char(8) dcl 195 set ref 191 198 198* cv_p_structure_name parameter char unaligned dcl 194 set ref 191 198* datum_contents_length_in_bits 000122 automatic fixed bin(35,0) initial dcl 5-69 set ref 5-69* datum_id based structure level 1 dcl 5-62 datum_id_ptr 000120 automatic pointer initial dcl 5-68 set ref 5-68* datum_ptr 000116 automatic pointer initial dcl 5-67 set ref 5-67* datum_slot based structure level 1 dcl 2-82 dm_error_$ci_not_allocated 000012 external static fixed bin(35,0) dcl 95 ref 140 dm_error_$misformatted_ci 000014 external static fixed bin(35,0) dcl 95 ref 140 dm_error_$unimplemented_ci_version 000016 external static fixed bin(35,0) dcl 95 set ref 213* er_p_code parameter fixed bin(35,0) dcl 184 ref 181 186 error_table_$unimplemented_version 000020 external static fixed bin(35,0) dcl 95 set ref 198* file_oid 3 based bit(36) initial level 2 dcl 1-37 set ref 119* 136* 161* fits_in_ci 000105 automatic bit(1) initial dcl 76 set ref 76* 124* 127 148* 151 glc_code 000164 automatic fixed bin(35,0) dcl 226 set ref 235* 236* 237 237* glc_collection_header_ptr 000162 automatic pointer dcl 224 set ref 228* 229 241 glc_p_cm_info_ptr parameter pointer dcl 223 set ref 220 228 232 236* 241 244 header_ptr 6 based pointer initial level 2 dcl 1-37 ref 228 input_ci 000101 automatic fixed bin(24,0) initial unsigned dcl 73 set ref 73* 105* 113 113 119* 127* 133 last_ci 000102 automatic fixed bin(24,0) initial unsigned dcl 73 set ref 73* 131* 133 136* 140* 151* last_control_interval 1 based fixed bin(24,0) level 2 in structure "unblocked_storage_record" unsigned dcl 3-28 in procedure "cm_find_ci_to_alloc_datum" ref 241 last_control_interval based fixed bin(24,0) level 2 in structure "blocked_storage_record" unsigned dcl 3-36 in procedure "cm_find_ci_to_alloc_datum" ref 244 layout_type based char(4) level 2 dcl 2-63 set ref 110* myname 000010 constant varying char(32) initial dcl 85 set ref 140* 198* 213* new_ci 000103 automatic fixed bin(24,0) initial unsigned dcl 73 set ref 73* 157* 161* 164* null builtin function dcl 81 ref 140 140 1-47 3-46 3-48 5-67 5-68 198 198 213 213 232 p_bci_header_ptr parameter pointer dcl 66 ref 52 109 p_cm_info_ptr para pp.3.mail McG2$&"ap1Tw&*@"*@d &&+N/-66"a.psei_sqa.trans &+N0LSGL$\T"aUTw\*@&+T"*@&+ &.&&TeN>hll"ad action_item &TeN>G2$"a$Tw*@&Te"*@&TeNz}A"aEFeb.94.sum N{[$"aTw*@"*@rN "a4Mar.94.sum GN N_$"aG,Tw*@G"*@G< &&|N"adave1 |NGQ $4,"a Tw4*@|,"*@|&#&NTSDD"a<exchange_com #&NWGw m$jb"aTwj*@#&b"*@#&N"ar^Apr.94.sum ihNC [$"aUTw*@ih"*@ihO?"az vMay.94.sum nO?$"aUTw*@n"*@nJO;"aJun.94.sum OA($"aW*Tw *@B"*@x&/NP("asei /NQ<S : "a~2rTwP"*@/Np*@JOvq^"aJJul.94.sum JO|$"aeTw"*@J&3rOJ)."ax:Pdd.mail 3rOJGQ $"a8Tw*@3r"*@3rPW"aAug.94.sum ABP$"aMdTw*@AB "*@ABPF"a Oct.94.sum %.PK X$"a[Tw*@%. `"*@%.&ffP("""a eval ffPs `H@"a~2rTwH*ff@"*ff :*@/NQ,d"aXWDec.94.sum @ Q<1$"aTw"*@*@@ &BjP("arisk BjQ}2G"a~2rTw*@Bj"*@Bj("*@@ 8&QSL"aquality Rozr"a~2rTw*"*try external dcl 10-77 cm_compact 000000 constant entry external dcl 10-81 cm_compact$buffered 000000 constant entry external dcl 10-82 cm_compact$buffered_replacement 000000 constant entry external dcl 10-84 cm_compact$replacement 000000 constant entry external dcl 10-83 cm_delete 000000 constant entry external dcl 10-92 cm_delete$info 000000 constant entry external dcl 10-94 cm_delete_cn_datum 000000 constant entry external dcl 10-87 cm_delete_cn_datum$header 000000 constant entry external dcl 10-89 cm_determine_free_space$all 000000 constant entry external dcl 10-96 cm_determine_free_space$effective 000000 constant entry external dcl 10-98 cm_find_ci_to_alloc_datum 000000 constant entry external dcl 10-111 cm_find_free_slot 000000 constant entry external dcl 10-115 cm_free_ci$info 000000 constant entry external dcl 10-118 cm_free_ci$raw_return_prev_next 000000 constant entry external dcl 10-119 cm_free_ci$trace_thread_modifications_off 000000 constant entry external dcl 10-124 cm_free_ci$trace_thread_modifications_on 000000 constant entry external dcl 10-122 cm_free_opening_info 000000 constant entry external dcl 10-128 cm_get_bci_header$exclusive 000000 constant entry external dcl 10-131 cm_get_bci_header$slot 000000 constant entry external dcl 10-133 cm_get_element 000000 constant entry external dcl 10-140 cm_get_element$exclusive 000000 constant entry external dcl 10-142 cm_get_element_portion 000000 constant entry external dcl 10-146 cm_get_id$id 000000 constant entry external dcl 10-157 cm_get_id$ptr 000000 constant entry external dcl 10-159 cm_modify 000000 constant entry external dcl 10-162 cm_modify$buffered 000000 constant entry external dcl 10-164 cm_modify$info 000000 constant entry external dcl 10-173 cm_modify$unprotected_info 000000 constant entry external dcl 10-174 cm_opening_info$full_get 000000 constant entry external dcl 10-187 cm_opening_info$get 000000 constant entry external dcl 10-184 cm_opening_info$opening_table_ptr 000000 constant entry external dcl 10-189 cm_postcommit_increment 000000 constant entry external dcl 10-192 cm_put 000000 constant entry external dcl 10-195 cm_put$buffered 000000 constant entry external dcl 10-197 cm_put$info 000000 constant entry external dcl 10-206 cm_put_basic_element 000000 constant entry external dcl 10-208 cm_put_cn_datum 000000 constant entry external dcl 10-211 cm_put_datum_in_place 000000 constant entry external dcl 10-213 cm_put_datum_in_place$buffered 000000 constant entry external dcl 10-215 cm_put_datum_in_place$buffered_continued 000000 constant entry external dcl 10-217 cm_put_datum_in_place$continued 000000 constant entry external dcl 10-220 cm_put_datum_in_pool 000000 constant entry external dcl 10-224 cm_put_datum_in_pool$buffered 000000 constant entry external dcl 10-226 cm_put_datum_in_pool$buffered_continued 000000 constant entry external dcl 10-228 cm_put_datum_in_pool$continued 000000 constant entry external dcl 10-231 cm_put_ordered_element 000000 constant entry external dcl 10-235 cm_put_ordered_element$buffered 000000 constant entry external dcl 10-237 cm_put_overlength_tail 000000 constant entry external dcl 10-241 cm_recursive_modify 000000 constant entry external dcl 10-243 cm_replace_buffered_ci$trace_thread_modifications_off 000000 constant entry external dcl 10-249 cm_replace_buffered_ci$trace_thread_modifications_on 000000 constant entry external dcl 10-247 collection_header_ptr automatic pointer dcl 4-85 continuation_datum based structure level 1 packed unaligned dcl 5-47 continued_continuation_datum based structure level 1 packed unaligned dcl 5-56 continued_datum based structure level 1 packed unaligned dcl 5-50 datum based structure level 1 packed unaligned dcl 5-44 datum_slot_ptr automatic pointer dcl 2-95 unblocked_cism_info based structure level 1 dcl 7-28 unblocked_cism_info_ptr automatic pointer dcl 7-34 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_CI_VERSION 000704 constant entry internal dcl 208 ref 110 CHECK_VERSION 000602 constant entry internal dcl 191 ref 107 229 ERROR_RETURN 000574 constant entry internal dcl 181 ref 120 145 158 162 237 GET_LAST_CI 000767 constant entry internal dcl 220 ref 131 MAIN_RETURN 000565 constant label dcl 166 ref 176 187 RETURN_CI 000566 constant entry internal dcl 170 ref 127 151 164 cm_find_ci_to_alloc_datum 000176 constant entry external dcl 52 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1324 1356 1142 1334 Length 1770 1142 32 376 162 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cm_find_ci_to_alloc_datum 376 external procedure is an external procedure. RETURN_CI internal procedure shares stack frame of external procedure cm_find_ci_to_alloc_datum. ERROR_RETURN internal procedure shares stack frame of external procedure cm_find_ci_to_alloc_datum. CHECK_VERSION internal procedure shares stack frame of external procedure cm_find_ci_to_alloc_datum. CHECK_CI_VERSION internal procedure shares stack frame of external procedure cm_find_ci_to_alloc_datum. GET_LAST_CI internal procedure shares stack frame of external procedure cm_find_ci_to_alloc_datum. STORAGE FOR AUTOMATIC VARIABLQ$"a|Jan.95.sum (2Q3$"a[Tw0*@(2"*@(2n&(2Q$M@@"a8 4jan2_95 (2Q3G $f^"a4Twf*@(2^"*@(28&(2Q$N$vv"anjan01_95 (2Q3G $"a2Tw*@(2"*@(2n&(HsQ7[S"apjp_95_1.mail (HsQ8MG2$"a$ZTw*@(Hs"*@(Hs&(HQ7^"ajan3_95 (HQ8MGL $"a$ZTw*@(H"*(HF&QV""a pjp QY2 >6"a~2rTw|*@|"*@&<QFNN"aF$multics.mail <QTWGQ$tl"aTwt*@<l"*@<6>*@F&!Qj1"aXBoston !Q~ #"a~2rTw*!"*! &D5Q@"aDactivities_report.archive D5Q|Gwx$"aZTTw*@D5"*@D5