COMPILATION LISTING OF SEGMENT vrm_destroy_cursor Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/21/84 1429.9 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 vrm_destroy_cursor: destroy_cursor: proc (X_cursor_ptr, I_work_area_ptr, O_code); 8 9 10 /* . BEGIN_DESCRIPTION 11* 12* Frees the storage used by a cursor. It will also 13* close and detach the vfile opening associated with 14* the cursor. If metering is being done it will delete 15* the meter for this cursor. 16* 17*. END_DESCRIPTION */ 18 19 20 /* History: 21* 22* 82-08-20 R. Harvey: Initially written 23* 24**/ 25 26 /* Parameters */ 27 28 dcl I_work_area_ptr ptr; 29 dcl X_cursor_ptr ptr; 30 dcl O_code fixed bin (35); 31 32 vrm_cursor_ptr = X_cursor_ptr; 33 34 call vrmu_iocb_manager$destroy_cursor_iocb (vrm_cursor_ptr, code); 35 36 if code = 0 then do; 37 38 if vrm_cursor.meter_ptr ^= null then 39 vrm_cursor.meter_ptr -> vrm_meter.cursor_ptr = null; 40 41 free vrm_cursor in (work_area); 42 end; 43 44 X_cursor_ptr = null (); 45 O_code = code; 46 47 dcl code fixed bin (35); 48 dcl vrmu_iocb_manager$destroy_cursor_iocb entry (ptr, fixed bin (35)); 49 dcl work_area area based (I_work_area_ptr); 50 dcl null builtin; 51 1 1 /* BEGIN INCLUDE vrm_cursor.incl.pl1 */ 1 2 1 3 /* 83-05-26 Roger Lackey : Modifyed for relation cursors */ 1 4 1 5 dcl vrm_cursor_ptr pointer; /* Pointer to this structure */ 1 6 1 7 dcl 1 vrm_cursor aligned based (vrm_cursor_ptr), /* vfile relation manager cursor */ 1 8 2 opening_id bit (36) aligned, /* ID of opening associated with this cursor */ 1 9 2 debug_sw unal, /* Undefined MBZ */ 1 10 3 trace_open bit (1) unal, /* Show opening of iocb cursor creation time */ 1 11 3 pad bit (35) unal, 1 12 2 switches, 1 13 3 shared bit (1) unal, /* Other processes can use this relation */ 1 14 3 meter_sw bit (1) unal, /* On = Keep meters for this cursor */ 1 15 3 pad bit (7) unal, /* Unsed */ 1 16 2 opening_mode fixed bin, /* Opening mode for this cursor (8 = KSQR 10 = KSQU) */ 1 17 2 open_info_ptr pointer, /* Pointer to parent opening info structure */ 1 18 2 vrm_relation_desc_ptr pointer, /* Pointer to parent rel desc */ 1 19 2 iocb_ptr pointer, /* Pointer to attach iocb */ 1 20 2 secondary_iocb_ptr ptr, /* Second iocb_ptr used by vrmu_search */ 1 21 2 search_list_ptr ptr, /* Pointer to search_list */ 1 22 2 search_keys_ptr ptr, /* Pointer to search_keys array */ 1 23 2 meter_ptr pointer, /* Pointer metering str if metering is on or null */ 1 24 2 vrm_iocb_list_block_ptr pointer, /* Pointer to vrm_iocb_list_block that contains this cursors iocb */ 1 25 2 vrm_iocb_list_block_iocbs_ix fixed bin; /* Index into list_block.iocbs for location of iocb */ 1 26 1 27 1 28 /* END INCLUDE vrm_cursor.incl.pl1 */ 52 53 2 1 /* BEGIN INCLUDE vrm_meter.incl.pl1 */ 2 2 2 3 dcl vrm_meter_ptr pointer; 2 4 2 5 dcl 1 vrm_meter aligned based (vrm_meter_ptr), 2 6 2 cursor_name char (32), /* Name of cursor */ 2 7 2 meter_start_time fixed bin (71), 2 8 2 switches, 2 9 3 metering bit (1) unal, /* On = meter being done */ 2 10 3 mbz bit (35) unal, 2 11 2 cursor_ptr ptr, /* Pointer to vrm_cursor structure */ 2 12 2 last_call_stats like statistics, 2 13 2 total_stats like statistics; 2 14 2 15 dcl 1 statistics based, /* Used in like above */ 2 16 2 last_time_of_stats fixed bin (71), /* Last clock value for stats taken */ 2 17 2 vcpu_time float bin (63), /* The vcpu for this cursor */ 2 18 2 page_faults fixed bin (70), /* Page faults for this cursor */ 2 19 2 number_times_locked fixed bin (70), /* Number of time a lock was set */ 2 20 2 number_times_used fixed bin (70), /* Number of time cursor was used */ 2 21 2 num_times_search_called fixed bin (70), /* Number of time vrm_search was called */ 2 22 2 records_searched fixed bin (70), /* The records searched */ 2 23 2 seek_heads fixed bin (70), /* The seek heads done for key searches */ 2 24 2 special_seek_heads fixed bin (70), /* The seek heads done for key searches */ 2 25 2 keys_read fixed bin (70), /* The keys read by key search */ 2 26 2 keys_compared fixed bin (70), /* The keys compared in key search */ 2 27 2 key_hits fixed bin (70), /* The key hits for key search */ 2 28 2 non_key_compares fixed bin (70), /* The non_key compares done for this cursor */ 2 29 2 non_key_hits fixed bin (70), /* The non_key hits for this cursor */ 2 30 2 upper_limit_found_count fixed bin (70), /* The number of times upper limit was exceeded */ 2 31 2 number_items_returned fixed bin (70), /* Number of tuples or tid returned */ 2 32 2 number_tuples_deleted fixed bin (70), /* Number of tuples deleted */ 2 33 2 number_tuples_modified fixed bin (70), /* Number of tuples modified */ 2 34 2 number_tuples_stored fixed bin (70); /* Number of tuples stored */ 2 35 2 36 /* END INCLUDE vrm_meter.incl.pl1 */ 54 55 56 end vrm_destroy_cursor; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/21/84 0933.6 vrm_destroy_cursor.pl1 >special_ldd>online>mrds_install>vrm_destroy_cursor.pl1 52 1 10/14/83 1609.1 vrm_cursor.incl.pl1 >ldd>include>vrm_cursor.incl.pl1 54 2 10/14/83 1609.1 vrm_meter.incl.pl1 >ldd>include>vrm_meter.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. I_work_area_ptr parameter pointer dcl 28 ref 7 7 41 O_code parameter fixed bin(35,0) dcl 30 set ref 7 7 45* X_cursor_ptr parameter pointer dcl 29 set ref 7 7 32 44* code 000100 automatic fixed bin(35,0) dcl 47 set ref 34* 36 45 cursor_ptr 14 based pointer level 2 dcl 2-5 set ref 38* meter_ptr 20 based pointer level 2 dcl 1-7 ref 38 38 null builtin function dcl 50 ref 38 38 44 statistics based structure level 1 unaligned dcl 2-15 vrm_cursor based structure level 1 dcl 1-7 ref 41 vrm_cursor_ptr 000102 automatic pointer dcl 1-5 set ref 32* 34* 38 38 41 vrm_meter based structure level 1 dcl 2-5 vrmu_iocb_manager$destroy_cursor_iocb 000010 constant entry external dcl 48 ref 34 work_area based area(1024) dcl 49 ref 41 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. vrm_meter_ptr automatic pointer dcl 2-3 NAMES DECLARED BY EXPLICIT CONTEXT. destroy_cursor 000010 constant entry external dcl 7 vrm_destroy_cursor 000020 constant entry external dcl 7 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 136 150 63 146 Length 352 63 12 165 52 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME destroy_cursor 74 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME destroy_cursor 000100 code destroy_cursor 000102 vrm_cursor_ptr destroy_cursor THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. vrmu_iocb_manager$destroy_cursor_iocb NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000004 32 000025 34 000031 36 000041 38 000043 41 000053 44 000055 45 000060 56 000062 ----------------------------------------------------------- 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