COMPILATION LISTING OF SEGMENT volume_dump_switch_on Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1155.91_Tue_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 volume_dump_switch_on: vdsn: proc; 12 13 /* This command, modeled after the set_saftey_switch command, sets the incremental and complete 14* volume dump switches of a segment on or off. When a segment is created its dump switches are by default on, that is it 15* will be dumped. If the user does not want a segment dumped, the dump switches can be set off. The two switches 16* control the different modes of volume dumping. Note that if both switches are off and the segment is lost, it 17* can not be recovered. */ 18 19 dcl (dirname, new_path) char (168) aligned; 20 dcl (entname, ename) char (32) aligned; 21 dcl arg char (alng) based (aptr) unaligned; 22 dcl b_name char (32) based; 23 dcl (aptr, eptr, nptr, bentp, npp, dirp, entp) ptr init (null); 24 dcl (i, j, alng, ecount, retc, nargs) fixed bin (17); 25 dcl code fixed bin (35); 26 dcl (incr_volume_dump_sw, comp_volume_dump_sw) fixed bin; 27 dcl myname char (32) aligned; 28 29 dcl cleanup condition; 30 31 dcl (error_table_$incorrect_access, 32 error_table_$no_info) ext fixed bin (35); 33 34 dcl ioa_ entry options(variable); 35 dcl check_path_name_ ext entry (ptr, fixed bin (17), bit (1) aligned, char (32) aligned, ptr, ptr, ptr, 36 fixed bin (17), ptr, ptr, fixed bin (17)); 37 dcl check_path_name_$indiv ext entry (ptr, ptr, bit (1) aligned); 38 dcl cu_$arg_count entry(fixed bin); 39 dcl cu_$arg_ptr ext entry (fixed bin (17), ptr, fixed bin (17), fixed bin (35)); 40 dcl com_err_ ext entry options (variable); 41 dcl hcs_$set_volume_dump_switches entry (char (*) aligned, char (*) aligned, fixed bin, fixed bin, fixed bin (35)); 42 43 dcl (null, addr) builtin; 44 45 incr_volume_dump_sw = -1; 46 comp_volume_dump_sw = -1; 47 myname = "volume_dump_switch_on"; 48 goto start; 49 50 volume_dump_switch_off: vdsf: entry; 51 incr_volume_dump_sw = 1; 52 comp_volume_dump_sw = 1; 53 myname = "volume_dump_switch_off"; 54 55 start: 56 call cu_$arg_count(nargs); 57 if nargs < 1 then do; 58 call ioa_("^a: USAGE ^a pathname [-incr] | [-comp]", myname, myname); 59 return; 60 end; 61 npp = addr (new_path); 62 dirp = addr (dirname); 63 entp = addr (entname); 64 65 on cleanup call vds_cleanup; 66 67 do i = 1 to nargs; /* look for control args */ 68 call cu_$arg_ptr (i, aptr, alng, code); 69 if code ^= 0 then do; 70 call com_err_(code, myname); 71 return; 72 end; 73 if arg = "-incr" | arg = "-incremental" then comp_volume_dump_sw = 0; 74 if arg = "-comp" | arg = "-complete" then incr_volume_dump_sw = 0; 75 end; 76 77 if comp_volume_dump_sw = 0 & incr_volume_dump_sw = 0 then do; 78 call com_err_(0, myname, "Both control arguments may not be used together"); 79 return; 80 end; 81 82 do i = 1 by 1; /* loop through all arguments */ 83 call cu_$arg_ptr (i, aptr, alng, code); 84 if code ^= 0 then return; 85 if arg = "-incr" | arg = "-incremental" then goto skip_loop; 86 if arg = "-comp" | arg = "-complete" then goto skip_loop; 87 check_name: 88 call check_path_name_ (aptr, alng, "0"b, myname, dirp, entp, npp, ecount, eptr, nptr, retc); 89 if retc = 2 then go to free_up; /* error message was already printed */ 90 ename = entname; 91 92 do j = 1 to ecount; /* loop through all enames */ 93 if retc = 1 then do; /* a star name */ 94 call check_path_name_$indiv (dirp, bentp, "0"b); 95 ename = bentp -> b_name; 96 end; 97 call hcs_$set_volume_dump_switches (dirname, ename, incr_volume_dump_sw, comp_volume_dump_sw, code); 98 if code ^= 0 then do; 99 call com_err_ (code, myname, new_path); 100 /* if user lacks modify permission on parent */ 101 if (code = error_table_$incorrect_access) | (code = error_table_$no_info) then 102 go to free_up; /* skip processing segments in this directory */ 103 end; 104 end; 105 free_up: 106 call vds_cleanup; 107 skip_loop: 108 end; /* loop through pathnames */ 109 110 return; 111 112 vds_cleanup: proc; 113 if eptr ^= null then free eptr -> b_name; 114 if nptr ^= null then free nptr -> b_name; 115 return; 116 end vds_cleanup; 117 118 end volume_dump_switch_on; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1155.9 volume_dump_switch_on.pl1 >udd>sm>ds>w>ml>volume_dump_switch_on.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. addr builtin function dcl 43 ref 61 62 63 alng 000264 automatic fixed bin(17,0) dcl 24 set ref 68* 73 73 74 74 83* 85 85 86 86 87* aptr 000244 automatic pointer initial dcl 23 set ref 23* 68* 73 73 74 74 83* 85 85 86 86 87* arg based char packed unaligned dcl 21 ref 73 73 74 74 85 85 86 86 b_name based char(32) packed unaligned dcl 22 ref 95 113 114 bentp 000252 automatic pointer initial dcl 23 set ref 23* 94* 95 check_path_name_ 000016 constant entry external dcl 35 ref 87 check_path_name_$indiv 000020 constant entry external dcl 37 ref 94 cleanup 000304 stack reference condition dcl 29 ref 65 code 000270 automatic fixed bin(35,0) dcl 25 set ref 68* 69 70* 83* 84 97* 98 99* 101 101 com_err_ 000026 constant entry external dcl 40 ref 70 78 99 comp_volume_dump_sw 000272 automatic fixed bin(17,0) dcl 26 set ref 46* 52* 73* 77 97* cu_$arg_count 000022 constant entry external dcl 38 ref 55 cu_$arg_ptr 000024 constant entry external dcl 39 ref 68 83 dirname 000100 automatic char(168) dcl 19 set ref 62 97* dirp 000256 automatic pointer initial dcl 23 set ref 23* 62* 87* 94* ecount 000265 automatic fixed bin(17,0) dcl 24 set ref 87* 92 ename 000234 automatic char(32) dcl 20 set ref 90* 95* 97* entname 000224 automatic char(32) dcl 20 set ref 63 90 entp 000260 automatic pointer initial dcl 23 set ref 23* 63* 87* eptr 000246 automatic pointer initial dcl 23 set ref 23* 87* 113 113 error_table_$incorrect_access 000010 external static fixed bin(35,0) dcl 31 ref 101 error_table_$no_info 000012 external static fixed bin(35,0) dcl 31 ref 101 hcs_$set_volume_dump_switches 000030 constant entry external dcl 41 ref 97 i 000262 automatic fixed bin(17,0) dcl 24 set ref 67* 68* 82* 83* incr_volume_dump_sw 000271 automatic fixed bin(17,0) dcl 26 set ref 45* 51* 74* 77 97* ioa_ 000014 constant entry external dcl 34 ref 58 j 000263 automatic fixed bin(17,0) dcl 24 set ref 92* myname 000273 automatic char(32) dcl 27 set ref 47* 53* 58* 58* 70* 78* 87* 99* nargs 000267 automatic fixed bin(17,0) dcl 24 set ref 55* 57 67 new_path 000152 automatic char(168) dcl 19 set ref 61 99* npp 000254 automatic pointer initial dcl 23 set ref 23* 61* 87* nptr 000250 automatic pointer initial dcl 23 set ref 23* 87* 114 114 null builtin function dcl 43 ref 23 23 23 23 23 23 23 113 114 retc 000266 automatic fixed bin(17,0) dcl 24 set ref 87* 89 93 NAMES DECLARED BY EXPLICIT CONTEXT. check_name 000433 constant label dcl 87 free_up 000614 constant label dcl 105 ref 89 101 skip_loop 000620 constant label dcl 107 ref 85 86 start 000156 constant label dcl 55 ref 48 vds_cleanup 000624 constant entry internal dcl 112 ref 65 105 vdsf 000132 constant entry external dcl 50 vdsn 000104 constant entry external dcl 11 volume_dump_switch_off 000142 constant entry external dcl 50 volume_dump_switch_on 000114 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1040 1072 650 1050 Length 1264 650 32 156 167 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vdsn 272 external procedure is an external procedure. on unit on line 65 64 on unit vds_cleanup 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vdsn 000100 dirname vdsn 000152 new_path vdsn 000224 entname vdsn 000234 ename vdsn 000244 aptr vdsn 000246 eptr vdsn 000250 nptr vdsn 000252 bentp vdsn 000254 npp vdsn 000256 dirp vdsn 000260 entp vdsn 000262 i vdsn 000263 j vdsn 000264 alng vdsn 000265 ecount vdsn 000266 retc vdsn 000267 nargs vdsn 000270 code vdsn 000271 incr_volume_dump_sw vdsn 000272 comp_volume_dump_sw vdsn 000273 myname vdsn THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op ext_entry int_entry op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_path_name_ check_path_name_$indiv com_err_ cu_$arg_count cu_$arg_ptr hcs_$set_volume_dump_switches ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$incorrect_access error_table_$no_info LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000071 11 000103 45 000122 46 000124 47 000125 48 000130 50 000131 51 000150 52 000152 53 000153 55 000156 57 000165 58 000170 59 000212 61 000213 62 000215 63 000217 65 000221 67 000243 68 000253 69 000270 70 000272 71 000307 73 000310 74 000323 75 000334 77 000336 78 000342 79 000367 82 000370 83 000372 84 000407 85 000411 86 000423 87 000433 89 000470 90 000473 92 000476 93 000505 94 000510 95 000525 97 000531 98 000561 99 000563 101 000604 104 000612 105 000614 107 000620 110 000622 112 000623 113 000631 114 000640 115 000647 ----------------------------------------------------------- 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