COMPILATION LISTING OF SEGMENT delete_volume_log Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 10/10/89 1419.0 mst Tue 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 delete_volume_log: dvl: proc; 12 13 /* This command allows the caller to delete the specified volume log in a consistent manner */ 14 15 /* DR Vinograd 9/78 */ 16 17 18 dcl suffix char (32); 19 dcl new_pool_path char (168); 20 dcl contents_name char (32); 21 dcl vlx fixed bin; 22 dcl volog_name char (32); 23 dcl pvolog_name char (32); 24 dcl pvolog_dir char (168); 25 dcl contents_dir char (168); 26 dcl wd_mode bit (1); 27 dcl volog_dir char (168); 28 dcl volname char (32); 29 dcl narg fixed bin; 30 dcl j fixed bin; 31 dcl arg char (argl) based (argp); 32 dcl argl fixed bin; 33 dcl argp ptr; 34 dcl contentsp ptr; 35 dcl manual_free bit (1); 36 dcl ac fixed bin; 37 dcl code fixed bin (35); 38 dcl ignore fixed bin (35); 39 dcl vpp ptr; 40 41 dcl myname char (32) init ("delete_volume_log") static options (constant); 42 dcl lock_wait_time fixed bin static init (60) options (constant); 43 44 dcl cleanup condition; 45 46 dcl error_table_$badopt ext fixed bin (35); 47 dcl error_table_$invalid_lock_reset fixed bin (35) ext; 48 dcl error_table_$noentry ext fixed bin (35);; 49 50 dcl get_wdir_ entry returns (char (168)); 51 dcl ioa_ entry options (variable); 52 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 53 dcl manage_volume_pool_$free entry (ptr, entry options (variable), char (*), fixed bin (35)); 54 dcl manage_volume_pool_$set_pool_path entry (entry options (variable), char (*), ptr, fixed bin (35)); 55 dcl hcs_$delentry_seg entry (ptr, fixed bin (35)); 56 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 57 dcl com_err_ entry options (variable); 58 dcl error_rnt entry variable options (variable); 59 dcl suffixed_name_$make entry (char (*), char (*), char (*), fixed bin (35)); 60 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin, fixed bin, ptr, fixed bin (35)); 61 dcl set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)); 62 dcl set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 63 dcl cu_$arg_count entry (fixed bin); 64 65 dcl (null, addr, substr, rtrim) builtin; 66 1 1 /* BEGIN INCLUDE FILE ... backup_volume_log.incl.pl1 ... Feb 1976 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(88-03-03,GWMay), approve(89-10-03,MCR8135), 1 6* audit(89-10-04,Beattie), install(89-10-10,MR12.3-1089): 1 7* Added values for storing the number of incremental and consolidated dump 1 8* sets to retain in the volume log. Incremented version number to 3. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Modified: 3/7/84 by GA Texada to change to version 2 */ 1 13 dcl bvlp ptr; 1 14 dcl bvlep ptr; 1 15 1 16 dcl backup_volume_log_version_1 fixed bin static init (1) options (constant); 1 17 dcl backup_volume_log_version_2 fixed bin init(2) int static options(constant); 1 18 dcl backup_volume_log_version_3 fixed bin init(3) int static options(constant); 1 19 1 20 dcl 1 backup_volume_log based (bvlp) aligned, 1 21 2 header like backup_volume_header aligned, 1 22 2 info like backup_pvol_info aligned, 1 23 2 version fixed bin, /* version number */ 1 24 2 lock bit (36), /* shared data base */ 1 25 2 pvname char (32), /* physical volume name */ 1 26 2 pvid bit (36), /* physical volume id */ 1 27 2 next fixed bin, /* next available dump record */ 1 28 2 reload_groups fixed bin, /* number of reload groups in log */ 1 29 2 purge_control (3), /* control selective purging by dump type */ 1 30 3 group (36) bit (1) unaligned, /* up to 36 reload groups */ 1 31 2 disk_type fixed bin unal, /* type of disk drive */ 1 32 2 half_word_pad bit(18) unal, /* MBZ */ 1 33 2 rpv_pvid bit(36), /* pvid of this volumes RPV */ 1 34 2 Nsaved_incr_sets fixed bin, /* number of incr cycles to retain */ 1 35 2 Nsaved_cons_sets fixed bin, /* number of incr cycles to retain */ 1 36 2 pad (31) bit (36), /* for future expansion (MBZ) */ 1 37 2 array (1:1 refer (backup_volume_log.next)) like bvle aligned; 1 38 1 39 dcl 1 bvle based (bvlep) aligned, 1 40 2 cycle_uid bit (36), /* uid of this dump cycle */ 1 41 2 dump_type fixed bin, /* type of dump */ 1 42 2 volname char (32), /* name of output volume */ 1 43 2 open_time fixed bin (71), /* opening time of dump pass on this physical volume */ 1 44 2 close_time fixed bin (71), /* ending time of dump pass */ 1 45 2 volid bit (36), /* uid of output volume */ 1 46 2 io_module char (32), /* outer module name that wrote this volume */ 1 47 2 flags, /* flags */ 1 48 3 purge_scan_logged bit (1) unaligned, /* if on object looged during purge scan */ 1 49 3 pad1 bit (35) unaligned, 1 50 2 pad (7) bit (36), /* for future expansion */ 1 51 (2 dir_num fixed bin, /* number of dirs dumped on this pass */ 1 52 2 dir_rec fixed bin, /* number of records of dirs */ 1 53 2 seg_num fixed bin, /* number of segs dumped on this pass */ 1 54 2 seg_rec fixed bin) unaligned; /* number of records of segs */ 1 55 1 56 /* END INCLUDE FILE ... backup_volume_log */ 67 2 1 /* BEGIN INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 2 2 2 3 dcl bpvip ptr; 2 4 2 5 dcl 1 backup_pvol_info based (bpvip) aligned, 2 6 2 label like label aligned, 2 7 2 n_vtoce fixed bin, 2 8 2 n_free_vtoce fixed bin, 2 9 2 n_rec fixed bin, 2 10 2 baseadd fixed bin, 2 11 2 n_free_rec fixed bin; 2 12 2 13 /* END INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 68 3 1 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 3 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 3 6* Add the subvolume info. 3 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 3 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 3 9* Added inconsistent_dbm bit used to determine consistency of volume 3 10* dumper bit maps. 3 11* END HISTORY COMMENTS */ 3 12 3 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 3 14 /* Note: fsout_vol clears pad fields before writing the label */ 3 15 3 16 dcl labelp ptr; 3 17 3 18 dcl 1 label based (labelp) aligned, 3 19 3 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 3 21 3 22 2 gcos (5*64) fixed bin, 3 23 3 24 /* Now we have the Multics label */ 3 25 3 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 3 27 2 version fixed bin, /* Version 1 */ 3 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 3 29 2 pv_name char (32), /* Physical volume name. */ 3 30 2 lv_name char (32), /* Name of logical volume for pack */ 3 31 2 pvid bit (36), /* Unique ID of this pack */ 3 32 2 lvid bit (36), /* unique ID of its logical vol */ 3 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 3 34 2 time_registered fixed bin (71), /* time imported to system */ 3 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 3 36 2 vol_size fixed bin, /* total size of volume, in records */ 3 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 3 38 2 not_used bit (1) unal, /* used to be multiple_class */ 3 39 2 private bit (1) unal, /* TRUE if was registered as private */ 3 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 3 41 2 flagpad bit (33) unal, 3 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 3 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 3 44 2 password bit (72), /* not yet used */ 3 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 3 46 2 this_sv fixed bin, /* what subvolume number it is */ 3 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 3 48 2 pad1 (13) fixed bin, 3 49 2 time_mounted fixed bin (71), /* time mounted */ 3 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 3 51 3 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 3 53* forces a salvage if an MR10 pack is mounted on an earlier system. 3 54* */ 3 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 3 56 2 pad6 fixed bin, 3 57 3 58 2 time_salvaged fixed bin (71), /* time salvaged */ 3 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 3 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 3 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 3 62 2 pad1a (2) fixed bin, 3 63 2 err_hist_size fixed bin, /* size of pack error history */ 3 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 3 65 2 time_last_reloaded fixed bin (71), /* what it says */ 3 66 2 pad2 (40) fixed bin, 3 67 2 root, 3 68 3 here bit (1), /* TRUE if the root is on this pack */ 3 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 3 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 3 71 3 pad7 bit (1) aligned, 3 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 3 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 3 74 3 esd_state fixed bin, /* State of esd */ 3 75 2 volmap_record fixed bin, /* Begin record of volume map */ 3 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 3 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 3 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 3 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 3 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 3 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 3 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 3 83 2 pad3 (52) fixed bin, 3 84 2 nparts fixed bin, /* Number of special partitions on pack */ 3 85 2 parts (47), 3 86 3 part char (4), /* Name of partition */ 3 87 3 frec fixed bin, /* First record */ 3 88 3 nrec fixed bin, /* Number of records */ 3 89 3 pad5 fixed bin, 3 90 2 pad4 (5*64) fixed bin; 3 91 3 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 3 93 3 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 69 4 1 /* BEGIN INCLUDE FILE ... backup_volume_header ... Feb 1976 */ 4 2 4 3 dcl hdp ptr; /* ptr to header */ 4 4 4 5 dcl 1 backup_volume_header based (hdp) aligned, 4 6 2 pattern1 bit (36), /* unique word 1 */ 4 7 2 rec1_type fixed bin, /* record 1 type */ 4 8 2 rec1_len fixed bin, /* length in chars */ 4 9 2 pattern2 bit (36), /* unique word 2 */ 4 10 2 rec2_type fixed bin, /* record 2 type */ 4 11 2 rec2_len fixed bin, /* length in chars */ 4 12 2 pattern3 bit (36), /* unique word 3 */ 4 13 2 time_dumped bit (36); /* dump time of this record */ 4 14 4 15 dcl vtoce_type fixed bin static init (1) options (constant); /* type code for vtoce */ 4 16 dcl dir_type fixed bin static init (2) options (constant); /* type code for directory */ 4 17 dcl seg_type fixed bin static init (3) options (constant); /* type code for segment */ 4 18 dcl null_type fixed bin static init (4) options (constant); /* type code for null record */ 4 19 dcl volume_log_type fixed bin static init (5) options (constant); /* type code for volume log */ 4 20 dcl prev_output_log_type fixed bin static init (6) options (constant); /* type code for prev output log */ 4 21 dcl contents_type fixed bin static init (7) options (constant); /* type code for contents segment of previous volume */ 4 22 dcl info_type fixed bin static init (8) options (constant); /* type code for info structure */ 4 23 4 24 dcl pattern1 bit (36) int static init ("110111000011001100011101101010100101"b) options (constant); 4 25 dcl pattern2 bit (36) int static init ("101001010101101110001100110000111011"b) options (constant); 4 26 dcl pattern3 bit (36) int static init ("001000111100110011100010010101011010"b) options (constant); 4 27 4 28 /* END INCLUDE FILE ... backup_volume_header */ 70 5 1 /* BEGIN INCLUDE FILE ... backup_static_variables.incl.pl1 ... March 1976 */ 5 2 5 3 5 4 dcl incr fixed bin init (1) internal static options (constant); /* incremental dump mode */ 5 5 dcl cons fixed bin init (2) internal static options (constant); /* consolidated dump mode */ 5 6 dcl comp fixed bin init (3) internal static options (constant); /* complete dump mode */ 5 7 dcl backup_version_1 fixed bin init (1) static internal options (constant); /* backup_version_1 of input/output structures */ 5 8 5 9 5 10 5 11 /* END INCLUDE FILE ... backup_static_variables.incl.pl1 */ 71 6 1 /* BEGIN INCLUDE FILE ... pvolog.incl.pl1 9/76 */ 6 2 6 3 dcl pvlp ptr; 6 4 dcl pvlep ptr; 6 5 6 6 dcl pvolog_version_1 fixed bin int static init (1) options (constant); 6 7 6 8 dcl 1 pvolog aligned based (pvlp), 6 9 2 lock bit (36), 6 10 2 version fixed bin, 6 11 2 dump_type fixed bin, 6 12 2 mount_time fixed bin (71), 6 13 2 volid bit (36), 6 14 2 next fixed bin, 6 15 2 in_use fixed bin, 6 16 2 array (1:1 refer (pvolog.next)) like pvle aligned; 6 17 6 18 dcl 1 pvle based (pvlep) aligned, 6 19 2 pvname char (32), 6 20 2 invocation_count fixed bin; 6 21 6 22 /* END INCLUDE FILE ... pvolog.incl.pl1 */ 72 73 74 /* set flags */ 75 wd_mode, manual_free = "0"b; 76 error_rnt = com_err_; 77 bvlp, pvlp = null; 78 /* pick up name of volume log */ 79 call cu_$arg_ptr (1, argp, argl, code); 80 if code ^= 0 then do; 81 argerr: call com_err_ (0, myname, "USAGE ^a pvname [-manual_free] [-wd | -working_dir]", myname); 82 return; 83 end; 84 if substr (arg, 1, 1) = "-" then goto argerr; 85 /* get pathname */ 86 volname = arg; 87 /* pickup control args if any */ 88 ac = 2; 89 call cu_$arg_count (narg); 90 do while (ac <= narg); 91 call cu_$arg_ptr (ac, argp, argl, code); 92 if code ^= 0 then do; 93 call com_err_ (code, myname, "Unable to access arg after", arg); 94 goto finish; 95 end; 96 if arg = "-manual_free" then manual_free = "1"b; 97 else if arg = "-wd" | arg = "-working_dir" then wd_mode = "1"b; 98 else do; 99 call com_err_ (error_table_$badopt, myname, "^a", arg); 100 goto finish; 101 end; 102 ac = ac + 1; 103 end; 104 105 code = 0; 106 /* set cleanup handler to unlock and release */ 107 if ^manual_free then do; 108 if wd_mode then new_pool_path = rtrim (get_wdir_ ()) || ">" || "Volume_Dumper"; 109 else new_pool_path = ">daemon_dir_dir>volume_backup>Volume_Dumper"; 110 call manage_volume_pool_$set_pool_path (error_rnt, new_pool_path, vpp, code); 111 if code ^= 0 then do; 112 call com_err_ (code, myname, "Unable to set new volume pool path"); 113 goto finish; 114 end; 115 end; 116 if wd_mode then volog_dir, contents_dir, pvolog_dir = get_wdir_ (); 117 else do; 118 volog_dir = ">daemon_dir_dir>volume_backup"; 119 pvolog_dir = ">daemon_dir_dir>volume_backup>pvolog"; 120 contents_dir = ">daemon_dir_dir>volume_backup>contents"; 121 end; 122 on cleanup call finish_; 123 call get_volog (volname); 124 if bvlp = null then do; 125 call com_err_ (code, myname, "^a>^a.volog", volog_dir, volname); 126 goto finish; 127 end; 128 call lock_volume_log ; 129 do vlx = 1 to backup_volume_log.next; 130 volname = backup_volume_log (vlx).volname; 131 call get_pvolog (volname); 132 if pvlp ^= null then do; 133 call lock_pvolog ; 134 do j = 1 to pvolog.next; 135 pvlep = addr (pvolog.array (j)); 136 if pvle.pvname = backup_volume_log.pvname then do; 137 pvle.invocation_count = pvle.invocation_count - 1; 138 if pvle.invocation_count = 0 then do; 139 pvolog.in_use = pvolog.in_use - 1; 140 pvle.pvname = ""; 141 end; 142 end; 143 end; 144 if pvolog.in_use <= 0 then do; 145 call hcs_$delentry_seg (pvlp, code); 146 if code ^= 0 then 147 call com_err_ (code, myname, "Unable to delete output volume log ^a.pvolog.", volname); 148 else pvlp = null; 149 do suffix = "contents", "contents_names"; 150 call get_contents (volname, suffix); 151 if contentsp ^= null then do; 152 call hcs_$delentry_seg (contentsp, code); 153 if code ^= 0 & code ^= error_table_$noentry then 154 call com_err_ (code, myname, "Unable to delete ^a.^a", volname, suffix); 155 end; 156 else call com_err_ (code, myname, "Unable to locate ^a.^a", volname, suffix); 157 end; 158 if ^manual_free then do; 159 call manage_volume_pool_$free (vpp, error_rnt, volname, code); 160 if code ^= 0 then 161 call com_err_ (code, myname, "Unable to free volume ^a", volname); 162 else call ioa_ ("Output volume ^a now available for use.", volname); 163 end; 164 end; 165 if pvlp ^= null then call unlock_pvolog; 166 end; 167 else call com_err_ (code, myname, "^a>^a.pvolog.", pvolog_dir, volname); 168 end; 169 call hcs_$delentry_seg (bvlp, code); 170 if code ^= 0 then call com_err_ (code, myname, "Unable to delete ^a.volog", volname); 171 else bvlp = null; 172 finish: 173 call finish_; 174 return; 175 176 177 178 lock_volume_log: proc ; 179 180 /* This proc locks the volume log */ 181 182 call set_lock_$lock (backup_volume_log.lock, lock_wait_time, code); 183 if code = error_table_$invalid_lock_reset then code = 0; 184 if code ^= 0 then do; 185 call com_err_ (code, myname, "Unable to lock volume log"); 186 goto finish; 187 end; 188 return; 189 end lock_volume_log; 190 191 finish_: proc; 192 /* unlock, terminate, and release as required */ 193 if bvlp ^= null then call set_lock_$unlock (backup_volume_log.lock, ignore); 194 if pvlp ^= null then call set_lock_$unlock (pvolog.lock, ignore); 195 if bvlp ^= null then call hcs_$terminate_noname (bvlp, ignore); 196 if pvlp ^= null then call hcs_$terminate_noname (pvlp, ignore); 197 return; 198 199 end finish_; 200 201 get_volog: proc (volname); 202 dcl volname char (*); 203 bvlp = null; 204 call suffixed_name_$make (volname, "volog", volog_name, code); 205 if code ^= 0 then do; 206 call com_err_ (code, myname, "Unable to construct volog name"); 207 goto finish; 208 end; 209 call hcs_$initiate (volog_dir, volog_name, "", 0, 0, bvlp, code); 210 end get_volog; 211 get_pvolog: proc (volname); 212 dcl volname char (*); 213 pvlp = null; 214 call suffixed_name_$make (volname, "pvolog", pvolog_name, code); 215 if code ^= 0 then do; 216 call com_err_ (code, myname, "Unable to construct pvolog name"); 217 goto finish; 218 end; 219 call hcs_$initiate (pvolog_dir, pvolog_name, "", 0, 0, pvlp, code); 220 end get_pvolog; 221 get_contents: proc (volname, suffix); 222 dcl (volname, suffix) char (*); 223 contentsp = null; 224 call suffixed_name_$make (volname, suffix, contents_name, code); 225 if code ^= 0 then do; 226 call com_err_ (code, myname, "Unable to construct contents name"); 227 goto finish; 228 end; 229 call hcs_$initiate (contents_dir, contents_name, "", 0, 0, contentsp, code); 230 end get_contents; 231 232 lock_pvolog: proc ; 233 234 /* This proc locks an output volume log */ 235 236 call set_lock_$lock (pvolog.lock, lock_wait_time, code); 237 if code = error_table_$invalid_lock_reset then code = 0; 238 if code ^= 0 then do; 239 call com_err_ (code, myname, "Unable to lock output log"); 240 goto finish; 241 end; 242 return; 243 end lock_pvolog; 244 unlock_pvolog: proc ; 245 246 /* This proc unlocks an output volume log */ 247 248 call set_lock_$unlock (pvolog.lock, ignore); 249 return; 250 end unlock_pvolog; 251 end delete_volume_log; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/10/89 1359.5 delete_volume_log.pl1 >special_ldd>install>MR12.3-1089>delete_volume_log.pl1 67 1 10/10/89 1357.9 backup_volume_log.incl.pl1 >special_ldd>install>MR12.3-1089>backup_volume_log.incl.pl1 68 2 06/07/77 1233.6 backup_pvol_info.incl.pl1 >ldd>include>backup_pvol_info.incl.pl1 69 3 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1 70 4 09/05/80 1136.5 backup_volume_header.incl.pl1 >ldd>include>backup_volume_header.incl.pl1 71 5 09/05/80 1136.5 backup_static_variables.incl.pl1 >ldd>include>backup_static_variables.incl.pl1 72 6 03/26/81 1320.5 pvolog.incl.pl1 >ldd>include>pvolog.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. ac 000433 automatic fixed bin(17,0) dcl 36 set ref 88* 90 91* 102* 102 addr builtin function dcl 65 ref 135 arg based char packed unaligned dcl 31 set ref 84 86 93* 96 97 97 99* argl 000424 automatic fixed bin(17,0) dcl 32 set ref 79* 84 86 91* 93 93 96 97 97 99 99 argp 000426 automatic pointer dcl 33 set ref 79* 84 86 91* 93 96 97 97 99 array 11 based structure array level 2 in structure "pvolog" dcl 6-8 in procedure "dvl" set ref 135 array 2100 based structure array level 2 in structure "backup_volume_log" dcl 1-20 in procedure "dvl" backup_pvol_info based structure level 1 dcl 2-5 backup_volume_header based structure level 1 dcl 4-5 backup_volume_log based structure level 1 dcl 1-20 bvle based structure level 1 dcl 1-39 bvlp 000452 automatic pointer dcl 1-13 set ref 77* 124 129 130 136 169* 171* 182 193 193 195 195* 203* 209* cleanup 000440 stack reference condition dcl 44 ref 122 code 000434 automatic fixed bin(35,0) dcl 37 set ref 79* 80 91* 92 93* 105* 110* 111 112* 125* 145* 146 146* 152* 153 153 153* 156* 159* 160 160* 167* 169* 170 170* 182* 183 183* 184 185* 204* 205 206* 209* 214* 215 216* 219* 224* 225 226* 229* 236* 237 237* 238 239* com_err_ 000034 constant entry external dcl 57 ref 76 81 93 99 112 125 146 153 156 160 167 170 185 206 216 226 239 contents_dir 000265 automatic char(168) packed unaligned dcl 25 set ref 116* 120* 229* contents_name 000162 automatic char(32) packed unaligned dcl 20 set ref 224* 229* contentsp 000430 automatic pointer dcl 34 set ref 151 152* 223* 229* cu_$arg_count 000046 constant entry external dcl 63 ref 89 cu_$arg_ptr 000032 constant entry external dcl 56 ref 79 91 error_rnt 000446 automatic entry variable dcl 58 set ref 76* 110* 159* error_table_$badopt 000010 external static fixed bin(35,0) dcl 46 set ref 99* error_table_$invalid_lock_reset 000012 external static fixed bin(35,0) dcl 47 ref 183 237 error_table_$noentry 000014 external static fixed bin(35,0) dcl 48 ref 153 get_wdir_ 000016 constant entry external dcl 50 ref 108 116 hcs_$delentry_seg 000030 constant entry external dcl 55 ref 145 152 169 hcs_$initiate 000040 constant entry external dcl 60 ref 209 219 229 hcs_$terminate_noname 000022 constant entry external dcl 52 ref 195 196 ignore 000435 automatic fixed bin(35,0) dcl 38 set ref 193* 194* 195* 196* 248* in_use 10 based fixed bin(17,0) level 2 dcl 6-8 set ref 139* 139 144 invocation_count 10 based fixed bin(17,0) level 2 dcl 6-18 set ref 137* 137 138 ioa_ 000020 constant entry external dcl 51 ref 162 j 000423 automatic fixed bin(17,0) dcl 30 set ref 134* 135* label based structure level 1 dcl 3-18 lock 2016 based bit(36) level 2 in structure "backup_volume_log" dcl 1-20 in procedure "dvl" set ref 182* 193* lock based bit(36) level 2 in structure "pvolog" dcl 6-8 in procedure "dvl" set ref 194* 236* 248* lock_wait_time 000000 constant fixed bin(17,0) initial dcl 42 set ref 182* 236* manage_volume_pool_$free 000024 constant entry external dcl 53 ref 159 manage_volume_pool_$set_pool_path 000026 constant entry external dcl 54 ref 110 manual_free 000432 automatic bit(1) packed unaligned dcl 35 set ref 75* 96* 107 158 myname 000001 constant char(32) initial packed unaligned dcl 41 set ref 81* 81* 93* 99* 112* 125* 146* 153* 156* 160* 167* 170* 185* 206* 216* 226* 239* narg 000422 automatic fixed bin(17,0) dcl 29 set ref 89* 90 new_pool_path 000110 automatic char(168) packed unaligned dcl 19 set ref 108* 109* 110* next 2030 based fixed bin(17,0) level 2 in structure "backup_volume_log" dcl 1-20 in procedure "dvl" ref 129 next 7 based fixed bin(17,0) level 2 in structure "pvolog" dcl 6-8 in procedure "dvl" ref 134 null builtin function dcl 65 ref 77 124 132 148 151 165 171 193 194 195 196 203 213 223 pvle based structure level 1 dcl 6-18 pvlep 000456 automatic pointer dcl 6-4 set ref 135* 136 137 137 138 140 pvlp 000454 automatic pointer dcl 6-3 set ref 77* 132 134 135 139 139 144 145* 148* 165 194 194 196 196* 213* 219* 236 248 pvname 2017 based char(32) level 2 in structure "backup_volume_log" dcl 1-20 in procedure "dvl" ref 136 pvname based char(32) level 2 in structure "pvle" dcl 6-18 in procedure "dvl" set ref 136 140* pvolog based structure level 1 dcl 6-8 pvolog_dir 000213 automatic char(168) packed unaligned dcl 24 set ref 116* 119* 167* 219* pvolog_name 000203 automatic char(32) packed unaligned dcl 23 set ref 214* 219* rtrim builtin function dcl 65 ref 108 set_lock_$lock 000042 constant entry external dcl 61 ref 182 236 set_lock_$unlock 000044 constant entry external dcl 62 ref 193 194 248 substr builtin function dcl 65 ref 84 suffix parameter char packed unaligned dcl 222 in procedure "get_contents" set ref 221 224* suffix 000100 automatic char(32) packed unaligned dcl 18 in procedure "dvl" set ref 149* 150* 153* 156* suffixed_name_$make 000036 constant entry external dcl 59 ref 204 214 224 vlx 000172 automatic fixed bin(17,0) dcl 21 set ref 129* 130* volname 2102 based char(32) array level 3 in structure "backup_volume_log" dcl 1-20 in procedure "dvl" ref 130 volname parameter char packed unaligned dcl 212 in procedure "get_pvolog" set ref 211 214* volname parameter char packed unaligned dcl 202 in procedure "get_volog" set ref 201 204* volname parameter char packed unaligned dcl 222 in procedure "get_contents" set ref 221 224* volname 000412 automatic char(32) packed unaligned dcl 28 in procedure "dvl" set ref 86* 123* 125* 130* 131* 146* 150* 153* 156* 159* 160* 162* 167* 170* volog_dir 000340 automatic char(168) packed unaligned dcl 27 set ref 116* 118* 125* 209* volog_name 000173 automatic char(32) packed unaligned dcl 22 set ref 204* 209* vpp 000436 automatic pointer dcl 39 set ref 110* 159* wd_mode 000337 automatic bit(1) packed unaligned dcl 26 set ref 75* 97* 108 116 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Multics_ID_String internal static char(32) initial packed unaligned dcl 3-92 backup_version_1 internal static fixed bin(17,0) initial dcl 5-7 backup_volume_log_version_1 internal static fixed bin(17,0) initial dcl 1-16 backup_volume_log_version_2 internal static fixed bin(17,0) initial dcl 1-17 backup_volume_log_version_3 internal static fixed bin(17,0) initial dcl 1-18 bpvip automatic pointer dcl 2-3 bvlep automatic pointer dcl 1-14 comp internal static fixed bin(17,0) initial dcl 5-6 cons internal static fixed bin(17,0) initial dcl 5-5 contents_type internal static fixed bin(17,0) initial dcl 4-21 dir_type internal static fixed bin(17,0) initial dcl 4-16 hdp automatic pointer dcl 4-3 incr internal static fixed bin(17,0) initial dcl 5-4 info_type internal static fixed bin(17,0) initial dcl 4-22 labelp automatic pointer dcl 3-16 null_type internal static fixed bin(17,0) initial dcl 4-18 pattern1 internal static bit(36) initial packed unaligned dcl 4-24 pattern2 internal static bit(36) initial packed unaligned dcl 4-25 pattern3 internal static bit(36) initial packed unaligned dcl 4-26 prev_output_log_type internal static fixed bin(17,0) initial dcl 4-20 pvolog_version_1 internal static fixed bin(17,0) initial dcl 6-6 seg_type internal static fixed bin(17,0) initial dcl 4-17 volume_log_type internal static fixed bin(17,0) initial dcl 4-19 vtoce_type internal static fixed bin(17,0) initial dcl 4-15 NAMES DECLARED BY EXPLICIT CONTEXT. argerr 000402 constant label dcl 81 ref 84 delete_volume_log 000344 constant entry external dcl 11 dvl 000335 constant entry external dcl 11 finish 001570 constant label dcl 172 ref 94 100 113 126 186 207 217 227 240 finish_ 001647 constant entry internal dcl 191 ref 122 172 get_contents 002241 constant entry internal dcl 221 ref 150 get_pvolog 002103 constant entry internal dcl 211 ref 131 get_volog 001745 constant entry internal dcl 201 ref 123 lock_pvolog 002402 constant entry internal dcl 232 ref 133 lock_volume_log 001575 constant entry internal dcl 178 ref 128 unlock_pvolog 002452 constant entry internal dcl 244 ref 165 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2740 3010 2512 2750 Length 3364 2512 50 337 226 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dvl 686 external procedure is an external procedure. on unit on line 122 64 on unit lock_volume_log internal procedure shares stack frame of external procedure dvl. finish_ 70 internal procedure is called by several nonquick procedures. get_volog internal procedure shares stack frame of external procedure dvl. get_pvolog internal procedure shares stack frame of external procedure dvl. get_contents internal procedure shares stack frame of external procedure dvl. lock_pvolog internal procedure shares stack frame of external procedure dvl. unlock_pvolog internal procedure shares stack frame of external procedure dvl. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dvl 000100 suffix dvl 000110 new_pool_path dvl 000162 contents_name dvl 000172 vlx dvl 000173 volog_name dvl 000203 pvolog_name dvl 000213 pvolog_dir dvl 000265 contents_dir dvl 000337 wd_mode dvl 000340 volog_dir dvl 000412 volname dvl 000422 narg dvl 000423 j dvl 000424 argl dvl 000426 argp dvl 000430 contentsp dvl 000432 manual_free dvl 000433 ac dvl 000434 code dvl 000435 ignore dvl 000436 vpp dvl 000446 error_rnt dvl 000452 bvlp dvl 000454 pvlp dvl 000456 pvlep dvl THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr get_wdir_ hcs_$delentry_seg hcs_$initiate hcs_$terminate_noname ioa_ manage_volume_pool_$free manage_volume_pool_$set_pool_path set_lock_$lock set_lock_$unlock suffixed_name_$make THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$invalid_lock_reset error_table_$noentry LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000334 75 000351 76 000353 77 000357 79 000362 80 000400 81 000402 82 000432 84 000433 86 000440 88 000444 89 000446 90 000455 91 000461 92 000476 93 000500 94 000533 96 000534 97 000545 99 000560 100 000612 102 000613 103 000614 105 000615 107 000616 108 000620 109 000671 110 000675 111 000722 112 000724 113 000750 116 000751 118 000774 119 000777 120 001002 122 001005 123 001027 124 001032 125 001036 126 001072 128 001073 129 001074 130 001105 131 001113 132 001116 133 001122 134 001123 135 001133 136 001136 137 001143 138 001145 139 001147 140 001152 143 001155 144 001157 145 001162 146 001173 148 001225 149 001227 150 001234 151 001237 152 001243 153 001254 155 001312 156 001313 157 001345 158 001354 159 001356 160 001403 162 001435 165 001455 166 001462 167 001463 168 001521 169 001523 170 001534 171 001566 172 001570 174 001574 178 001575 182 001576 183 001612 184 001617 185 001621 186 001644 188 001645 191 001646 193 001654 194 001672 195 001710 196 001726 197 001744 201 001745 203 001756 204 001760 205 002011 206 002013 207 002037 209 002040 210 002102 211 002103 213 002114 214 002116 215 002147 216 002151 217 002175 219 002176 220 002240 221 002241 223 002257 224 002261 225 002310 226 002312 227 002336 229 002337 230 002401 232 002402 236 002403 237 002416 238 002423 239 002425 240 002450 242 002451 244 002452 248 002453 249 002464 ----------------------------------------------------------- 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