THIS FILE IS DAMAGED COMPILATION LISTING OF SEGMENT cm_recursive_modify Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0955.1 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 9 /* DESCRIPTION: 10* 11* This routine puts an element that is already a multi-datum element. 12* The new element value may or may not be multi-datum itself. The 13* arguments received are the datum id of a continuation or 14* continued_continuation datum (p_datum_id_string), the pointer to the element 15* (p_element_ptr), the length of the element in bits 16* (p_element_length_in_bits) the amount of space available in the control 17* interval of which this is a continuation 18* (p_available_space_in_previous_ci). If the datum is continued, it 19* recursively invokes cm_recursive_modify on its continuation datum. Then it 20* determines if the previous control interval has enough room to store what 21* is left of the element. If so, it frees the datum it is working on and 22* returns. If there is more than a maximum-sized datum left of the element 23* and the current datum is already maximum-sized, it stores the uppermost 24* (rightmost) maximum-sized portion, truncates that portion off of the 25* element, and returns its datum id (which is unchanged). If the datum is 26* not already maximum-sized, it allocates new datums to hold the overlength 27* tail. If the element remains is less than maximum-size and the current 28* datum is also (and the previous ci cannot hold the what's left of the 29* element) it either puts what's left in the datum, or, if there is not 30* enough room in the control interval, frees the current datum and 31* allocates a bigger one. Then it returns to the caller the new datum id. 32**/ 33 34 /* HISTORY: 35* 36*Written by Matthew Pierret, 10/27/82. 37*Modified: 38*12/01/82 by Lindsey Spratt: Changed declaration of datum_id_string from being 39* based on addr(datum_id_ptr) to datum_id_ptr. 40*12/02/82 by Lindsey Spratt: Fixed to include the old_datum_length_inbytes in 41* the pool_free_space only when the old datum was stored as the 42* start_of_used_space, otherwise the old_datum_length_in_bytes is 43* just seen in the total_free_bytes and hence is only available via 44* compaction. 45*01/05/83 by Lindsey Spratt: Changed to initialize remaining_element_length_in_bits, 46* to return after replacing max-sized datum, and to *not* return 47* after allocating an overlength tail. 48*01/05/83 by Matthew Pierret: Changed to make all datums but the last always 49* be an integral number of bytes. If the datum is the last 50* (continuation = "0"b), the last byte may be only partially filled. 51* Changed to atempt to replace less-than-max-sized datums, instead 52* of always using the free pool. 53*01/27/83 by Matthew Pierret: Upgraded to CM_INFO_VERSION_2. Changed calling 54* sequence to accept p_continued_datum_id_string. This is the id of 55* the datum from whence we came, The id is only used for error 56* reporting. Chang@S ~2r6r #@=L>ؤSwXGS.&H &jtP>4SMultics Sr#Office SSysAdmin S SysDaemon SFudge SOke S'RGeorge Sl&q ya/RGeorge.mbx q yRoƙGI aS*@(q y *@q y*@q yH&T&-aRGeorge.memo T*G2z$8@aS@*@T8*@T~&TPPaH.RGeorge.sv.mbx T*GInvaSv*@Tn*@TH&TBFa~-RGeorge.value TBG2v$aS*@T*@T~&TGo25aRGeorge.xmail TR  a~2rS9RGeorge.mlsys Tm@T*@T*@T&Ta office.george.sv.mbx T*G |I&.aS.*@T&*@T& 6(M^>>a68start_up.ec 6(MG $ aS*@!*@C,&q tM[Ottal-RGeorge.profile q tMGL$$aS$*q t*@q t&^:VCu@a0me.mls ^:VCu}G$aS*@^:V*@^:V*^:V&`k0Iɝra7HW2.imft.acs `k0KGwy$raS*@`k*@`kWAAnderson S*q tbl&CDa&244a,;dialing.doc CDb GQ$ZRaSZ*@CR*@C,&CMjjabxps3.dial_out CM7G +$daJS*@Cd*@Cb&!MVQaxps3t.dial_out !M7G G$\aS*@!\*!*@X6&XKha#d XKicGF$a 7S*@@ bY _rD@0PXx=L P]476&H &,F DEVM r%NMLPROD  STDSPPT  STI  SysDaemon Dailey $&Ryajob_order.value_seg bp̠M$a%d**@* ** r**&P^.,,a$ ptm JzabYR*ZJ*bR*@jZ*@rb*@zjr*@r*@>$&P^3a+pm04001 2 abY***@*@*@r*@*@P^:a6clm abY***@*@*@&r*@.*@&P^<FFa>0maps dabYl*td*|l*@t*@|*@r*@*@dQXKamini_config fabYVr*@f*@f(*`VT*@`VTr*@`VT*@`VT *@`VT&`VTRQ8a dnfirm `VT abY(*@`VT *`VT8*@0*H8*P@r*H*`*@hX*@p`*@xhr*@p*@Q} apm0400.korsnas !abY**@*@*@r*@*@*>&QZܰa6smap  4,abY@ bY @=L][ Zh&H &Tz|F,&`VRQLzzarsmap_fiche.instructions `Vbq $aE*@`VSysDaemon *`V-Dailey -NMLPROD r&`VHRQFa:smap_dll.archive `VHbp' y$aL*@`VH*`VH>&`VKRQAasmap_img.archive `VKbp' $6.aD6*@`VK.*`VKt&`VLRQ:FFa>2smap_xref.archive `VL k#$lda~l*@`VLd*`VL>&`VERQ||at!smap_maps.archive `VE!iz$a*@`VE*`VEt&`V;RQa smap_old.archive `V;bp̠ $aZ*@`V;*`V;L&`VIRQasmap_cpa.archive `VIbp' $a<*@`VI*`VI$&`RxVa8smap_doc.archive `!i ?$D<aD*@`<*@`&`V8RQTTaLsmap_obj.archive `V8bq$zraz*@`V8r*`V8&`V:RQa"smap_list1.archive `V:bqy$aJ*@`V:*`V:L&`VMRQasmap_src.archive `VMbp' $a*@`VM*`VMr&`VJRQWa+smap_flex.archive `VJ k# x$a*@`VJ*`VJ&`jRx[,,a$9smap_print.ec.old `j k# $JRaR*`jJ*@`j$9smap_print.ec.old `jRx]qahsmap_print.ec.new ` $a=*@`*`$&`Rx]a smap_print.ec `!i ($a=*@`*`&`Rx]asmap_print.ec.cpa `!i k$a?*@`*@` 373 end ERROR_RETURN; 374 375 REPORT_MULTI_DATUM_INCONSISTENCY: 376 proc (p_cd_ci, p_cd_index, p_cn_ci, p_cn_index, p_code); 377 378 dcl (p_cd_ci, p_cn_ci) fixed bin (24) unsigned unaligned; 379 dcl (p_cd_index, p_cn_index) 380 fixed bin (12) unsigned unaligned; 381 dcl p_code fixed bin (35); 382 383 call sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 384 "^/The element in control interval ^d, slot ^d claims to be continued at^/control interval ^d, slot ^d. ^[^s^a^s^s^;^[^s^a^s^;^s^s^a^]" 385 , p_cd_ci, p_cd_index, p_cn_ci, p_cn_index, (p_code = dm_error_$no_element), 386 (p_code = dm_error_$ci_not_allocated), "That slot is a free slot.", 387 "That control interval is not allocated for use.", "That control interval is incorrectly formatted."); 388 389 end REPORT_MULTI_DATUM_INCONSISTENCY; 390 391 VERIFY_MULTI_DATUM_CONSISTENCY: 392 proc (p_cd_ci, p_cd_index, p_cd_collection_id, p_cn_ci, p_cn_index, p_cn_collection_id, p_cn_slot_is_free, 393 p_cn_slot_is_not_continuation, p_code); 394 395 dcl (p_cd_ci, p_cn_ci) fixed bin (24) unsigned unaligned; 396 dcl (p_cd_index, p_cn_index) 397 fixed bin (12) unsigned unaligned; 398 dcl (p_cd_collection_id, p_cn_collection_id) 399 bit (36) aligned; 400 dcl (p_cn_slot_is_free, p_cn_slot_is_not_continuation) 401 bit (1) aligned; 402 dcl p_code fixed bin (35); 403 404 if p_cn_collection_id ^= p_cd_collection_id 405 then call sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 406 "^/The element in control interval ^d, slot ^d claims to be continued at^/control interval ^d, slot ^d, but the two are in different collections.^/The former is in collection ^.3b;^/the latter is in collection ^.3b." 407 , p_cd_ci, p_cd_index, p_cn_ci, p_cn_index, p_cd_collection_id, p_cn_collection_id); 408 else if p_cn_slot_is_free | p_cn_slot_is_not_continuation 409 then call sub_err_ (dm_error_$programming_error, myname, ACTION_CANT_RESTART, null, 0, 410 "^/The element in control interval ^d, slot ^d claims to be continued at^/control interval ^d, slot ^d. ^[^That slot ^[is free^;is not a continuation datum^]." 411 , p_cd_ci, p_cd_index, p_cn_ci, p_cn_index, p_cn_slot_is_free); 412 413 end VERIFY_MULTI_DATUM_CONSISTENCY; 414 415 GET_CONTINUATION: 416 proc (gc_p_file_oid, gc_p_ci, gc_p_offset, gc_p_continuation_datum_id); 417 418 dcl gc_p_file_oid bit (36) aligned; 419 dcl gc_p_ci fixed bin (27); 420 dcl gc_p_offset fixed bin (21); 421 dcl gc_p_continuation_datum_id 422 bit (36) aligned; 423 dcl gc_code fixed bin (35); 424 425 gc_code = 0; 426 call file_manager_$simple_get (gc_p_file_oid, gc_p_ci, gc_p_offset, addr (gc_p_continuation_datum_id), 427 (CDCN_DATUM_HEADER_LENGTH_IN_BYTES), gc_code); 428 if gc_code ^= 0 429 then call ERROR_RETURN (gc_code); 430 else return; 431 432 433 end GET_CONTINUATION; 434 435 CHECK_VERSION: 436 proc (p_received_version, p_expected_version, p_structure_name); 437 dcl p_received_version char (8) aligned; 438 dcl p_expected_version char (8) aligned; 439 dcl p_structure_name char (*); 440 441 if p_received_version ^= p_expected_version 442 then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 443 "^/Expected version ^a of the ^a structure. 444 Received version ^a instead.", p_expected_version, p_structure_name, p_received_version); 445 446 447 end CHECK_VERSION; 448 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 */ 449 450 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 structudTz*@Жxdpgs/orae 7 6.dac ]D=j&ЖDp,,za$'Site_Support.mail_log ЖDq |$Rzap7bZ6D*@ЖZz*@ЖJRz(*@ЖJzZ*@Ж$&lWCerzajcount_cpus.ec lWC  $za 7z*lW*lW*@lWz*@lWrjcpu_tags.ec lWjcpu_tags_offline.ec lWF>@cda ɏ jcpu_tags_online.ec lW$&oR}zassa.listin oRy2$zm27z*@o&*@D*@o*D&]D=P86za.DAC ]D=P"Rza7zZ*@Жldz(*@Ж\z*@Ж\6D*@Ж TNSCS Ftdodcsc Fncsc FzThibodeaux 7?DPGS/ORAE 7 abb ߆lz*@Ж*@Жz*@]D=*@]D=*@]D=&z*@6z.&6zP:6za6FORD 6zP"V2za7&*@6z*@6zx*@?*Nford 6zR_sx Őx&?*NF;3ZZzaRbroken.listin ?*NF< 9$zar7.z*?*N.*?*Nxz*@?*N&߆P<zaABB ߆P"P2)za7z*@߆*@߆*@o  &o R}za/fssa.list o Ry P$zm7z*@o z*@o z*@oR&oN%za ssa_report.listform oN&E` h$J2za7:*o2B*@o:Jz*oBz*@o &ŐxP?ZDzaRQservices_transfer ŐxP"Y  za7z*@Őx*@Őxx*@Őxxz*Őx<&? J}Uzaold.Site_Info.listin ? J .$zaW7*@? z*? *? z*@? &ԑOtzaSite_Info.lister ԑOBO$ za4/ 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 */ 451 452 3 1 /* BEGIN INCLUDE FILE dm_cm_basic_ci_const.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4* 3 5* Contains constants useful in describing parts of a basic control interval. 3 6**/ 3 7 3 8 /* HISTORY: 3 9*Written by Matthew Pierret, 09/20/84. 3 10*Modified: 3 11**/ 3 12 3 13 dcl FREE_SLOT init (0) fixed bin (15) uns internal static options (constant); 3 14 dcl BCI_HEADER_LENGTH_IN_BYTES 3 15 init (20) fixed bin internal static options (constant); 3 16 dcl DATUM_POSITION_TABLE_OFFSET_IN_BYTES 3 17 init (20) fixed bin internal static options (constant); 3 18 3 19 3 20 /* END INCLUDE FILE dm_cm_basic_ci_const.incl.pl1 */ 453 454 4 1 /* BEGIN INCLUDE FILE dm_cm_datum.incl.pl1 */ 4 2 4 3 /* DESCRIPTION: 4 4* This include file contains the declarations of datum structures. 4 5* There are four tyes of datums: your ordinary, run-of-the-mill datum 4 6* (Datum); a continuation datum (CN Datum), which is a continuation of 4 7* another datum; a continued datum (CD Datum), which is continued (has a 4 8* continuation datum) but is not a continuation itself; and a continued 4 9* continuation datum (CDCN Datum), which is both continued and is a 4 10* continuation. To illustrate, datums can be pieced combined in the 4 11* following ways: 4 12* 4 13* 1) Datum alone. 4 14* 4 15* 2) CD Datum -> CN Datum. 4 16* 4 17* 3) CD Datum -> CDCN Datum {-> CDCN Datum -> ...-> CDCN Datum} -> CN Datum. 4 18* 4 19* continued_datum and continued_continuation_datum each contains a header 4 20* which includes the identifier of the datum which is its continuation. 4 21* continued_datum.header.full_length is the length in bits of the entire 4 22* element, i.e., the addition of the length of contents structure component 4 23* of all of the datums from CD Datum to CN Datum. 4 24**/ 4 25 4 26 /* HISTORY: 4 27*Written by Matthew Pierret, 02/07/82. 4 28*Modified: 4 29*03/25/82 by Matthew Pierret: Changed all datum structures to be unaligned. 4 30*06/14/82 by Matthew Pierret: Added DATUM_HEADER_LENGTH_IN_BYTES. 4 31*08/04/82 by Matthew Pierret: Added DATUM_HEADER_LENGTH_IN_BITS. 4 32*10/20/82 by Matthew Pierret: Split into two include files, this one and 4 33* dm_cm_datum_constants. The latter holds only and all constants 4 34* formerly in this include file. 4 35*10/29/82 by Matthew Pierret: Removed datum headers. 4 36*09/18/84 by Matthew Pierret: Added DESCRIPTION section. Added datum and 4 37* continuation_datum (mainly for illustration). 4 38*12/03/84 by Matthew Pierret: Removed the non-based structures 4 39* (cd cdcn)_datum_headers. 4 40**/ 4 41 4 42 /* format: style2,ll79,ind3 */ 4 43 4 44 dcl 1 datum unaligned based (datum_ptr), 4 45 2 contents bit (datum_contents_length_in_bits); 4 46 4 47 dcl 1 continuation_datum unaligned based (datum_ptr), 4 48 2 contents bit (datum_contents_length_in_bits); 4 49 4 50 dcl 1 continued_datum unaligned based (datum_ptr), 4 51 2 header, 4 52 3 full_length fixed bin (35), 4 53 3 continuation like datum_id, 4 54 2 contents bit (datum_contents_length_in_bits); 4 55 4 56 dcl 1 continued_continuation_datum 4 57 unaligned based (datum_ptr), 4 58 2 header, 4 59 3 continuation like datum_id, 4 60 2 contents bit (datum_contents_length_in_bits); 4 61 4 62 dcl 1 datum_id aligned based (datum_id_ptr), 4 63 2 control_interval_id 4 64 fixed bin (24) unal uns, 4 65 2 index fixed bin (12) unal uns; 4 66 4 67 dcl datum_ptr ptr init (null ()); 4 68 dcl datum_id_ptr ptr init (null ()); 4 69 dcl datum_contents_length_in_bits 4 70 fixed bin (35) init (-1); 4 71 4 72 4 73 4 74 /* END INCLUDE FILE dm_cm_datum.incl.pl1 */ 455 456 5 1 /* BEGIN INCLUDE FILE dm_cm_datum_constants.incl.pl1 */ 5 2 5 3 /* DESCRIPTION: 5 4* Contains constants describing the extents of datums and datum 5 5* headers. The datum headers are described in dm_cm_datum.incl.pl1. 5 6* MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BYTES is the byte length of the largest 5 7* datum that can be stored in a control interval, allowing for the largest 5 8* possibledatum header. MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BITS is the same 5 9* in bits instead of bytes. MINIMUM_MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BITS 5 10* is the smallest length in bits which requires 5 11* MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BYTES bytes to store. 5 12**/ 5 13 5 14 /* 5 15*HISTORY: 5 16*Written by Matthew Pierret, 02/07/82. 5 17*Modified: 5 18*10/29/82 by Matthew Pierret: Removed DATUM_HEADER*. 5 19*11/02/82 by Matthew Pierret: Added maximum datum contents lengths. 5 20*12/01/82 by Lindsey Spratt: Corrected values for datum header lengths. 5 21*09/18/84 by Matthew Pierret: Corrected values for maximum lengths. Added 5 22* MINIMUM_MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BITS. Added 5 23* DESCRIPTION section. 5 24**/ 5 25 5 26 /* format: style2,ind3,ll79 */ 5 27 dcl CD_DATUM_HEADER_LENGTH_IN_BYTES 5 28 fixed bin init (8) internal static 5 29 options (constant); 5 30 5 31 dcl CD_DATUM_HEADER_LENGTH_IN_BITS 5 32 fixed bin init (72) internal static 5 33 options (constant); 5 34 5 35 dcl CDCN_DATUM_HEADER_LENGTH_IN_BYTES 5 36 init (4) fixed bin int static 5 37 options (constant); 5 38 5 39 dcl CDCN_DATUM_HEADER_LENGTH_IN_BITS 5 40 init (36) fixed bin int static 5 41 options (constant); 5 42 5 43 dcl MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BITS 5 44 init (36360) fixed bin (35) internal 5 45 static options (constant); 5 46 5 47 dcl MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BYTES 5 48 init (4040) fixed bin (35) internal 5 49 static options (constant); 5 50 5 51 dcl MINIMUM_MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BITS 5 52 init (36352) fixed bin (35) internal 5 53 static options (constant); 5 54 5 55 /* END INCLUDE FILE dm_cm_datum.incl.pl1 */ 457 458 6 1 /* BEGIN INCLUDE FILE dm_element_id.incl.pl1 */ 6 2 6 3 /* DESCRIPTION: 6 4* 6 5* Contains the declaration of an element identifier. Element 6 6* identifiers consist of two parts, the id (number) of the control interval 6 7* in which the element resides, and the index into the slot table of 6 8* the element in the control interval. The declaration of the element_id 6 9* structure reflects this division of the element identifier. The structure 6 10* is based on the automatic bit string element_id_string because programs 6 11* generally pass bit strings (element_id_string) to each other, then 6 12* interpret the bit string by overlaying the element_id structure ony if 6 13* it is necessary to access the parts of the id. Basing element_id on 6 14* addr(element_id_string) instead of on a pointer removes the necessity 6 15* for always setting that pointer explicitly and guarantees that changes 6 16* made to the string or structure do not get inconsistent. 6 17* 6 18* Changes made to element_id must also be made to datum_id, declared in 6 19* dm_cm_datum.incl.pl1. 6 20**/ 6 21 6 22 /* HISTORY: 6 23*Written by Matthew Pierret, 04/01/82. 6 24*Modified: 6 25*09/24/84 by Matthew Pierret: Added DESCRIPTION section. 6 26**/ 6 27 6 28 /* format: style2,ind3,ll79 */ 6 29 6 30 dcl element_id_string bit (36) aligned; 6 31 6 32 dcl 1 element_id aligned based (addr (element_id_string)), 6 33 2 control_interval_id 6 34 fixed bin (24) unal unsigned, 6 35 2 index fixed bin (12) unal unsigned; 6 36 6 37 6 38 /* END INCLUDE FILE dm_element_id.incl.pl1 */ 459 460 7 1 /* BEGIN INCLUDE FILE dm_cm_entry_dcls.incl.pl1 */ 7 2 7 3 /* DESCRIPTION: 7 4* 7 5* Contains entry declarations of internally available collection_manager_ 7 6* entries. Entries which are only available via the collection_manager_ 7 7* transfer vector are not included here, but are declared instead in 7 8* dm_collmgr_entry_dcls.incl.pl1. 7 9**/ 7 10 7 11 /* HISTORY: 7 12*Written by Mathew Pierret, 04/01/82. 7 13*Modified: 7 14*09/21/82 by Lindsey Spratt: Added the cm_compact$replacement entry. 7 15*10/29/82 by Matthew Pierret: Added cm_find_free_slot, cm_determine_free_space, 7 16* cm_find_ci_to_alloc_datum, cm_recursive_put. 7 17* Added cm_get_element$info*, $header*. The former is used when 7 18* the caller has a cm_info structure already; the latter is used to 7 19* get collection headers. 7 20* Added cm_opening_info$get. Removed cm_add_ci_(part thread). 7 21* Added cm_allocate_element$info. 7 22*11/09/82 by Matthew Pierret: Added argument to cm_allocate_ordered_element 7 23* calling sequence for returning free space. 7 24* Added cm_free_cn_datum("" $header). 7 25*01/07/83 by Matthew Pierret: Added: 7 26* cm_allocate_element$buffered("" _info); 7 27* cm_put_element$buffered("" _info); 7 28* cm_put_datum_in_place$buffered("" _continued); 7 29* cm_put_datum_in_pool$buffered("" _continued); 7 30* cm_compact$buffered. 7 31*01/26/83 by Matthew Pierret: Replaced cm_get_header_and_slot with 7 32* cm_get_bci_header$slot and added cm_get_bci_header$slot_exclusive. 7 33* Added cm_opening_info$get_storage_record. 7 34* Added a bit(36)aligned argument to cm_recursive_put to hold the 7 35* id of the previous datum. 7 36*02/02/83 by Matthew Pierret: Added fixed bin (17) argument to cm_find_free_slot 7 37* which is for the number of slots after allocation. 7 38*02/07/83 by Matthew Pierret: Added cm_get_id$(id info info_return_slot 7 39* header header_return_slot). 7 40* Added cm_get_element_portion$(exclusive info info_exclusive). 7 41* Added cm_get_element$bypass_info. 7 42*03/25/83 by Matthew Pierret: Added cm_free_element$info and 7 43* cm_free_opening_info. 7 44*04/29/83 by Matthew Pierret: Added cm_put_element$unprotected_info 7 45*08/04/83 by Matthew Pierret: Added the entries $does_new_datum_fit and 7 46* $does_replacement_fit to cm_determine_free_space. These entries Fn/QM$*"zaz7"*@*z**z*@&F#:xzax2cfixes.brief.listform F#U $phzar7h`*@Xpz*X*`z*@:2tcfixes.bf.listform DZR3xfer Őx$&ɈHTzadctl ɈH2$ Pza|7z*ɎL&ɎLHOezapvt ɎLH2 $zaG7*ɎLz*ɎL.&*@ɏ>&ɏHzacall_dctl_algorithm.pl1 ɏH2$6.zau76z*ɏ*ɏ&z*@ɏ&ɏ HFza>call_dctl_algorithm ɏ H $$t|zas7ltz*ɏ |d*ɏ dz*ɏ l*ɏ *@ɏ>&ɏHzarldr_alg.pl1 ɏH 2$zaB7z*ɏ*ɏz*@ɏz*ɏz&ɏzHza|rldr_alg ɏzH "$za,7*ɏzz*ɏz*ɏzFz*@F^&FPA zat#DODCSC FP"U2uVza7NFz*@F>*@FV>*@FN*@F&J4ffza^8mac1.dump JiC2$za7*@z**z*@^&Mrza',Site_Info.mar93.listin M[Ÿz$za\7z***@z*@&Jza:Site_Info.listform J2$(zaO7 (z* **@z*@TR 7.&Site_Info.94-Jan-12.listin *|l&& *zM4TTzaLWSite_Info.ill *zM[ $zza7z* *z* *zzr*@ *zrz*@ *z@0*@7&jNKObzaSI.listform jNKO$za07*@jNz*jN*jNz*@jN&&jRKOdzaSI.list jRKO $z@z7 ~2r 'rfb@N>_SwXSvD ^&HD&]3DT6a6Lcp6_issues_log.forum ]3">udd>cp6>mtgs>cp6_issues_log.forumz7gSysDaemon z7UWong z7train.forum CS+&qNڔaWong.mbx qRoG`HqIaz7r*@(q*@q*@qrSMultics z74&q?,ameetings q@e>udd>Multics>Wongz7&CS+A a]training.forum CS+(>udd>Office>Willott>meetings>train.forumz7&q?.<ZaZ4Operations.forum q@e>site>forum_dir>opr.forumz7<4=opr.forum q l &'P`opah,Hockey.forum '>udd>m>Zwick>mtgs>Hockey.forumz7phkschmengie.forum 'env.forum q4&q@aenvironment.forum q@e>site>forum>environment.forumz7&HCS>Aa<Forum_Issues.forum CS>/>udd>Multics>Flegel>meetings>Forum_Issues.forumz70fi.forum CS>|HCS4AG.nan&Product_Ideas.forum CS47>user_dir_dir>Office>Siler>meetings>Product_Ideas.forumz7.&products.forum CS4&&gBBia|KCP6_discussion.forum g>udd>m>Mabey>meetings>cp6.forumz7|ocp6.forum g|H6Bnahsoftware_hardware_budget.forum 6.>site>forum_dir>software_hardware_budget.forumz7!shb.forum 6<&5P5}Karstart_up.ec 5P6MTG2$4,az74r*@5,*5r&5IDDa<hWong.profile 5IL/G$jbaz7jr*@5b*@5<&5RUmzzarWong.value 5RoG2$a<z7r*@5*@5r&:BX&awWong.force :RoGQf$az7r*@:*@:J&udd>cp6>mtgs>cp6_issues.forumz7**2*@2L&EC&aAF_1286A.0 ECnlG2 $zraFz7r*@2r*@2h&Bk::a2vTCI$INETD Bp.OG $`XaQz7`r*@X*@2&Bk[ppahVTCP$HEP Bp.UGw V$az7r*@*@h&WBkjaTCT$TELNET WBp.[GL ~$aXz7r*@W*@W$&СGo,a-ftp СGtKŸza~2rz7r*С*С&d,Go,a zzz d,Gc a~2rz78r*@0+0*@0+|v&oBPC/HHa@v:AF_1284A.0 oBPC+G =$a<z7nr*@on\f*@on\@&&oBFC~~avl*AF_1283A.0 oBFC&G ;$az7r*@oBP*@oBP &{C<aJAF_1016-0-compout {C#GQ $a\z7r*@oBF*@oBF$& CB.aConcerns.forum C>site>forum_dir>Concerns.forumz7r*@{*@{&zC:  a7*1018 zCG$F>asz7Fr*@z>*@z  6 DL T $`r LZV BJlp l  < D t "dbH ( ( 0  X | (  zz R ^  z pn6 P J. zz7&Houser_dir_dir>Multics>Hindbo>meetings>Technical_Writing.forumz7 builtin function dcl 125 ref 225 225 233 233 addr builtin function dcl 125 ref 159 164 165 170 170 177 177 426 426 automatic_bh_buffer 000100 automatic fixed bin(71,0) initial array dcl 106 set ref 106* 106* 106* 164 automatic_ds_buffer 000106 automatic fixed bin(35,0) initial array dcl 107 set ref 107* 165 bci_header based structure level 1 dcl 2-63 bci_header_ptr 000124 automatic pointer dcl 2-94 set ref 164* 169* 177 183* 187 225* 233* 281* 302* 305* 319 319* 324* 328* 339* ceil builtin function dcl 125 ref 185 cm_compact$replacement 000026 constant entry external dcl 7-83 ref 319 cm_delete_cn_datum$header 000030 constant entry external dcl 7-89 ref 281 339 cm_determine_free_space$effective 000032 constant entry external dcl 7-98 ref 183 cm_get_bci_header$slot 000034 constant entry external dcl 7-133 ref 169 cm_info based structure level 1 dcl 1-37 cm_info_ptr 000122 automatic pointer initial dcl 1-47 set ref 161* 162 169 177 195 197* 225 233 257* 281* 302 305 319 324 328 339* 343* 1-47* cm_put_cn_datum 000036 constant entry external dcl 7-211 ref 343 cm_put_datum_in_place 000040 constant entry external dcl 7-213 ref 225 302 cm_put_datum_in_place$continued 000042 constant entry external dcl 7-220 ref 233 305 cm_put_datum_in_pool 000044 constant entry external dcl 7-224 ref 324 cm_put_datum_in_pool$continued 000046 constant entry external dcl 7-231 ref 328 cm_put_overlength_tail 000050 constant entry external dcl 7-241 ref 257 cm_recursive_modify 000052 constant entry external dcl 7-243 ref 197 code 000107 automatic fixed bin(35,0) dcl 108 set ref 157* 169* 170 170 170 170 170* 175* 177* 197* 199 199* 225* 233* 238 238* 257* 259 259* 281* 282 282* 302* 305* 308 308* 319* 321 321* 324* 328* 332 332* 339* 340 340* 343* 345 345* collection_id 1 based bit(36) level 2 in structure "bci_header" dcl 2-63 in procedure "cm_recursive_modify" set ref 177* collection_id 4 based bit(36) initial level 2 in structure "cm_info" dcl 1-37 in procedure "cm_recursive_modify" set ref 177* continuation_datum_id_string 000110 automatic bit(36) initial dcl 109 set ref 109* 195* 197* 215 233* 257* 286 290 302 305* 324 328* 343* control_interval_id based fixed bin(24,0) level 2 in structure "datum_id" packed unsigned unaligned dcl 4-62 in procedure "cm_recursive_modify" set ref 170* 177* 195 control_interval_id based fixed bin(24,0) level 2 in structure "element_id" packed unsigned unaligned dcl 6-32 in procedure "cm_recursive_modify" set ref 170* 177* current_datum_is_maximum_size 000112 automatic bit(1) initial dcl 113 set ref 113* 207* 209* 211 253 datum_contents_length_in_bits 000134 automatic fixed bin(35,0) initial dcl 4-69 set ref 222* 225 225 225* 232* 233 233 233* 240 4-69* datum_id based structure level 1 dcl 4-62 datum_id_ptr 000132 automatic pointer initial dcl 4-68 set ref 159* 169 170 170 177 177 195 197 225 233 281 302 305 319 324 328 339 343 4-68* datum_id_string based bit(36) dcl 121 set ref 169* 197* 225* 233* 281* 302* 305* 319* 324* 328* 339* 343* datum_ptr 000130 automatic pointer initial dcl 4-67 set ref 4-67* datum_slot based structure level 1 dcl 2-82 datum_slot_ptr 000126 automatic pointer dcl 2-95 set ref 165* 169* 177 177 183 183 185 187 192 195 207 225* 233* 281* 302* 305* 324* 328* 339* divide builtin function dcl 125 ref 185 dm_error_$ci_not_allocated 000014 external static fixed bin(35,0) dcl 146 ref 170 383 dm_error_$misformatted_ci 000022 external static fixed bin(35,0) dcl 146 ref 170 dm_error_$no_element 000020 external static fixed bin(35,0) dcl 146 ref 170 383 dm_error_$programming_error 000016 external static fixed bin(35,0) dcl 146 set ref 383* 404* 408* element_id based structure level 1 dcl 6-32 er_p_code parameter fixed bin(35,0) dcl 368 ref 365 370 error_table_$unimplemented_version 000024 external static fixed bin(35,0) dcl 152 set ref 441* file_manager_$simple_get 000010 constant entry external dcl 139 ref 426 file_oid 3 based bit(36) initial level 2 dcl 1-37 set ref 169* 195* 225* 233* 302* 305* 319* 324* 328* flags based structure level 2 packed unaligned dcl 2-82 gc_code 000176 automatic fixed bin(35,0) dcl 423 set ref 425* 426* 428 428* gc_p_ci parameter fixed bin(27,0) dcl 419 set ref 415 426* gc_p_continuation_datum_id parameter bit(36) dcl 421 set ref 415 426 426 gc_p_file_oid parameter bit(36) dcl 418 set ref 415 426* gc_p_offset parameter fixed bin(21,0) dcl 420 set ref 415 426* header_space_required 000113 automatic fixed bin(35,0) initial dcl 115 set ref 115* 290* 297* 298 312 316 index 0(24) based fixed bin(12,0) level 2 in structure "element_id" packed unsigned unaligned dcl 6-32 in procedure "cm_recursive_modify" set ref 170* 177* index 0(24) based fixed bin(12,0) level 2 in structure "datum_id" packed unsigned unaligned dcl 4-62 in procedure "cm_recursive_modify" set ref 170* 177* is_continuation 0(02) based bit(1) level 3 packed unaligned dcl 2-82 ref 177 183 is_continued 0(01) based bit(1) level 3 packed unaligned dcl 2-82 ref 183 192 length_in_bits 0(19) based fixed bin(17,0) level 2 packed unsigned unaligned dcl 2-82 ref 185 207 mod builtin function dcl 125 ref 219 myname 000002 constant varying char(32) initial dcl 130 set ref 383* 404* 408* 441* need_maximum_size_datum 000111 automatic bit(1) initial dcl 111 set ref 111* 204* 206* 211 253 null builtin function dcl 125 ref 1-47 4-67 4-68 383 383 404 404 408 408 441 441 number_of_bits_in_last_byte 000114 automatic fixed bin(35,0) initial dcl 115 set ref 115* 219* 220 220* 222 number_of_datums 4(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-63 ref 319 offset_in_bytes 0(04) based fixed bin(15,0) level 2 packed unsigned unaligned dcl 2-82 ref 177 187 195 old_datum_length_in_bytes 000115 automatic fixed bin(35,0) initial dcl 115 set ref 115* 185* 187 190 298 p_available_space_in_previous_ci parameter fixed bin(35,0) dcl 99 ref 85 277 p_cd_ci parameter fixed bin(24,0) unsigned unaligned dcl 378 in procedure "REPORT_MULTI_DATUM_INCONSISTENCY" set ref 375 383* p_cd_ci parameter fixed bin(24,0) unsigned unaligned dcl 395 in procedure "VERIFY_MULTI_DATUM_CONSISTENCY" set ref 391 404* 408* p_cd_collection_id parameter bit(36) dcl 398 set ref 391 404 404* p_cd_index parameter fixed bin(12,0) unsigned unaligned dcl 396 in procedure "VERIFY_MULTI_DATUM_CONSISTENCY" set ref 391 404* 408* p_cd_index parameter fixed bin(12,0) unsigned unaligned dcl 379 in procedure "REPORT_MULTI_DATUM_INCONSISTENCY" set ref 375 383* p_cm_info_ptr parameter pointer dcl 93 ref 85 161 p_cn_ci parameter fixed bin(24,0) unsigned unaligned dcl 395 in procedure "VERIFY_MULTI_DATUM_CONSISTENCY" set ref 391 404* 408* p_cn_ci parameter fixed bin(24,0) unsigned unaligned dcl 378 in procedure "REPORT_MULTI_DATUM_INCONSISTENCY" set ref 375 383* p_cn_collection_id parameter bit(36) dcl 398 set ref 391 404 404* p_cn_index parameter fixed bin(12,0) unsigned unaligned dcl 396 in procedure "VERIFY_MULTI_DATUM_CONSISTENCY" set ref 391 404* 408* p_cn_index parameter fixed bin(12,0) unsigned unaligned dcl 379 in procedure "REPORT_MULTI_DATUM_INCONSISTENCY" set ref 375 383* p_cn_slot_is_free parameter bit(1) dcl 400 set ref 391 408 408* p_cn_slot_is_not_continuation parameter bit(1) dcl 400 ref 391 408 p_code parameter fixed bin(35,0) dcl 102 in procedure "cm_recursive_modify" set ref 85 157* 370* p_code parameter fixed bin(35,0) dcl 381 in procedure "REPORT_MULTI_DATUM_INCONSISTENCY" ref 375 383 383 p_code parameter fixed bin(35,0) dcl 402 in procedure "VERIFY_MULTI_DATUM_CONSISTENCY" ref 391 p_continued_datum_id_string parameter bit(36) dcl 94 set ref 85 170 170 177 177 p_datum_id_string parameter bit(36) dcl 101 set ref 85 159 286* p_element_ptr parameter pointer dcl 96 set ref 85 197* 225 225 233 233 257* 302* 305* 324* 328* 343* p_expected_version parameter char(8) dcl 438 set ref 435 441 441* p_received_version parameter char(8) dcl 437 set ref 435 441 441* p_remaining_element_length_in_bits parameter fixed bin(35,0) dcl 97 set ref 85 167 358* p_structure_name parameter char unaligned dcl 439 set ref 435 441* pool_free_bytes 000116 automatic fixed bin(35,0) initial dcl 115 set ref 115* 183* 187* 187 316 r_p_remaining_length parameter fixed bin(35,0) dcl 356 ref 353 358 358 remaining_element_length_in_bits 000117 automatic fixed bin(35,0) initial dcl 115 set ref 115* 167* 197* 204 219 225 225 233 233 240 257* 277 287* 298 302* 305* 312 316 324* 328* 343* start_of_used_space 4 based fixed bin(17,0) level 2 packed unaligned dcl 2-63 ref 187 sub_err_ 000012 constant entry external dcl 142 ref 383 404 408 441 total_free_bytes 000120 automatic fixed bin(35,0) initial dcl 115 set ref 115* 183* 190* 190 197* 312 version based char(8) level 2 dcl 1-37 set ref 162* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 8-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 8-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 8-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 8-7 BASIC_CI_LAYOUT_1 internal static char(4) initial dcl 2-97 BCI_HEADER_LENGTH_IN_BYTES internal static fixed bin(17,0) initial dcl 3-14 CDCN_DATUM_HEADER_LENGTH_IN_BITS internal static fixed bin(17,0) initial dcl 5-39 CD_DATUM_HEADER_LENGTH_IN_BITS internal static fixed bin(17,0) initial dcl 5-31 CD_DATUM_HEADER_LENGTH_IN_BYTES internal static fixed bin(17,0) initial dcl 5-27 DATUM_POSITION_TABLE_OFFSET_IN_BYTES internal static fixed bin(17,0) initial dcl 3-16 MAXIMUM_DATUM_CONTENTS_LENGTH_IN_BYTES internal static fixed bin(35,0) initial dcl 5-47 basic_control_interval based structure level 1 dcl 2-56 basic_control_interval_ptr automatic pointer dcl 2-92 cm_allocate_ci 000000 constant entry external dcl 7-75 cm_allocate_ci$info 000000 constant entry external dcl 7-76 cm_allocate_ci$info_header 000000 constant entry external dcl 7-77 cm_compact 000000 constant entry external dcl 7-81 cm_compact$buffered 000000 constant entry external dcl 7-82 cm_compact$buffered_replacement 000000 constant entry external dcl 7-84 cm_delete 000000 constant entry external dcl 7-92 cm_delete$info 000000 constant entry external dcl 7-94 cm_delete_cn_datum 000000 constant entry external dcl 7-87 cm_determine_free_space$all 000000 constant entry external dcl 7-96 cm_determine_free_space$does_new_datum_fit 000000 constant entry external dcl 7-101 cm_find_ci_to_alloc_datum 000000 constant entry external dcl 7-111 cm_find_free_slot 000000 constant entry external dcl 7-115 cm_free_ci$info 000000 constant entry external dcl 7-118 cm_free_ci$raw_return_prev_next 000000 constant entry external dcl 7-119 cm_free_ci$trace_thread_modifications_off 000000 constant entry external dcl 7-124 cm_free_ci$trace_thread_modifications_on 000000 constant entry external dcl 7-122 cm_free_opening_info 000000 constant entry external dcl 7-128 cm_get_bci_header 000000 constant entry external dcl 7-130 cm_get_bci_header$exclusive 000000 constant entry external dcl 7-131 cm_get_element 000000 constant entry external dcl 7-140 cm_get_element$exclusive 000000 constant entry external dcl 7-142 cm_get_element_portion 000000 constant entry external dcl 7-146 cm_get_id$id 000000 constant entry external dcl 7-157 cm_get_id$ptr 000000 constant entry external dcl 7-159 cm_modify 000000 constant entry external dcl 7-162 cm_modify$buffered 000000 constant entry external dcl 7-164 cm_modify$info 000000 constant entry external dcl 7-173 cm_modify$unprotected_info 000000 constant entry external dcl 7-174 cm_opening_info$full_get 000000 constant entry external dcl 7-187 cm_opening_info$get 000000 constant entry external dcl 7-184 cm_opening_info$get_storage_record 000000 constant entry external dcl 7-185 cm_opening_info$opening_table_ptr 000000 constant entry external dcl 7-189 cm_postcommit_increment 000000 constant entry external dcl 7-192 cm_put 000000 constant entry external dcl 7-195 cm_put$buffered 000000 constant entry external dcl 7-197 cm_put$info 000000 constant entry external dcl 7-206 cm_put_basic_element 000000 constant entry external dcl 7-208 cm_put_datum_in_place$buffered 000000 constant entry external dcl 7-215 cm_put_datum_in_place$buffered_continued 000000 constant entry external dcl 7-217 cm_put_datum_in_pool$buffered 000000 constant entry external dcl 7-226 cm_put_datum_in_pool$buffered_continued 000000 constant entry external dcl 7-228 cm_put_ordered_element 000000 constant entry external dcl 7-235 cm_put_ordered_element$buffered 000000 constant entry external dcl 7-237 cm_replace_buffered_ci$trace_thread_modifications_off 000000 constant entry external dcl 7-249 cm_replace_buffered_ci$trace_thread_modifications_on 000000 constant entry external dcl 7-247 continuation_datum based structure level 1 packed unaligned dcl 4-47 continued_continuation_datum based structure level 1 packed unaligned dcl 4-56 continued_datum based structure level 1 packed unaligned dcl 4-50 datum based structure level 1 packed unaligned dcl 4-44 element_id_string automatic bit(36) dcl 6-30 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 002203 constant entry internal dcl 435 ref 162 CONTINUATION_DATUM 000763 constant label dcl 215 CONTINUED_CONTINUATION_DATUM 001040 constant label dcl 229 ERROR_RETURN 001611 constant entry internal dcl 365 ref 175 199 238 259 282 308 321 332 340 345 428 GET_CONTINUATION 002143 constant entry internal dcl 415 ref 195 INSERT_REMAINING_MAX_DATUMS 001127 constant label dcl 253 MAIN_RETURN 001600 constant label dcl 350 ref 360 PUT_DATUM_IN_PLACE 001245 constant label dcl 298 PUT_ELSEWHERE_IN_SAME_CI 001356 constant label dcl 312 PUT_IN_ANOTHER_CI 001520 constant label dcl 336 REMOVE_DATUM_FROM_ELEMENT 001163 constant label dcl 277 REPLACE_CURRENT_DATUM 001221 constant label dcl 290 REPLACE_MAX_WITH_MAX 000761 constant label dcl 211 REPORT_MULTI_DATUM_INCONSISTENCY 001621 constant entry internal dcl 375 ref 170 RETURN 001601 constant entry internal dcl 353 ref 240 287 310 334 347 371 VERIFY_MULTI_DATUM_CONSISTENCY 001750 constant entry internal dcl 391 ref 177 cm_recursive_modify 000337 constant entry external dcl 85 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2612 2666 2337 2622 Length 3256 2337 54 354 252 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cm_recursive_modify 496 external procedure is an external procedure. RETURN internal procedure shares stack frame of external procedure cm_recursive_modify. ERROR_RETURN internal procedure shares stack frame of external procedure cm_recursive_modify. REPORT_MULTI_DATUM_INCONSISTENCY internal procedure shares stack frame of external procedure cm_recursive_modify. VERIFY_MULTI_DATUM_CONSISTENCY internal procedure shares stack frame of external procedure cm_recursive_modify. GET_CONTINUATION internal procedure shares stack frame of external procedure cm_recursive_modify. CHECK_VERSION internal procedure shares stack frame of external procedure cm_recursive_modify. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cm_recursive_modify 000100 automatic_bh_buffer cm_recursive_modify 000106 automatic_ds_buffer cm_recursive_modify 000107 code cm_recursive_modify 000110 continuation_datum_id_string cm_recursive_modify 000111 need_maximum_size_datum cm_recursive_modify 000112 current_datum_is_maximum_size cm_recursive_modify 000113 header_space_required cm_recursive_modify 000114 number_of_bits_in_last_byte cm_recursive_modify 000115 old_datum_length_in_bytes cm_recursive_modify 000116 pool_free_bytes cm_recursive_modify 000117 remaining_element_length_in_bits cm_recursive_modify 000120 total_free_bytes cm_recursive_modify 000122 cm_info_ptr cm_recursive_modify 000124 bci_header_ptr cm_recursive_modify 000126 datum_slot_ptr cm_recursive_modify 000130 datum_ptr cm_recursive_modify 000132 datum_id_ptr cm_recursive_modify 000134 datum_contents_length_in_bits cm_recursive_modify 000176 gc_code GET_CONTINUATION THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out return mpfx2 mod_fx1 ext_entry ceil_fx1 divide_fx1 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cm_compact$replacement cm_delete_cn_datum$header cm_determine_free_space$effective cm_get_bci_header$slot cm_put_cn_datum cm_put_datum_in_place cm_put_datum_in_place$continued cm_put_datum_in_pool cm_put_datum_in_pool$continued cm_put_overlength_tail cm_recursive_modify file_manager_$simple_get sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_error_$ci_not_allocated dm_error_$misformatted_ci dm_error_$no_element dm_error_$programming_error error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 85 000331 106 000344 107 000367 109 000373 111 000374 113 000375 115 000376 1 47 000404 4 67 000406 4 68 000407 4 69 000410 157 000412 159 000415 161 000417 162 000422 164 000443 165 000445 167 000447 169 000452 170 000472 175 000526 177 000530 183 000576 185 000630 187 000640 190 000655 192 000661 195 000664 197 000706 199 000732 204 000736 206 000744 207 000745 209 000754 211 000755 215 000761 219 000763 220 000767 222 000772 225 001001 228 001037 232 001040 233 001042 238 001106 240 001113 253 001123 257 001127 259 001147 277 001153 281 001163 282 001206 286 001213 287 001216 289 001220 290 001221 297 001226 298 001227 302 001245 305 001275 308 001330 310 001335 311 001337 312 001340 316 001356 319 001374 321 001421 324 001425 328 001455 332 001510 334 001515 335 001517 339 001520 340 001543 343 001547 345 001571 347 001576 350 001600 353 001601 358 001603 360 001610 365 001611 370 001613 371 001616 373 001620 375 001621 383 001623 389 001747 391 001750 404 001752 408 002046 413 002142 415 002143 425 002145 426 002146 428 002174 430 002201 433 002202 435 002203 441 002214 447 002304 ----------------------------------------------------------- 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