COMPILATION LISTING OF SEGMENT vrm_destroy_relation Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/21/84 1430.1 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 vrm_destroy_rel_by_opening: destroy_relation_by_opening: proc (I_rel_opening_id, O_code); 8 9 10 /* . BEGIN_DESCRIPTION 11* 12* Destroy a given relation. The destroy_by_opening entrypoint will first 13* close the database. 14* 15* . END_DESCRIPTION 16**/ 17 18 /* History: 19* 20* 82-10-13 R. Harvey: Initially written 21* 22* 83-10-24 Roger Lackey : for better performance changed call to 23* hcs_$status_long to hcs_$get_uid_file to get uid. 24**/ 25 26 /* destroy_relation_by_opening: proc (I_rel_opening_id, O_code); */ 27 28 29 /* Parameters */ 30 31 dcl I_rel_opening_id bit (36) aligned parameter; 32 dcl O_code fixed bin (35); 33 34 35 call vrm_open_man$get_open_info_ptr (I_rel_opening_id, vrm_open_info_ptr, O_code); 36 if O_code ^= 0 then return; 37 38 39 dir_path = vrm_open_info.database_dir_path; 40 rel_name = vrm_open_info.relation_name; 41 42 goto common; 43 44 45 46 vrm_destroy_rel_by_path: destroy_relation_by_path: entry (I_rel_dir, I_rel_name, O_code); 47 48 49 /* Parameters */ 50 51 dcl I_rel_dir char (*) parameter; 52 dcl I_rel_name char (*) parameter; 53 /* dcl O_code fixed bin (35) parameter; */ 54 55 dir_path = I_rel_dir; 56 rel_name = I_rel_name; 57 58 /* Look for possible opening id for this relation */ 59 60 call hcs_$get_uid_file (dir_path, rel_name, file_uid, O_code); /* Try for uid of relation */ 61 if O_code ^= 0 then if O_code ^= error_table_$no_s_permission then 62 return; 63 64 call vrm_open_man$get_opening_id (file_uid, opening_id, (null ()), vrm_open_info_ptr, O_code); /* Get an opening id */ 65 if O_code ^= 0 then return; 66 67 68 69 70 common: 71 72 call vrm_close$release_open_info (vrm_open_info_ptr); /* force a cleanup */ 73 call vrm_open_man$remove_opening (opening_id); 74 call delete_$path (dir_path, rel_name, string (switches), "vfile_relmgr_$destroy_relation", O_code); 75 76 return; 77 1 1 /* BEGIN INCLUDE vrm_open_info.incl.pl1 */ 1 2 1 3 /* R. Harvey 82-11-02 1 4* 82-09-82 Roger Lackey: added iocb_list_ptr */ 1 5 1 6 dcl 1 vrm_open_info aligned based (vrm_open_info_ptr), /* Vfile relation description */ 1 7 2 version char (8), /* Version number of this structure */ 1 8 2 opening_id bit (36) aligned, /* Opening id associated with this desc */ 1 9 2 file_uid bit (36) aligned, /* Unique id of msf dir */ 1 10 2 number_of_openings fixed bin, /* Number of separate calls to vrm$open */ 1 11 2 switches, 1 12 3 shared bit (1) unal, /* Open relation in shared mode */ 1 13 3 pad bit (35) unal init ("0"b), /* Unused must be zero */ 1 14 2 database_dir_path char (168) varying, /* Absolute path of database */ 1 15 2 relation_name char (30) varying, /* Name of relation */ 1 16 2 relation_model_ptr pointer, /* Pointer to the relation_model in the relation itself or a temp seg */ 1 17 2 com_ptr pointer, /* Temp seg for cursors and scratch space */ 1 18 2 iocb_list_ptr pointer, /* Pointer to first vrm_iocb_list_block */ 1 19 2 primary_key_info_ptr pointer, /* Special case collection info ptr */ 1 20 2 number_of_index_collections fixed bin, /* Count of index collections (include primary key) */ 1 21 2 index_collection (voi_no_of_index_collections 1 22 refer (vrm_open_info.number_of_index_collections)), 1 23 3 id bit (36), 1 24 3 info_ptr ptr unal; /* Points to more detailed info */ 1 25 1 26 1 27 dcl VRM_OPEN_INFO_VERSION_1 char (8) int static options (constant) init (" 1"); 1 28 dcl vrm_open_info_ptr ptr; 1 29 dcl voi_no_of_index_collections fixed bin; 1 30 1 31 /* END INCLUDE vrm_open_info.incl.pl1 */ 78 79 80 /* Automatic */ 81 82 dcl dir_path char (168); 83 dcl rel_name char (32); 84 85 /* Builtin */ 86 87 dcl (null, string) builtin; 88 89 /* Internal static */ 90 91 dcl 1 switches internal static options (constant), 92 2 force_sw bit (1) unal init ("0"b), /* Don't delete if protected */ 93 2 question_sw bit (1) unal init ("1"b), /* Ask the user what to do if protected */ 94 2 directory_sw bit (1) unal init ("0"b), /* Don't handle directories */ 95 2 segment_sw bit (1) unal init ("1"b), /* Do handle segments */ 96 2 link_sw bit (1) unal init ("1"b), /* Do handle links */ 97 2 chase_sw bit (1) unal init ("1"b); /* Do chase links */ 98 99 /* External entries */ 100 101 dcl delete_$path entry (char (*), char (*), bit (6), char (*), fixed bin (35)); 102 dcl vrm_close$release_open_info entry (ptr); 103 dcl vrm_open_man$get_open_info_ptr entry (bit (36) aligned, ptr, fixed bin (35)); 104 dcl vrm_open_man$remove_opening entry (bit (36) aligned); 105 106 dcl file_uid bit (36) aligned; 107 dcl error_table_$no_s_permission fixed bin (35) ext static; 108 dcl hcs_$get_uid_file entry (char (*), char (*), bit (36) aligned, fixed bin (35)); 109 dcl opening_id bit (36) aligned; 110 dcl vrm_open_man$get_opening_id entry (bit (36) aligned, bit (36) aligned, ptr, ptr, fixed bin (35)); 111 112 end vrm_destroy_rel_by_opening; 113 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/21/84 0933.7 vrm_destroy_relation.pl1 >special_ldd>online>mrds_install>vrm_destroy_relation.pl1 78 1 10/14/83 1609.1 vrm_open_info.incl.pl1 >ldd>include>vrm_open_info.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_rel_dir parameter char unaligned dcl 51 ref 46 46 55 I_rel_name parameter char unaligned dcl 52 ref 46 46 56 I_rel_opening_id parameter bit(36) dcl 31 set ref 7 7 35* O_code parameter fixed bin(35,0) dcl 32 set ref 7 7 35* 36 46 46 60* 61 61 64* 65 74* database_dir_path 6 based varying char(168) level 2 dcl 1-6 ref 39 delete_$path 000010 constant entry external dcl 101 ref 74 dir_path 000102 automatic char(168) unaligned dcl 82 set ref 39* 55* 60* 74* error_table_$no_s_permission 000020 external static fixed bin(35,0) dcl 107 ref 61 file_uid 000164 automatic bit(36) dcl 106 set ref 60* 64* hcs_$get_uid_file 000022 constant entry external dcl 108 ref 60 null builtin function dcl 87 ref 64 opening_id 000165 automatic bit(36) dcl 109 set ref 64* 73* rel_name 000154 automatic char(32) unaligned dcl 83 set ref 40* 56* 60* 74* relation_name 61 based varying char(30) level 2 dcl 1-6 ref 40 string builtin function dcl 87 ref 74 74 switches 000000 constant structure level 1 packed unaligned dcl 91 ref 74 74 vrm_close$release_open_info 000012 constant entry external dcl 102 ref 70 vrm_open_info based structure level 1 dcl 1-6 vrm_open_info_ptr 000100 automatic pointer dcl 1-28 set ref 35* 39 40 64* 70* vrm_open_man$get_open_info_ptr 000014 constant entry external dcl 103 ref 35 vrm_open_man$get_opening_id 000024 constant entry external dcl 110 ref 64 vrm_open_man$remove_opening 000016 constant entry external dcl 104 ref 73 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. VRM_OPEN_INFO_VERSION_1 internal static char(8) initial unaligned dcl 1-27 voi_no_of_index_collections automatic fixed bin(17,0) dcl 1-29 NAMES DECLARED BY EXPLICIT CONTEXT. common 000244 constant label dcl 70 set ref 42 destroy_relation_by_opening 000026 constant entry external dcl 7 destroy_relation_by_path 000103 constant entry external dcl 46 vrm_destroy_rel_by_opening 000041 constant entry external dcl 7 vrm_destroy_rel_by_path 000131 constant entry external dcl 46 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 516 544 322 526 Length 752 322 26 172 173 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME destroy_relation_by_opening 174 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME destroy_relation_by_opening 000100 vrm_open_info_ptr destroy_relation_by_opening 000102 dir_path destroy_relation_by_opening 000154 rel_name destroy_relation_by_opening 000164 file_uid destroy_relation_by_opening 000165 opening_id destroy_relation_by_opening THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. delete_$path hcs_$get_uid_file vrm_close$release_open_info vrm_open_man$get_open_info_ptr vrm_open_man$get_opening_id vrm_open_man$remove_opening THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$no_s_permission LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000022 35 000051 36 000063 39 000065 40 000072 42 000076 46 000077 55 000154 56 000162 60 000167 61 000214 64 000221 65 000242 70 000244 73 000253 74 000262 76 000321 ----------------------------------------------------------- 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