COMPILATION LISTING OF SEGMENT rlm_destroy_cursor Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/05/85 0927.7 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* format: style2,ind3 */ 8 9 rlm_destroy_cursor: 10 proc (p_relation_cursor_ptr, p_work_area_ptr, p_code); 11 12 /* DESCRIPTION: 13* This routine frees the storage occupied by a relation_cursor, 14* destroys the index or record cursor hanging off the relation_cursor 15* by calling index/record_manager_$destroy_cursor and frees the 16* specification structure hanging off the relation_cursor. 17**/ 18 19 /* HISTORY: 20*Written by Matthew Pierret, 04/04/83. 21*Modified: 22*06/24/83 by Lindsey L. Spratt: Changed to use version 2 of the 23* relation_cursor. 24*07/28/83 by Matthew Pierret: Changed name of dm_rm_cursor.incl.pl1 to 25* dm_rcm_cursor.incl.pl1. 26*11/01/84 by Stanford S. Cox: CHECK_VERSION: Changed for new sub_err_ syntax 27**/ 28 29 /* START OF DECLARATIONS */ 30 /* Parameter */ 31 32 dcl p_work_area_ptr ptr; /*The area in which the cursor was 33* created.*/ 34 /*For vfile_relmgr_ compatibility only */ 35 dcl p_relation_cursor_ptr ptr; /*A pointer to a record or index cursor*/ 36 dcl p_code fixed bin (35); /*Status code*/ 37 38 /* Automatic */ 39 /* Based */ 40 41 dcl cursor_work_area area (9999) based; 42 43 /* Builtin */ 44 45 dcl null builtin; 46 47 /* Constant */ 48 49 dcl myname init ("rlm_destroy_cursor") char (32) varying internal static options (constant); 50 51 /* Entry */ 52 53 dcl index_manager_$destroy_cursor 54 entry (ptr, fixed bin (35)); 55 dcl record_manager_$destroy_cursor 56 entry (ptr, fixed bin (35)); 57 dcl sub_err_ entry () options (variable); 58 59 /* External */ 60 61 dcl error_table_$unimplemented_version 62 fixed bin (35) ext; 63 64 /* END OF DECLARATIONS */ 65 66 p_code = 0; 67 relation_cursor_ptr = p_relation_cursor_ptr; 68 call CHECK_VERSION ("relation_cursor", relation_cursor.version, RELATION_CURSOR_VERSION_2); 69 70 if relation_cursor.current.cursor_ptr ^= null 71 then if relation_cursor.current.cursor_ptr -> record_cursor.type = RECORD_CURSOR_TYPE 72 then call record_manager_$destroy_cursor (relation_cursor.current.cursor_ptr, p_code); 73 else if relation_cursor.current.cursor_ptr -> index_cursor.type = INDEX_CURSOR_TYPE 74 then call index_manager_$destroy_cursor (relation_cursor.current.cursor_ptr, p_code); 75 else ; 76 77 if relation_cursor.current.specification_ptr ^= null 78 then if relation_cursor.current.specification_ptr -> specification_head.type = ABSOLUTE_NUMERIC_SPECIFICATION_TYPE 79 | relation_cursor.current.specification_ptr -> specification_head.type 80 = RELATIVE_NUMERIC_SPECIFICATION_TYPE 81 then free relation_cursor.current.specification_ptr 82 -> numeric_specification in (relation_cursorEcP  Rpub_08 GQQx AV0063 TTjAV?tape_mult_ Qx AV0127 TTX~AVtape_mult_ YrQx AV0220 TtTCAVtape_mult_ 51\Qx AV0163 T|TAVtape_mult_ Q[AV0184 TTrAVtape_mult_ )Qf*AV0238 T6TAVtape_mult_ ,Q{AV0202 T"hIT" GAVtape_mult_ QAV0226 TT`AVtape_mult_ Q{AV0155 TT&AVtape_mult_ QAAV0092 TGTMAV\tape_mult_ !IQAV0136 T8OT8AVtape_mult_ Q;AV0004 TT'?AVtape_mult_ &,Q"AV0232 T?<T?kxAVtape_mult_ "Q1:#AV0147 TDUATtAVtape_mult_ AQ6CsAV0190 TTTTfAVtape_mult_ Q;RCAV0196 TeBTAVtape_mult_ Q@U&AV0054 TXfTXlAV6tape_mult_ %QESAV0173 T\TBAVtape_mult_ .QTfAV0021 Ti8<TibAVtape_mult_ QYAV0065 T>TkAVAtape_mult_ Q^%AV0239 ToZToxAVtape_mult_ "QcAV0030 TZ&STZAVtape_mult_ QhAV0169 TwERTwrAVtape_mult_ Q}AV0025 TTAVtape_mult_ Q&AV0135 T{T0AVtape_mult_ OQ=AV0050 TjtTAV2tape_mult_ Q>MAV0110 T1Te~AVntape_mult_ 'Qa9AV0011 TT3AV tape_mult_ QAV0152 et, 04/05/82. 2 5*Modified: 2 6*08/19/82 by Matthew Pierret: Version 2. Changed collection_id to 2 7* bit (36) aligned. 2 8*07/28/83 by Matthew Pierret: Changed name from dm_rm_cursor.incl.pl1 to 2 9* dm_rcm_cursor.incl.pl1. 2 10*04/13/84 by Lee Baldwin: Renamed pf_opening_id to file_opening_id to coincide 2 11* with the naming conventions used in the rcm_XX routines. 2 12**/ 2 13 2 14 /* format: style2,ind3 */ 2 15 dcl 1 record_cursor aligned based (record_cursor_ptr), 2 16 2 type fixed bin (17) unaligned, 2 17 2 version fixed bin (17) unaligned, 2 18 2 flags, 2 19 3 position_is_valid 2 20 bit (1) unal, 2 21 3 pad bit (35) unal, 2 22 2 area_ptr ptr, 2 23 2 file_opening_id bit (36) aligned, 2 24 2 collection_id bit (36) aligned, 2 25 2 record_id bit (36) aligned, 2 26 2 record_check_value bit (36) aligned; 2 27 2 28 dcl record_cursor_ptr ptr; 2 29 dcl RECORD_CURSOR_VERSION_2 2 30 init (2) fixed bin int static options (constant); 2 31 dcl RECORD_CURSOR_TYPE init (1) fixed bin int static options (constant); 2 32 dcl BEGINNING_OF_COLLECTION_RECORD_ID 2 33 init ("0"b) bit (36) aligned int static options (constant); 2 34 2 35 /* END INCLUDE FILE - dm_rcm_cursor.incl.pl1 */ 113 114 3 1 /* BEGIN INCLUDE FILE - dm_im_cursor.incl.pl1 */ 3 2 3 3 /* DESCRIPTION: 3 4* 3 5* This structure specifies a DM file, an index collection in that DM 3 6*file, and a position (key) in that index collection. 3 7* 3 8**/ 3 9 3 10 /* HISTORY: 3 11* 3 12*Written by Lindsey Spratt, 03/29/82 3 13*Modified: 3 14*08/09/82 by Matthew Pierret: Changed collection_id from "fixed bin (17)" to 3 15* "bit (35) aligned". 3 16*08/26/82 by Lindsey Spratt: Changed to version 2. Added the is_valid and 3 17* is_at_end_of_index flags. Changed the key_check_value to fixed 3 18* bin (35). Added the IM_HASH_BIAS, which is used to increment the 3 19* value developed by hash_index_, and IM_HASH_NUMBER_OF_BUCKETS, 3 20* which is a unique number used by hash_index_ to develop the 3 21* key_check_value. 3 22*02/23/83 by Lindsey Spratt: Changed to keep the current key value in the 3 23* cursor. Also, implemented the ability to have the cursor 3 24* positioned before or after the index. 3 25*10/23/84 by Lindsey L. Spratt: Added a description section. 3 26**/ 3 27 3 28 /* format: style2,ind3 */ 3 29 dcl 1 index_cursor based (index_cursor_ptr), 3 30 2 type fixed bin (17) unaligned, 3 31 2 version fixed bin (17) unaligned, 3 32 2 file_opening_id bit (36) aligned, 3 33 2 collection_id bit (36) aligned, 3 34 2 key_id_string bit (36) aligned, /* Is the location of the current key, */ 3 35 /* if flags.current_key_exists is on. Is the location */ 3 36 /* of the end of the index if flags.is_at_end_of_index */ 3 37 /* is on, which is only available via an operation */ 3 38 /* requiring the "previous" key. Is the location of */ 3 39 /* the "next" key, otherwise. */ 3 40 2 area_ptr ptr, /* Area in which the cursor and key_string area allocated. */ 3 41 /* Must be a freeing area. */ 3 42 2 current_key_string_ptr 3 43 ptr, /* Points to the value of the current key. */ 3 44 2 current_key_string_length 3 45 fixed bin (24) unal, /* Is the length of the current key in bits. */ 3 46 2 pad bit (12) unal, 3 47 2 flags aligned, 3 48 3 is_at_@q> rH@=LSD~&H &Pz q>&pLhIzzar,Attendees pRyzaq>*@pSysDaemon q>*@pDEVM q>NMLPROD q>STDSPPT q>.EngAdmin q>&*@pRing_1_Repair q>Hr&q;A\  a.Proceedings.1 q;HL J**aq>*@q;*@q@TOBSWE q>&q@A\PPaHTransactions q@H222aq>*@pn:*@pv*@p:PLASTICS q>*@pMSGD q>*@pSysMaint q><*@pSchroth q><*@pGuest q>*@pDickson q> *@pNetwork_Server q> Multics q>.*@pMDavis q>*@p.incl.pl1, 5 16* must be included in any program which uses this (the 5 17* dm_specification.incl.pl1) include file. 5 18**/ 5 19 5 20 /* HISTORY: 5 21* 5 22*Written by Lindsey Spratt, 05/19/82. 5 23*Modified: 5 24*08/17/82 by Matthew Pierret: Added all specification type constants. 5 25*09/24/82 by Ronald Harvey: Changed version and added and_groups. 5 26*10/22/82 by Lindsey Spratt: Added the range_size to the numeric_specification. 5 27* Changed the version to 3. 5 28*05/11/83 by Matthew Pierret: Moved specification_head and and type constants 5 29* to dm_specification_head.incl.pl1. Added constraint.value_field_id. 5 30* Moved range type constants into dm_range_constants.incl.pl1. 5 31*05/20/83 by Matthew Pierret: Added constraint.value_field_id for specifying 5 32* intra-key/record compares. 5 33*10/02/84 by Lindsey L. Spratt: Moved a misplaced journalization comment. 5 34* Added a DESCRIPTION comment. 5 35**/ 5 36 5 37 /* format: style2,ind3 */ 5 38 dcl 1 search_specification based (search_specification_ptr), 5 39 2 head like specification_head, 5 40 2 maximum_number_of_constraints 5 41 fixed bin (17) unal, 5 42 2 number_of_and_groups 5 43 fixed bin (17) unal, 5 44 2 range unal, 5 45 3 type fixed bin (17), 5 46 3 size fixed bin (17), 5 47 2 and_group (ss_number_of_and_groups refer (search_specification.number_of_and_groups)), 5 48 3 number_of_constraints 5 49 fixed bin (17) unal, 5 50 3 constraint (ss_maximum_number_of_constraints 5 51 refer (search_specification.maximum_number_of_constraints)), 5 52 4 field_id fixed bin (17) unal, 5 53 4 operator_code fixed bin (17) unal, 5 54 4 value_field_id fixed bin (17) unal, 5 55 4 pad bit (18) unal, 5 56 4 value_ptr ptr unal; 5 57 5 58 dcl search_specification_ptr 5 59 ptr; 5 60 dcl (ss_number_of_and_groups, ss_maximum_number_of_constraints) 5 61 fixed bin (17); 5 62 5 63 dcl 1 numeric_specification 5 64 based (numeric_specification_ptr), 5 65 2 head like specification_head, 5 66 2 range_size fixed bin (35) aligned, 5 67 2 position_number fixed bin (17) unal, 5 68 2 pad bit (18) unal; 5 69 5 70 dcl numeric_specification_ptr 5 71 ptr; 5 72 5 73 /* END INCLUDE FILE - dm_specification.incl.pl1 */ 119 120 6 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 6 2 /* format: style3 */ 6 3 6 4 /* These constants are to be used for the flags argument of sub_err_ */ 6 5 /* They are just "string (condition_info_header.action_flags)" */ 6 6 6 7 declare ( 6 8 ACTION_CAN_RESTART init (""b), 6 9 ACTION_CANT_RESTART init ("1"b), 6 10 ACTION_DEFAULT_RESTART 6 11 init ("01"b), 6 12 ACTION_QUIET_RESTART 6 13 init ("001"b), 6 14 ACTION_SUPPORT_SIGNAL 6 15 init ("0001"b) 6 16 ) bit (36) aligned internal static options (constant); 6 17 6 18 /* End include file */ 121 122 123 end rlm_destroy_cursor; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/05/85 0836.7 rlm_destroy_cursor.pl1 >spec>on>7138.pbf>rlm_destroy_cursor.pl1 111 1 03/05/85 0800.2 dm_rlm_cursor.incl.pl1 >spec>on>7138.pbf>dm_rlm_cursor.incl.pl1 113 2 01/07/85 0859.4 dm_rcm_cursor.incl.pl1 >ldd>include>dm_rcm_cursor.incl.pl1 115 3 01/07/85 0858.9 dm_im_cursor.incl.pl1 y  *@y  *@y   *@y z*@y &yHn  * *z "Tofil yRQN. < Pz~2r *@y f*@yL Tofil  P n*@y f v*@y n ~*@y v .*@y ~ H*@y H  X*@y z*@y t "&yHn! z "Zemmin yRQN/2 l z~2r D L 6*@y *@y 66Lackeyc  *@y *@y *@y z*@yHMay  *@y  . *@y Zemmin   D *@yN Lyon  .   *@y T.*@y L \*@y T d*@y \ l  *@y dz*@y  &yHn" | | a tnew_site_sa.ec yH4LGLB$   a z*y 8 N.*@y   Gsam y t t&yHn#   fa  rsa_meeting yRy = ^  fa~2r *@y   %sa_meetings y  meetings y  z*@y  *@y *@y  " **@y  8 @*@y fHBatts  " *@y:Coppola   V*@y N ^*@y Vz*@y *Berglund  &yHn$ | fa  tRsite_info yRQN0 ? ^ fa~2r  \*@y v *@& | te"si y  tinfo y dg y ~.*@& *@y  |ds & *@y z*@y   **@y   @*@y *@y  "*@y  8.*@yPubs  " N*@y Doc  8 V*@y N ^*@y Vz*@y*@ z*@& n  2*@& f*@&v*@y z*@y0  *@y02*@yw  *@y0  .*@y0  *@y0 *@y0 *@y-VNL*@y  *@y-  *@y-*@y  z*@y-*@y{  cl 4-10 specification_ptr 12 based pointer initial level 3 dcl 1-18 ref 77 77 77 77 83 83 83 sub_err_ 000014 constant entry external dcl 57 ref 104 type based fixed bin(17,0) level 2 in structure "index_cursor" packed unaligned dcl 3-29 in procedure "rlm_destroy_cursor" ref 73 type based fixed bin(17,0) level 2 in structure "record_cursor" packed unaligned dcl 2-15 in procedure "rlm_destroy_cursor" ref 70 type 1 based fixed bin(17,0) level 2 in structure "specification_head" packed unaligned dcl 4-10 in procedure "rlm_destroy_cursor" ref 77 77 83 83 version based char(8) level 2 dcl 1-18 set ref 68* work_area_ptr 2 based pointer initial level 2 dcl 1-18 ref 77 83 92 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSOLUTE_RELATION_NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 ABSOLUTE_RELATION_SEARCH_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 ACTION_CAN_RESTART internal static bit(36) initial dcl 6-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 6-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 6-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 6-7 BEGINNING_OF_COLLECTION_RECORD_ID internal static bit(36) initial dcl 2-32 INDEX_CURSOR_VERSION_3 internal static fixed bin(17,0) initial dcl 3-66 NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 RECORD_CURSOR_VERSION_2 internal static fixed bin(17,0) initial dcl 2-29 RELATIVE_RELATION_NUMERIC_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 RELATIVE_RELATION_SEARCH_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 SEARCH_SPECIFICATION_TYPE internal static fixed bin(17,0) initial dcl 4-22 SPECIFICATION_VERSION_4 internal static fixed bin(35,0) initial dcl 4-19 index_cursor_ptr automatic pointer dcl 3-64 numeric_specification_ptr automatic pointer dcl 5-70 record_cursor_ptr automatic pointer dcl 2-28 search_specification_ptr automatic pointer dcl 5-58 specification_head_ptr automatic pointer dcl 4-18 ss_maximum_number_of_constraints automatic fixed bin(17,0) dcl 5-60 ss_number_of_and_groups automatic fixed bin(17,0) dcl 5-60 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000235 constant entry internal dcl 97 ref 68 rlm_destroy_cursor 000063 constant entry external dcl 9 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 432 452 337 442 Length 746 337 20 257 73 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rlm_destroy_cursor 156 external procedure is an external procedure. CHECK_VERSION internal procedure shares stack frame of external procedure rlm_destroy_cursor. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rlm_destroy_cursor 000100 relation_cursor_ptr rlm_destroy_cursor THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. index_manager_$destroy_cursor record_manager_$destroy_cursor sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000057 1 42 000070 66 000072 67 000074 68 000077 70 000122 73 000146 77 000164 83 000204 90 000227 92 000232 95 000234 97 000235 104 000246 109 000336