COMPILATION LISTING OF SEGMENT rebuild_pvolog 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 1418.7 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 rebuild_pvolog: proc; 12 13 /* This command and subroutine rebuild a output volume log */ 14 15 dcl volname char (32); 16 dcl unlock_volog bit (1) init ("0"b); 17 dcl mount_time fixed bin (71); 18 dcl myname char (32); 19 dcl new_pvlp ptr; 20 dcl pvolog_name char (32); 21 dcl sub bit (1) init ("0"b); 22 dcl volog_known bit (1) init ("0"b); 23 dcl volname_count fixed bin; 24 25 dcl long bit (1) init ("0"b); 26 dcl narg fixed bin; 27 dcl volog_dir char (168); 28 dcl sys_dir char (168); 29 dcl pvolog_dir char (168); 30 dcl arg char (argl) based (argp); 31 dcl argl fixed bin; 32 dcl argp ptr; 33 dcl (bvx, ac, stx) fixed bin; 34 dcl code fixed bin (35); 35 dcl ignore fixed bin (35); 36 dcl volume_pool_state fixed bin; 37 38 39 dcl lock_wait_time fixed bin static init (60) options (constant); 40 41 dcl cleanup condition; 42 43 dcl hcs_$delentry_seg entry (ptr, fixed bin (35)); 44 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin); 45 dcl adjust_bit_count_ entry (char (*), char (*), bit (1), fixed bin, fixed bin (35)); 46 dcl suffixed_name_$make entry (char (*), char (*), char (*), fixed bin (35)); 47 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 48 dcl hcs_$fs_move_seg entry (ptr, ptr, fixed bin, fixed bin (35)); 49 dcl get_temp_segment_ entry (char (*), ptr, fixed bin (35)); 50 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 51 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, fixed bin (35)); 52 dcl get_system_free_area_ entry returns (ptr); 53 dcl get_wdir_ entry returns (char (168)); 54 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 55 dcl (error_rnt, a_error_rnt) entry variable options (variable); 56 dcl com_err_ entry options (variable); 57 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin, fixed bin, ptr, fixed bin (35)); 58 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 59 dcl ioa_ entry options (variable); 60 dcl set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)); 61 dcl set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 62 dcl cu_$arg_count entry (fixed bin); 63 64 dcl error_table_$badopt ext fixed bin (35); 65 dcl error_table_$bad_volid ext fixed bin (35); 66 dcl error_table_$locked_by_this_process ext fixed bin (35); 67 dcl error_table_$segknown ext fixed bin (35); 68 dcl error_table_$invalid_lock_reset ext fixed bin (35); 69 70 dcl (substr, before, clock, addr, null, sum, min) builtin; 71 dcl (length, search) builtin; 72 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 */ 73 2 1 /* BEGIN INCLUDE FILE ... pvolog.incl.pl1 9/76 */ 2 2 2 3 dcl pvlp ptr; 2 4 dcl pvlep ptr; 2 5 2 6 dcl pvolog_version_1 fixed bin int static init (1) options (constant); 2 7 2 8 dcl 1 pvolog aligned based (pvlp), 2 9 2 lock bit (36), 2 10 2 version fixed bin, 2 11 2 dump_type fixed bin, 2 12 2 mount_time fixed bin (71), 2 13 2 volid bit (36), 2 14 2 next fixed bin, 2 15 2 in_use fixed bin, 2 16 2 array (1:1 refer (pvolog.next)) like pvle aligned; 2 17 2 18 dcl 1 pvle based (pvlep) aligned, 2 19 2 pvname char (32), 2 20 2 invocation_count fixed bin; 2 21 2 22 /* END INCLUDE FILE ... pvolog.incl.pl1 */ 74 3 1 /* BEGIN INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 3 2 3 3 dcl bpvip ptr; 3 4 3 5 dcl 1 backup_pvol_info based (bpvip) aligned, 3 6 2 label like label aligned, 3 7 2 n_vtoce fixed bin, 3 8 2 n_free_vtoce fixed bin, 3 9 2 n_rec fixed bin, 3 10 2 baseadd fixed bin, 3 11 2 n_free_rec fixed bin; 3 12 3 13 /* END INCLUDE FILE ... backup_pvol_info.incl.pl1 */ 75 4 1 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 4 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 4 6* Add the subvolume info. 4 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 4 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 4 9* Added inconsistent_dbm bit used to determine consistency of volume 4 10* dumper bit maps. 4 11* END HISTORY COMMENTS */ 4 12 4 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 4 14 /* Note: fsout_vol clears pad fields before writing the label */ 4 15 4 16 dcl labelp ptr; 4 17 4 18 dcl 1 label based (labelp) aligned, 4 19 4 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 4 21 4 22 2 gcos (5*64) fixed bin, 4 23 4 24 /* Now we have the Multics label */ 4 25 4 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 4 27 2 version fixed bin, /* Version 1 */ 4 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 4 29 2 pv_name char (32), /* Physical volume name. */ 4 30 2 lv_name char (32), /* Name of logical volume for pack */ 4 31 2 pvid bit (36), /* Unique ID of this pack */ 4 32 2 lvid bit (36), /* unique ID of its logical vol */ 4 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 4 34 2 time_registered fixed bin (71), /* time imported to system */ 4 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 4 36 2 vol_size fixed bin, /* total size of volume, in records */ 4 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 4 38 2 not_used bit (1) unal, /* used to be multiple_class */ 4 39 2 private bit (1) unal, /* TRUE if was registered as private */ 4 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 4 41 2 flagpad bit (33) unal, 4 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 4 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 4 44 2 password bit (72), /* not yet used */ 4 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 4 46 2 this_sv fixed bin, /* what subvolume number it is */ 4 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 4 48 2 pad1 (13) fixed bin, 4 49 2 time_mounted fixed bin (71), /* time mounted */ 4 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 4 51 4 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 4 53* forces a salvage if an MR10 pack is mounted on an earlier system. 4 54* */ 4 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 4 56 2 pad6 fixed bin, 4 57 4 58 2 time_salvaged fixed bin (71), /* time salvaged */ 4 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 4 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 4 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 4 62 2 pad1a (2) fixed bin, 4 63 2 err_hist_size fixed bin, /* size of pack error history */ 4 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 4 65 2 time_last_reloaded fixed bin (71), /* what it says */ 4 66 2 pad2 (40) fixed bin, 4 67 2 root, 4 68 3 here bit (1), /* TRUE if the root is on this pack */ 4 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 4 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 4 71 3 pad7 bit (1) aligned, 4 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 4 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 4 74 3 esd_state fixed bin, /* State of esd */ 4 75 2 volmap_record fixed bin, /* Begin record of volume map */ 4 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 4 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 4 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 4 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 4 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 4 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 4 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 4 83 2 pad3 (52) fixed bin, 4 84 2 nparts fixed bin, /* Number of special partitions on pack */ 4 85 2 parts (47), 4 86 3 part char (4), /* Name of partition */ 4 87 3 frec fixed bin, /* First record */ 4 88 3 nrec fixed bin, /* Number of records */ 4 89 3 pad5 fixed bin, 4 90 2 pad4 (5*64) fixed bin; 4 91 4 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 4 93 4 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 76 5 1 /* BEGIN INCLUDE FILE ... backup_volume_header ... Feb 1976 */ 5 2 5 3 dcl hdp ptr; /* ptr to header */ 5 4 5 5 dcl 1 backup_volume_header based (hdp) aligned, 5 6 2 pattern1 bit (36), /* unique word 1 */ 5 7 2 rec1_type fixed bin, /* record 1 type */ 5 8 2 rec1_len fixed bin, /* length in chars */ 5 9 2 pattern2 bit (36), /* unique word 2 */ 5 10 2 rec2_type fixed bin, /* record 2 type */ 5 11 2 rec2_len fixed bin, /* length in chars */ 5 12 2 pattern3 bit (36), /* unique word 3 */ 5 13 2 time_dumped bit (36); /* dump time of this record */ 5 14 5 15 dcl vtoce_type fixed bin static init (1) options (constant); /* type code for vtoce */ 5 16 dcl dir_type fixed bin static init (2) options (constant); /* type code for directory */ 5 17 dcl seg_type fixed bin static init (3) options (constant); /* type code for segment */ 5 18 dcl null_type fixed bin static init (4) options (constant); /* type code for null record */ 5 19 dcl volume_log_type fixed bin static init (5) options (constant); /* type code for volume log */ 5 20 dcl prev_output_log_type fixed bin static init (6) options (constant); /* type code for prev output log */ 5 21 dcl contents_type fixed bin static init (7) options (constant); /* type code for contents segment of previous volume */ 5 22 dcl info_type fixed bin static init (8) options (constant); /* type code for info structure */ 5 23 5 24 dcl pattern1 bit (36) int static init ("110111000011001100011101101010100101"b) options (constant); 5 25 dcl pattern2 bit (36) int static init ("101001010101101110001100110000111011"b) options (constant); 5 26 dcl pattern3 bit (36) int static init ("001000111100110011100010010101011010"b) options (constant); 5 27 5 28 /* END INCLUDE FILE ... backup_volume_header */ 77 6 1 /* BEGIN INCLUDE FILE ... backup_static_variables.incl.pl1 ... March 1976 */ 6 2 6 3 6 4 dcl incr fixed bin init (1) internal static options (constant); /* incremental dump mode */ 6 5 dcl cons fixed bin init (2) internal static options (constant); /* consolidated dump mode */ 6 6 dcl comp fixed bin init (3) internal static options (constant); /* complete dump mode */ 6 7 dcl backup_version_1 fixed bin init (1) static internal options (constant); /* backup_version_1 of input/output structures */ 6 8 6 9 6 10 6 11 /* END INCLUDE FILE ... backup_static_variables.incl.pl1 */ 78 7 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 7 2 7 3 /* This include file contains structures for the hcs_$star_, 7 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 7 5* 7 6* Written 23 October 1978 by Monte Davidoff. 7 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 7 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 7 9**/ 7 10 7 11 /* automatic */ 7 12 7 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 7 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 7 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 7 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 7 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 7 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 7 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 7 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 7 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 7 22 7 23 /* based */ 7 24 7 25 /* hcs_$star_ entry structure */ 7 26 7 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 7 28 2 type fixed binary (2) unsigned unaligned, 7 29 /* storage system type */ 7 30 2 nnames fixed binary (16) unsigned unaligned, 7 31 /* number of names of entry that match star_name */ 7 32 2 nindex fixed binary (18) unsigned unaligned; 7 33 /* index of first name in star_names */ 7 34 7 35 /* hcs_$star_ name structure */ 7 36 7 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 7 38 7 39 /* hcs_$star_list_ branch structure */ 7 40 7 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 7 42 2 type fixed binary (2) unsigned unaligned, 7 43 /* storage system type */ 7 44 2 nnames fixed binary (16) unsigned unaligned, 7 45 /* number of names of entry that match star_name */ 7 46 2 nindex fixed binary (18) unsigned unaligned, 7 47 /* index of first name in star_list_names */ 7 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 7 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 7 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 7 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 7 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 7 53 2 pad bit (7) unaligned, 7 54 2 records fixed binary (18) unsigned unaligned; 7 55 /* records used by branch */ 7 56 7 57 /* hcs_$star_dir_list_ branch structure */ 7 58 7 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 7 60 2 type fixed binary (2) unsigned unaligned, 7 61 /* storage system type */ 7 62 2 nnames fixed binary (16) unsigned unaligned, 7 63 /* number of names of entry that match star_name */ 7 64 2 nindex fixed binary (18) unsigned unaligned, 7 65 /* index of first name in star_list_names */ 7 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 7 67 2 pad bit (36) unaligned, 7 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 7 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 7 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 7 71 2 bit_count fixed binary (24) unaligned; 7 72 /* bit count of the branch */ 7 73 7 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 7 75 7 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 7 77 2 type fixed binary (2) unsigned unaligned, 7 78 /* storage system type */ 7 79 2 nnames fixed binary (16) unsigned unaligned, 7 80 /* number of names of entry that match star_name */ 7 81 2 nindex fixed binary (18) unsigned unaligned, 7 82 /* index of first name in star_list_names */ 7 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 7 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 7 85 2 pathname_len fixed binary (18) unsigned unaligned, 7 86 /* length of the pathname of the link */ 7 87 2 pathname_index fixed binary (18) unsigned unaligned; 7 88 /* index of start of pathname in star_list_names */ 7 89 7 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 7 91 7 92 declare star_list_names char (32) based (star_list_names_ptr) 7 93 dimension (star_links (star_branch_count + star_link_count).nindex 7 94 + star_links (star_branch_count + star_link_count).nnames 7 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 7 96 * binary ( 7 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 7 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 7 99 7 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 7 101 7 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 7 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 7 104 7 105 /* internal static */ 7 106 7 107 /* star_select_sw values */ 7 108 7 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 7 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 7 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 7 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 7 113 fixed binary (3) internal static options (constant) initial (5); 7 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 7 115 fixed binary (3) internal static options (constant) initial (7); 7 116 7 117 /* storage system types */ 7 118 7 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 7 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 7 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 7 122 7 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 79 80 81 bvlp, pvlp = null; 82 star_names_ptr = null; 83 volume_pool_state = 0; 84 code = 0; 85 myname = "rebuild_pvolog"; 86 error_rnt = com_err_; 87 sys_dir = ">daemon_dir_dir>volume_backup"; 88 call cu_$arg_ptr (1, argp, argl, code); 89 if code ^= 0 then do; 90 argerr: call error_rnt (0, myname, " USAGE: ^a volume [-wd|-working_dir] ", myname); 91 return; 92 end; 93 if substr (arg, 1, 1) = "-" then goto argerr; 94 volname = arg; 95 call cu_$arg_count (narg); 96 ac = 2; 97 do while (ac <= narg); 98 call cu_$arg_ptr (ac, argp, argl, code); 99 if code ^= 0 then do; 100 call error_rnt (code, myname, "Unable to access arg after ^a", arg); 101 goto finish; 102 end; 103 if arg = "-working_dir" | arg = "-wd" then sys_dir = get_wdir_ (); 104 else if arg = "-long" | arg = "-lg" then long = "1"b; 105 else if arg = "-brief" | arg = "-bf" then long = "0"b; 106 else do; 107 call error_rnt (error_table_$badopt, myname, "^a", arg); 108 goto finish; 109 end; 110 ac = ac + 1; 111 end; 112 common: 113 volog_dir = sys_dir; 114 pvolog_dir = rtrim (sys_dir) || ">pvolog"; 115 on cleanup call finish_; 116 call check_volname (volname); 117 if long then call ioa_ ("Processing ^a", volname); 118 call hcs_$star_ (volog_dir, "*.volog", star_ALL_ENTRIES, get_system_free_area_ (), star_entry_count, 119 star_entry_ptr, star_names_ptr, code); 120 if code ^= 0 then do; 121 call error_rnt (code, myname, "Unable to list volog dir ^a", volog_dir); 122 goto finish; 123 end; 124 call get_temp_segment_ (myname, pvlp, code); 125 if code ^= 0 then do; 126 call error_rnt (code, myname, "Unable to get temp seg"); 127 goto finish; 128 end; 129 pvolog.version = pvolog_version_1; 130 pvolog.mount_time = clock; 131 call scan_vologs; 132 call suffixed_name_$make (volname, "pvolog", pvolog_name, code); 133 if code ^= 0 then do; 134 call error_rnt (code, myname, "Unable to construct pvolog name from ^a", volname); 135 goto finish; 136 end; 137 call hcs_$make_seg (pvolog_dir, pvolog_name, "", 01010b, new_pvlp, code); 138 if new_pvlp = null then do; 139 call error_rnt (code, myname, "Unable to create new pvolog seg ^a>^a", pvolog_dir, pvolog_name); 140 goto finish; 141 end; 142 call hcs_$fs_move_seg (pvlp, new_pvlp, 1, code); 143 if code ^= 0 then do; 144 call error_rnt (code, myname, "Unable to copy new volog from temp seg"); 145 goto finish; 146 end; 147 if new_pvlp -> pvolog.in_use = 0 then do; 148 call error_rnt (0, myname, "Null output volume ^a>^a will be deleted", pvolog_dir, pvolog_name); 149 call hcs_$delentry_seg (new_pvlp, code); 150 if code ^= 0 then do; 151 call error_rnt (code, myname, "Unable to delete ^a.pvolog", volname); 152 goto finish; 153 end; 154 new_pvlp = null; 155 end; 156 else do; 157 call adjust_bit_count_ (pvolog_dir, pvolog_name, "1"b, (0), ignore); 158 end; 159 160 161 finish: /* cleanup - unlock and terminate */ 162 call finish_; 163 return; 164 165 rebuild_pvolog_: entry (a_sys_dir, a_volname, a_error_rnt, a_pvlp, a_code); 166 dcl a_sys_dir char (*); 167 dcl a_volname char (*); 168 dcl a_code fixed bin (35); 169 dcl a_pvlp ptr; 170 volname = a_volname; 171 new_pvlp, a_pvlp = null; 172 code, a_code = 0; 173 sub = "1"b; 174 error_rnt = a_error_rnt; 175 star_names_ptr = null; 176 bvlp, pvlp = null; 177 myname = "rebuild_pvolog_"; 178 sys_dir = a_sys_dir; 179 goto common; 180 181 finish_: proc; 182 if pvlp ^= null then call release_temp_segment_ (myname, pvlp, ignore); 183 if bvlp ^= null & unlock_volog then call set_lock_$unlock (backup_volume_log.lock, ignore); 184 if bvlp ^= null & ^volog_known then call hcs_$terminate_noname (bvlp, ignore); 185 if star_names_ptr ^= null then free star_names; 186 if sub then do; 187 a_code = code; 188 a_pvlp = new_pvlp; 189 end; 190 end finish_; 191 192 find_volog_and_lock: proc (volog); 193 dcl volog char (*); 194 call hcs_$initiate (volog_dir, volog, "", 0, 0, bvlp, code); 195 volog_known = (code = error_table_$segknown); 196 if bvlp = null then return; 197 call set_lock_$lock (backup_volume_log.lock, lock_wait_time, code); 198 unlock_volog = ^(code = error_table_$locked_by_this_process); 199 if ^unlock_volog then code = 0; 200 if code ^= 0 then do; 201 if code = error_table_$invalid_lock_reset then code = 0; 202 else do; 203 call error_rnt (code, myname, "Unable to lock volog ^a", volog); 204 goto finish; 205 end; 206 end; 207 end find_volog_and_lock; 208 209 count_volname: proc; 210 volname_count = 0; 211 mount_time = clock; 212 do bvx = 1 to backup_volume_log.next; 213 bvlep = addr (backup_volume_log.array (bvx)); 214 if volname = bvle.volname then do; 215 volname_count = volname_count + 1; 216 pvolog.dump_type = bvle.dump_type; 217 mount_time = min (mount_time, bvle.open_time); 218 end; 219 end; 220 221 end count_volname; 222 scan_vologs: proc; 223 dcl volog_name char (32); 224 do stx = 1 to star_entry_count; 225 volog_name = star_names (star_entries (stx).nindex); 226 call find_volog_and_lock (volog_name); 227 if bvlp = null then do; 228 call error_rnt (code, myname, "can not locate volog ^a", volog_name); 229 goto next_volog; 230 end; 231 call count_volname; 232 if volname_count ^= 0 then do; 233 pvolog.next = pvolog.next + 1; 234 pvolog.in_use = pvolog.in_use + 1; 235 pvlep = addr (pvolog.array (pvolog.next)); 236 pvle.invocation_count = volname_count; 237 pvle.pvname = before (volog_name, "."); 238 pvolog.mount_time = min (pvolog.mount_time, mount_time); 239 end; 240 if unlock_volog then call set_lock_$unlock (backup_volume_log.lock, ignore); 241 if ^volog_known then do; 242 call hcs_$terminate_noname (bvlp, ignore); 243 bvlp = null; 244 end; 245 next_volog: 246 end; 247 248 end scan_vologs; 249 check_volname: proc (volname); 250 dcl volname char (*); 251 dcl num fixed bin; 252 dcl char_num char (32); 253 dcl start_numeric fixed bin; 254 start_numeric = search (volname, "0123456789"); 255 if start_numeric > 3 | start_numeric = 0 then do; 256 bad_volid: code = error_table_$bad_volid; 257 call error_rnt (code, myname, "Invalid volume name ^a", volname); 258 goto finish; 259 end; 260 else do; 261 char_num = substr (volname, start_numeric, length (volname) - start_numeric); 262 num = cv_dec_check_ (char_num, code); 263 if code ^= 0 then goto bad_volid; 264 end; 265 return; 266 end check_volname; 267 end rebuild_pvolog; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/10/89 1359.0 rebuild_pvolog.pl1 >special_ldd>install>MR12.3-1089>rebuild_pvolog.pl1 73 1 10/10/89 1357.9 backup_volume_log.incl.pl1 >special_ldd>install>MR12.3-1089>backup_volume_log.incl.pl1 74 2 03/26/81 1320.5 pvolog.incl.pl1 >ldd>include>pvolog.incl.pl1 75 3 06/07/77 1233.6 backup_pvol_info.incl.pl1 >ldd>include>backup_pvol_info.incl.pl1 76 4 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.incl.pl1 77 5 09/05/80 1136.5 backup_volume_header.incl.pl1 >ldd>include>backup_volume_header.incl.pl1 78 6 09/05/80 1136.5 backup_static_variables.incl.pl1 >ldd>include>backup_static_variables.incl.pl1 79 7 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.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. a_code parameter fixed bin(35,0) dcl 168 set ref 165 172* 187* a_error_rnt parameter entry variable dcl 55 ref 165 174 a_pvlp parameter pointer dcl 169 set ref 165 171* 188* a_sys_dir parameter char packed unaligned dcl 166 ref 165 178 a_volname parameter char packed unaligned dcl 167 ref 165 170 ac 000345 automatic fixed bin(17,0) dcl 33 set ref 96* 97 98* 110* 110 addr builtin function dcl 70 ref 213 235 adjust_bit_count_ 000014 constant entry external dcl 45 ref 157 arg based char packed unaligned dcl 30 set ref 93 94 100* 103 103 104 104 105 105 107* argl 000341 automatic fixed bin(17,0) dcl 31 set ref 88* 93 94 98* 100 100 103 103 104 104 105 105 107 107 argp 000342 automatic pointer dcl 32 set ref 88* 93 94 98* 100 103 103 104 104 105 105 107 array 11 based structure array level 2 in structure "pvolog" dcl 2-8 in procedure "rebuild_pvolog" set ref 235 array 2100 based structure array level 2 in structure "backup_volume_log" dcl 1-20 in procedure "rebuild_pvolog" set ref 213 backup_pvol_info based structure level 1 dcl 3-5 backup_volume_header based structure level 1 dcl 5-5 backup_volume_log based structure level 1 dcl 1-20 before builtin function dcl 70 ref 237 bvle based structure level 1 dcl 1-39 bvlep 000366 automatic pointer dcl 1-14 set ref 213* 214 216 217 bvlp 000364 automatic pointer dcl 1-13 set ref 81* 176* 183 183 184 184* 194* 196 197 212 213 227 240 242* 243* bvx 000344 automatic fixed bin(17,0) dcl 33 set ref 212* 213* char_num 000453 automatic char(32) packed unaligned dcl 252 set ref 261* 262* cleanup 000352 stack reference condition dcl 41 ref 115 clock builtin function dcl 70 ref 130 211 code 000347 automatic fixed bin(35,0) dcl 34 set ref 84* 88* 89 98* 99 100* 118* 120 121* 124* 125 126* 132* 133 134* 137* 139* 142* 143 144* 149* 150 151* 172* 187 194* 195 197* 198 199* 200 201 201* 203* 228* 256* 257* 262* 263 com_err_ 000040 constant entry external dcl 56 ref 86 cu_$arg_count 000054 constant entry external dcl 62 ref 95 cu_$arg_ptr 000036 constant entry external dcl 54 ref 88 98 cv_dec_check_ 000012 constant entry external dcl 44 ref 262 dump_type 2 based fixed bin(17,0) level 2 in structure "pvolog" dcl 2-8 in procedure "rebuild_pvolog" set ref 216* dump_type 1 based fixed bin(17,0) level 2 in structure "bvle" dcl 1-39 in procedure "rebuild_pvolog" ref 216 error_rnt 000360 automatic entry variable dcl 55 set ref 86* 90 100 107 121 126 134 139 144 148 151 174* 203 228 257 error_table_$bad_volid 000060 external static fixed bin(35,0) dcl 65 ref 256 error_table_$badopt 000056 external static fixed bin(35,0) dcl 64 set ref 107* error_table_$invalid_lock_reset 000066 external static fixed bin(35,0) dcl 68 ref 201 error_table_$locked_by_this_process 000062 external static fixed bin(35,0) dcl 66 ref 198 error_table_$segknown 000064 external static fixed bin(35,0) dcl 67 ref 195 get_system_free_area_ 000032 constant entry external dcl 52 ref 118 118 get_temp_segment_ 000024 constant entry external dcl 49 ref 124 get_wdir_ 000034 constant entry external dcl 53 ref 103 hcs_$delentry_seg 000010 constant entry external dcl 43 ref 149 hcs_$fs_move_seg 000022 constant entry external dcl 48 ref 142 hcs_$initiate 000042 constant entry external dcl 57 ref 194 hcs_$make_seg 000020 constant entry external dcl 47 ref 137 hcs_$star_ 000030 constant entry external dcl 51 ref 118 hcs_$terminate_noname 000044 constant entry external dcl 58 ref 184 242 ignore 000350 automatic fixed bin(35,0) dcl 35 set ref 157* 182* 183* 184* 240* 242* in_use 10 based fixed bin(17,0) level 2 dcl 2-8 set ref 147 234* 234 invocation_count 10 based fixed bin(17,0) level 2 dcl 2-18 set ref 236* ioa_ 000046 constant entry external dcl 59 ref 117 label based structure level 1 dcl 4-18 length builtin function dcl 71 ref 261 lock 2016 based bit(36) level 2 dcl 1-20 set ref 183* 197* 240* lock_wait_time 000000 constant fixed bin(17,0) initial dcl 39 set ref 197* long 000141 automatic bit(1) initial packed unaligned dcl 25 set ref 25* 104* 105* 117 min builtin function dcl 70 ref 217 238 mount_time 000112 automatic fixed bin(71,0) dcl 17 in procedure "rebuild_pvolog" set ref 211* 217* 217 238 mount_time 4 based fixed bin(71,0) level 2 in structure "pvolog" dcl 2-8 in procedure "rebuild_pvolog" set ref 130* 238* 238 myname 000114 automatic char(32) packed unaligned dcl 18 set ref 85* 90* 90* 100* 107* 121* 124* 126* 134* 139* 144* 148* 151* 177* 182* 203* 228* 257* narg 000142 automatic fixed bin(17,0) dcl 26 set ref 95* 97 new_pvlp 000124 automatic pointer dcl 19 set ref 137* 138 142* 147 149* 154* 171* 188 next 2030 based fixed bin(17,0) level 2 in structure "backup_volume_log" dcl 1-20 in procedure "rebuild_pvolog" ref 212 next 7 based fixed bin(17,0) level 2 in structure "pvolog" dcl 2-8 in procedure "rebuild_pvolog" set ref 233* 233 235 nindex 0(18) based fixed bin(18,0) array level 2 packed packed unsigned unaligned dcl 7-27 ref 225 nnames 0(02) based fixed bin(16,0) array level 2 packed packed unsigned unaligned dcl 7-27 ref 185 null builtin function dcl 70 ref 81 82 138 154 171 175 176 182 183 184 185 196 227 243 num 000452 automatic fixed bin(17,0) dcl 251 set ref 262* open_time 12 based fixed bin(71,0) level 2 dcl 1-39 ref 217 pvle based structure level 1 dcl 2-18 pvlep 000372 automatic pointer dcl 2-4 set ref 235* 236 237 pvlp 000370 automatic pointer dcl 2-3 set ref 81* 124* 129 130 142* 176* 182 182* 216 233 233 234 234 235 235 238 238 pvname based char(32) level 2 dcl 2-18 set ref 237* pvolog based structure level 1 dcl 2-8 pvolog_dir 000267 automatic char(168) packed unaligned dcl 29 set ref 114* 137* 139* 148* 157* pvolog_name 000126 automatic char(32) packed unaligned dcl 20 set ref 132* 137* 139* 148* 157* pvolog_version_1 constant fixed bin(17,0) initial dcl 2-6 ref 129 release_temp_segment_ 000026 constant entry external dcl 50 ref 182 search builtin function dcl 71 ref 254 set_lock_$lock 000050 constant entry external dcl 60 ref 197 set_lock_$unlock 000052 constant entry external dcl 61 ref 183 240 star_ALL_ENTRIES 000031 constant fixed bin(2,0) initial dcl 7-111 set ref 118* star_entries based structure array level 1 dcl 7-27 star_entry_count 000374 automatic fixed bin(17,0) dcl 7-14 set ref 118* 185 224 star_entry_ptr 000376 automatic pointer dcl 7-15 set ref 118* 185 225 star_names based char(32) array packed unaligned dcl 7-37 ref 185 225 star_names_ptr 000400 automatic pointer dcl 7-19 set ref 82* 118* 175* 185 185 225 start_numeric 000463 automatic fixed bin(17,0) dcl 253 set ref 254* 255 255 261 261 stx 000346 automatic fixed bin(17,0) dcl 33 set ref 224* 225* sub 000136 automatic bit(1) initial packed unaligned dcl 21 set ref 21* 173* 186 substr builtin function dcl 70 ref 93 261 suffixed_name_$make 000016 constant entry external dcl 46 ref 132 sum builtin function dcl 70 ref 185 sys_dir 000215 automatic char(168) packed unaligned dcl 28 set ref 87* 103* 112 114 178* unlock_volog 000110 automatic bit(1) initial packed unaligned dcl 16 set ref 16* 183 198* 199 240 version 1 based fixed bin(17,0) level 2 dcl 2-8 set ref 129* volname parameter char packed unaligned dcl 250 in procedure "check_volname" set ref 249 254 257* 261 261 volname 2 based char(32) level 2 in structure "bvle" dcl 1-39 in procedure "rebuild_pvolog" ref 214 volname 000100 automatic char(32) packed unaligned dcl 15 in procedure "rebuild_pvolog" set ref 94* 116* 117* 132* 134* 151* 170* 214 volname_count 000140 automatic fixed bin(17,0) dcl 23 set ref 210* 215* 215 232 236 volog parameter char packed unaligned dcl 193 set ref 192 194* 203* volog_dir 000143 automatic char(168) packed unaligned dcl 27 set ref 112* 118* 121* 194* volog_known 000137 automatic bit(1) initial packed unaligned dcl 22 set ref 22* 184 195* 241 volog_name 000432 automatic char(32) packed unaligned dcl 223 set ref 225* 226* 228* 237 volume_pool_state 000351 automatic fixed bin(17,0) dcl 36 set ref 83* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Multics_ID_String internal static char(32) initial packed unaligned dcl 4-92 backup_version_1 internal static fixed bin(17,0) initial dcl 6-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 3-3 comp internal static fixed bin(17,0) initial dcl 6-6 cons internal static fixed bin(17,0) initial dcl 6-5 contents_type internal static fixed bin(17,0) initial dcl 5-21 dir_type internal static fixed bin(17,0) initial dcl 5-16 hdp automatic pointer dcl 5-3 incr internal static fixed bin(17,0) initial dcl 6-4 info_type internal static fixed bin(17,0) initial dcl 5-22 labelp automatic pointer dcl 4-16 null_type internal static fixed bin(17,0) initial dcl 5-18 pattern1 internal static bit(36) initial packed unaligned dcl 5-24 pattern2 internal static bit(36) initial packed unaligned dcl 5-25 pattern3 internal static bit(36) initial packed unaligned dcl 5-26 prev_output_log_type internal static fixed bin(17,0) initial dcl 5-20 seg_type internal static fixed bin(17,0) initial dcl 5-17 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 7-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 7-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 7-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 7-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 7-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 7-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 7-120 star_branch_count automatic fixed bin(17,0) dcl 7-13 star_dir_list_branch based structure array level 1 dcl 7-59 star_link_count automatic fixed bin(17,0) dcl 7-17 star_link_pathname based char packed unaligned dcl 7-102 star_links based structure array level 1 dcl 7-76 star_linkx automatic fixed bin(17,0) dcl 7-18 star_list_branch based structure array level 1 dcl 7-41 star_list_branch_ptr automatic pointer dcl 7-16 star_list_names based char(32) array packed unaligned dcl 7-92 star_list_names_ptr automatic pointer dcl 7-20 star_select_sw automatic fixed bin(3,0) dcl 7-21 volume_log_type internal static fixed bin(17,0) initial dcl 5-19 vtoce_type internal static fixed bin(17,0) initial dcl 5-15 NAMES DECLARED BY EXPLICIT CONTEXT. argerr 000330 constant label dcl 90 ref 93 bad_volid 002311 constant label dcl 256 ref 263 check_volname 002260 constant entry internal dcl 249 ref 116 common 000563 constant label dcl 112 ref 179 count_volname 002050 constant entry internal dcl 209 ref 231 find_volog_and_lock 001672 constant entry internal dcl 192 ref 226 finish 001435 constant label dcl 161 ref 101 108 122 127 135 140 145 152 204 258 finish_ 001531 constant entry internal dcl 181 ref 115 161 next_volog 002255 constant label dcl 245 ref 229 rebuild_pvolog 000260 constant entry external dcl 11 rebuild_pvolog_ 001447 constant entry external dcl 165 scan_vologs 002111 constant entry internal dcl 222 ref 131 NAME DECLARED BY CONTEXT OR IMPLICATION. rtrim builtin function ref 114 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3144 3234 2623 3154 Length 3624 2623 70 354 321 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rebuild_pvolog 490 external procedure is an external procedure. on unit on line 115 64 on unit finish_ 78 internal procedure is called by several nonquick procedures. find_volog_and_lock internal procedure shares stack frame of external procedure rebuild_pvolog. count_volname internal procedure shares stack frame of external procedure rebuild_pvolog. scan_vologs internal procedure shares stack frame of external procedure rebuild_pvolog. check_volname internal procedure shares stack frame of external procedure rebuild_pvolog. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rebuild_pvolog 000100 volname rebuild_pvolog 000110 unlock_volog rebuild_pvolog 000112 mount_time rebuild_pvolog 000114 myname rebuild_pvolog 000124 new_pvlp rebuild_pvolog 000126 pvolog_name rebuild_pvolog 000136 sub rebuild_pvolog 000137 volog_known rebuild_pvolog 000140 volname_count rebuild_pvolog 000141 long rebuild_pvolog 000142 narg rebuild_pvolog 000143 volog_dir rebuild_pvolog 000215 sys_dir rebuild_pvolog 000267 pvolog_dir rebuild_pvolog 000341 argl rebuild_pvolog 000342 argp rebuild_pvolog 000344 bvx rebuild_pvolog 000345 ac rebuild_pvolog 000346 stx rebuild_pvolog 000347 code rebuild_pvolog 000350 ignore rebuild_pvolog 000351 volume_pool_state rebuild_pvolog 000360 error_rnt rebuild_pvolog 000364 bvlp rebuild_pvolog 000366 bvlep rebuild_pvolog 000370 pvlp rebuild_pvolog 000372 pvlep rebuild_pvolog 000374 star_entry_count rebuild_pvolog 000376 star_entry_ptr rebuild_pvolog 000400 star_names_ptr rebuild_pvolog 000432 volog_name scan_vologs 000452 num check_volname 000453 char_num check_volname 000463 start_numeric check_volname THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp call_ent_var_desc call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mpfx2 enable_op shorten_stack ext_entry ext_entry_desc int_entry op_freen_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. adjust_bit_count_ com_err_ cu_$arg_count cu_$arg_ptr cv_dec_check_ get_system_free_area_ get_temp_segment_ get_wdir_ hcs_$delentry_seg hcs_$fs_move_seg hcs_$initiate hcs_$make_seg hcs_$star_ hcs_$terminate_noname ioa_ release_temp_segment_ set_lock_$lock set_lock_$unlock suffixed_name_$make THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_volid error_table_$badopt error_table_$invalid_lock_reset error_table_$locked_by_this_process error_table_$segknown LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000251 21 000252 22 000253 25 000254 11 000257 81 000266 82 000271 83 000273 84 000274 85 000275 86 000300 87 000305 88 000310 89 000326 90 000330 91 000357 93 000360 94 000365 95 000371 96 000400 97 000402 98 000405 99 000422 100 000424 101 000456 103 000457 104 000501 105 000514 107 000526 108 000560 110 000561 111 000562 112 000563 114 000566 115 000614 116 000637 117 000642 118 000665 120 000741 121 000743 122 000772 124 000773 125 001014 126 001016 127 001044 129 001045 130 001050 131 001053 132 001054 133 001102 134 001104 135 001132 137 001133 138 001172 139 001176 140 001230 142 001231 143 001250 144 001252 145 001275 147 001276 148 001301 149 001334 150 001345 151 001347 152 001375 154 001376 155 001400 157 001401 161 001435 163 001441 165 001442 170 001470 171 001476 172 001501 173 001503 174 001505 175 001512 176 001514 177 001517 178 001522 179 001527 181 001530 182 001536 183 001563 184 001604 185 001624 186 001661 187 001664 188 001667 190 001671 192 001672 194 001703 195 001747 196 001754 197 001761 198 001774 199 002002 200 002004 201 002006 203 002012 204 002046 207 002047 209 002050 210 002051 211 002052 212 002054 213 002065 214 002071 215 002075 216 002076 217 002101 219 002106 221 002110 222 002111 224 002112 225 002121 226 002132 227 002135 228 002141 229 002172 231 002173 232 002174 233 002176 234 002200 235 002201 236 002205 237 002207 238 002217 240 002224 241 002240 242 002242 243 002253 245 002255 248 002257 249 002260 254 002271 255 002305 256 002311 257 002314 258 002350 261 002351 262 002357 263 002400 265 002402 ----------------------------------------------------------- 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