COMPILATION LISTING OF SEGMENT display_disk_label_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1013.4 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 9 display_disk_label_: 10 proc (p_labelp); 11 12 /* format: style4,initcol1,indattr,declareind8,dclind4,idind35,ifthenstmt,ifthen,^indproc,delnl,insnl */ 13 14 /**** Written August of 1984 by Allen Ball to display a valid disk label in readable format for display_disk_label and 15* bce_display_disk_label. ****/ 16 17 /****^ HISTORY COMMENTS: 18* 1) change(86-01-16,Fawcett), approve(86-04-11,MCR7383), 19* audit(86-05-14,Farley), install(86-07-17,MR12.0-1097): 20* Add support for subvolumes, and 512_WORD_IO, 3380 and 3390. 21* 2) change(88-04-12,GWMay), approve(88-04-12,MCR7867), 22* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 23* Changed to display in octal and decminal. Changed to interpret access 24* class. 25* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 26* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 27* Changed to display the status of volume dumper bit maps. 28* END HISTORY COMMENTS */ 29 30 labelp = p_labelp; 31 call ioa_ ("PVID^-^-^oo", label.pvid); 32 call ioa_ ("Serial^-^-^a", label.mfg_serial); 33 call ioa_ ("Logical Volume^-^a", label.lv_name); 34 call ioa_ ("LVID^-^-^oo^/", label.lvid); 35 if label.number_of_sv ^= 0 then 36 call ioa_ ("Subvolume ^a ^d of ^d", label.sub_vol_name, label.this_sv + 1, label.number_of_sv); 37 call ioa_ ("Registered^-^a", cv_time (label.time_registered)); 38 call ioa_ ("Dismounted^-^a", cv_time (label.time_unmounted)); 39 call ioa_ ("Map Updated^-^a", cv_time (label.time_map_updated)); 40 call ioa_ ("Salvaged^-^-^a", cv_time (label.time_salvaged)); 41 call ioa_ ("Bootload^-^-^a", cv_time (label.time_of_boot)); 42 call ioa_ ("Reloaded^-^-^a", cv_time (label.time_last_reloaded)); 43 call ioa_ (" 44 Dumped 45 Incremental^-^[^a^;Never Been Dumped^s^] 46 Consolidated^-^[^a^;Never Been Dumped^s^] 47 Complete^-^[^a^;Never Been Dumped^s^]", label.time_last_dmp (Incremental) ^= 0, 48 cv_time (label.time_last_dmp (Incremental)), label.time_last_dmp (Consolidated) ^= 0, 49 cv_time (label.time_last_dmp (Consolidated)), label.time_last_dmp (Complete) ^= 0, 50 cv_time (label.time_last_dmp (Complete))); 51 52 call ioa_ (" 53 The volume dumper bit maps located in the label are ^[NOT ^]consistent.", label.inconsistent_dbm); 54 55 call ioa_ ("^/Inconsistencies^-^-^d", label.vol_trouble_count); 56 57 if sys_info$service_system then do; 58 call convert_access_class_$to_string_short (label.min_access_class, access_string, code); 59 call ioa_ ("^/Minimum AIM^-^-^a (^[^[system_low^s^;^s^]^;^s^a^])", 60 display_access_class_ (label.min_access_class), access_string = "", code = 0, access_string); 61 call convert_access_class_$to_string_short (label.max_access_class, access_string, code); 62 call ioa_ ("Maximum AIM^-^-^a (^[^[system_low^s^;^s^]^;^s^a^])", 63 display_access_class_ (label.max_access_class), access_string = "", code = 0, access_string); 64 end; 65 else do; 66 call ioa_ ("^/Minimum AIM^-^-^a", display_access_class_ (label.min_access_class)); 67 call ioa_ ("Maximum AIM^-^-^a", display_access_class_ (label.max_access_class)); 68 end; 69 70 if label.root.here then do; 71 call ioa_ ("^/Volume contains root (>) at vtocx ^d (^oo)", label.root_vtocx, label.root_vtocx); 72 call ioa_ (" disk_table_ at vtocx ^d (^oo) (uid ^wo)", label.root.disk_table_vtocx, 73 label.root.disk_table_vtocx, label.root.disk_table_uid); 74 end; 75 if label.nparts > 0 then do; 76 call ioa_ ("^/Volume Map from Label"); 77 call ioa_ (" 78 First Record Size"); 79 do parts_index = 1 to label.nparts; 80 call ioa_ ("^8d (^oo)^22t^8d (^oo)^51t^4a Partition", label.parts (parts_index).frec, 81 label.parts (parts_index).frec, label.parts (parts_index).nrec, label.parts (parts_index).nrec, 82 label.parts (parts_index).part); 83 end; 84 end; 85 return; 86 87 88 cv_time: 89 proc (date_time) returns (char (*)); 90 91 dcl date_time fixed bin (71); 92 dcl date_time_string char (24); 93 dcl length builtin; 94 dcl substr builtin; 95 96 if date_time = 0 then 97 return (""); 98 else do; 99 date_time_string = date_time_$format ("date_time", date_time, "", ""); 100 if substr (date_time_string, 1, length (Null_date_time)) = Null_date_time then 101 return (""); 102 else return (date_time_string); 103 end; 104 end; 105 106 107 dcl access_string char (32); 108 109 dcl code fixed bin (35); 110 111 dcl Consolidated fixed bin static options (constant) init (2); 112 dcl Complete fixed bin static options (constant) init (3); 113 dcl Incremental fixed bin static options (constant) init (1); 114 dcl Null_date_time char (16) static options (constant) init ("01/01/01 0000.0"); 115 dcl sys_info$service_system bit (1) aligned ext static; 116 117 dcl convert_access_class_$to_string_short 118 entry (bit (72) aligned, char (*), fixed bin (35)); 119 dcl date_time_$format entry (char (*), fixed bin (71), char (*), char (*)) returns (char (250) var); 120 dcl display_access_class_ entry (bit (72) aligned) returns (char (32) aligned); 121 dcl ioa_ entry () options (variable); 122 dcl p_labelp pointer parameter; 123 dcl parts_index fixed bin; /* format: ^insnl */ 124 /* BEGIN INCLUDE FILE aim_template.incl.pl1 */ 1 2 1 3 /* Created 740723 by PG */ 1 4 /* Modified 06/28/78 by C. D. Tavares to add rcp privilege */ 1 5 /* Modified 83-05-10 by E. N. Kitltitz to add communications privilege */ 1 6 1 7 /* This structure defines the components of both an access 1 8* class and an access authorization as interpreted by the 1 9* Access Isolation Mechanism. */ 1 10 1 11 1 12 dcl 1 aim_template aligned based, /* authorization/access class template */ 1 13 2 categories bit (36), /* access categories */ 1 14 2 level fixed bin (17) unaligned, /* sensitivity level */ 1 15 2 privileges unaligned, /* special access privileges (in authorization only) */ 1 16 (3 ipc, /* interprocess communication privilege */ 1 17 3 dir, /* directory privilege */ 1 18 3 seg, /* segment privilege */ 1 19 3 soos, /* security out-of-service privilege */ 1 20 3 ring1, /* ring 1 access privilege */ 1 21 3 rcp, /* RCP resource access privilege */ 1 22 3 comm) bit (1), /* communications cross-AIM privilege */ 1 23 3 pad bit (11); 1 24 1 25 1 26 /* END INCLUDE FILE aim_template.incl.pl1 */ 124 125 /* BEGIN INCLUDE FILE ... fs_vol_label.incl.pl1 .. last modified January 1982 for new volume map format */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(86-04-10,Fawcett), approve(86-04-10,MCR7383), 2 5* audit(86-05-12,Coppola), install(86-07-18,MR12.0-1098): 2 6* Add the subvolume info. 2 7* 2) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 2 8* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 2 9* Added inconsistent_dbm bit used to determine consistency of volume 2 10* dumper bit maps. 2 11* END HISTORY COMMENTS */ 2 12 2 13 /* This is the label at fixed location of each physical volume. Length 1 page */ 2 14 /* Note: fsout_vol clears pad fields before writing the label */ 2 15 2 16 dcl labelp ptr; 2 17 2 18 dcl 1 label based (labelp) aligned, 2 19 2 20 /* First comes data not used by Multics.. for compatibility with GCOS */ 2 21 2 22 2 gcos (5*64) fixed bin, 2 23 2 24 /* Now we have the Multics label */ 2 25 2 26 2 Multics char (32) init ("Multics Storage System Volume"), /* Identifier */ 2 27 2 version fixed bin, /* Version 1 */ 2 28 2 mfg_serial char (32), /* Manufacturer's serial number */ 2 29 2 pv_name char (32), /* Physical volume name. */ 2 30 2 lv_name char (32), /* Name of logical volume for pack */ 2 31 2 pvid bit (36), /* Unique ID of this pack */ 2 32 2 lvid bit (36), /* unique ID of its logical vol */ 2 33 2 root_pvid bit (36), /* unique ID of the pack containing the root. everybody must agree. */ 2 34 2 time_registered fixed bin (71), /* time imported to system */ 2 35 2 n_pv_in_lv fixed bin, /* # phys volumes in logical */ 2 36 2 vol_size fixed bin, /* total size of volume, in records */ 2 37 2 vtoc_size fixed bin, /* number of recs in fixed area + vtoc */ 2 38 2 not_used bit (1) unal, /* used to be multiple_class */ 2 39 2 private bit (1) unal, /* TRUE if was registered as private */ 2 40 2 inconsistent_dbm bit (1) unal, /* TRUE if ESD-less crash */ 2 41 2 flagpad bit (33) unal, 2 42 2 max_access_class bit (72), /* Maximum access class for stuff on volume */ 2 43 2 min_access_class bit (72), /* Minimum access class for stuff on volume */ 2 44 2 password bit (72), /* not yet used */ 2 45 2 number_of_sv fixed bin, /* if = 0 not a subvolume else the number of svs */ 2 46 2 this_sv fixed bin, /* what subvolume number it is */ 2 47 2 sub_vol_name char (1), /* what subvolume name (a b c d) it is */ 2 48 2 pad1 (13) fixed bin, 2 49 2 time_mounted fixed bin (71), /* time mounted */ 2 50 2 time_map_updated fixed bin (71), /* time vmap known good */ 2 51 2 52 /* The next two words overlay time_unmounted on pre-MR10 systems. This 2 53* forces a salvage if an MR10 pack is mounted on an earlier system. 2 54* */ 2 55 2 volmap_version fixed bin, /* version of volume map (currently 1) */ 2 56 2 pad6 fixed bin, 2 57 2 58 2 time_salvaged fixed bin (71), /* time salvaged */ 2 59 2 time_of_boot fixed bin (71), /* time of last bootload */ 2 60 2 time_unmounted fixed bin (71), /* time unmounted cleanly */ 2 61 2 last_pvtx fixed bin, /* pvtx in that PDMAP */ 2 62 2 pad1a (2) fixed bin, 2 63 2 err_hist_size fixed bin, /* size of pack error history */ 2 64 2 time_last_dmp (3) fixed bin (71), /* time last completed dump pass started */ 2 65 2 time_last_reloaded fixed bin (71), /* what it says */ 2 66 2 pad2 (40) fixed bin, 2 67 2 root, 2 68 3 here bit (1), /* TRUE if the root is on this pack */ 2 69 3 root_vtocx fixed bin (35), /* VTOC index of root, if it is here */ 2 70 3 shutdown_state fixed bin, /* Status of hierarchy */ 2 71 3 pad7 bit (1) aligned, 2 72 3 disk_table_vtocx fixed bin, /* VTOC index of disk table on RPV */ 2 73 3 disk_table_uid bit (36) aligned, /* UID of disk table */ 2 74 3 esd_state fixed bin, /* State of esd */ 2 75 2 volmap_record fixed bin, /* Begin record of volume map */ 2 76 2 size_of_volmap fixed bin, /* Number of records in volume map */ 2 77 2 vtoc_map_record fixed bin, /* Begin record of VTOC map */ 2 78 2 size_of_vtoc_map fixed bin, /* Number of records in VTOC map */ 2 79 2 volmap_unit_size fixed bin, /* Number of words per volume map section */ 2 80 2 vtoc_origin_record fixed bin, /* Begin record of VTOC */ 2 81 2 dumper_bit_map_record fixed bin, /* Begin record of dumper bit-map */ 2 82 2 vol_trouble_count fixed bin, /* Count of inconsistencies found since salvage */ 2 83 2 pad3 (52) fixed bin, 2 84 2 nparts fixed bin, /* Number of special partitions on pack */ 2 85 2 parts (47), 2 86 3 part char (4), /* Name of partition */ 2 87 3 frec fixed bin, /* First record */ 2 88 3 nrec fixed bin, /* Number of records */ 2 89 3 pad5 fixed bin, 2 90 2 pad4 (5*64) fixed bin; 2 91 2 92 dcl Multics_ID_String char (32) init ("Multics Storage System Volume") static; 2 93 2 94 /* END INCLUDE FILE fs_vol_label.incl.pl1 */ 125 126 127 end display_disk_label_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0803.7 display_disk_label_.pl1 >spec>install>1111>display_disk_label_.pl1 124 1 09/07/83 1610.6 aim_template.incl.pl1 >ldd>include>aim_template.incl.pl1 125 2 07/21/88 2036.0 fs_vol_label.incl.pl1 >ldd>include>fs_vol_label.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. Complete constant fixed bin(17,0) initial dcl 112 ref 43 43 Consolidated constant fixed bin(17,0) initial dcl 111 ref 43 43 Incremental constant fixed bin(17,0) initial dcl 113 ref 43 43 Null_date_time 000000 constant char(16) initial packed unaligned dcl 114 ref 100 100 access_string 000100 automatic char(32) packed unaligned dcl 107 set ref 58* 59 59* 61* 62 62* code 000110 automatic fixed bin(35,0) dcl 109 set ref 58* 59 61* 62 convert_access_class_$to_string_short 000012 constant entry external dcl 117 ref 58 61 date_time parameter fixed bin(71,0) dcl 91 set ref 88 96 99* date_time_$format 000014 constant entry external dcl 119 ref 99 date_time_string 000100 automatic char(24) packed unaligned dcl 92 set ref 99* 100 102 disk_table_uid 705 based bit(36) level 3 dcl 2-18 set ref 72* disk_table_vtocx 704 based fixed bin(17,0) level 3 dcl 2-18 set ref 72* 72* display_access_class_ 000016 constant entry external dcl 120 ref 59 59 62 62 66 66 67 67 frec 1005 based fixed bin(17,0) array level 3 dcl 2-18 set ref 80* 80* here 700 based bit(1) level 3 dcl 2-18 ref 70 inconsistent_dbm 551(02) based bit(1) level 2 packed packed unaligned dcl 2-18 set ref 52* ioa_ 000020 constant entry external dcl 121 ref 31 32 33 34 35 37 38 39 40 41 42 43 52 55 59 62 66 67 71 72 76 77 80 label based structure level 1 dcl 2-18 labelp 000112 automatic pointer dcl 2-16 set ref 30* 31 32 33 34 35 35 35 35 37 38 39 40 41 42 43 43 43 43 43 43 52 55 58 59 59 61 62 62 66 66 67 67 70 71 71 72 72 72 75 79 80 80 80 80 80 length builtin function dcl 93 ref 100 lv_name 531 based char(32) level 2 dcl 2-18 set ref 33* lvid 542 based bit(36) level 2 dcl 2-18 set ref 34* max_access_class 552 based bit(72) level 2 dcl 2-18 set ref 61* 62* 62* 67* 67* mfg_serial 511 based char(32) level 2 dcl 2-18 set ref 32* min_access_class 554 based bit(72) level 2 dcl 2-18 set ref 58* 59* 59* 66* 66* nparts 1003 based fixed bin(17,0) level 2 dcl 2-18 ref 75 79 nrec 1006 based fixed bin(17,0) array level 3 dcl 2-18 set ref 80* 80* number_of_sv 560 based fixed bin(17,0) level 2 dcl 2-18 set ref 35 35* p_labelp parameter pointer dcl 122 ref 9 30 part 1004 based char(4) array level 3 dcl 2-18 set ref 80* parts 1004 based structure array level 2 dcl 2-18 parts_index 000111 automatic fixed bin(17,0) dcl 123 set ref 79* 80 80 80 80 80* pvid 541 based bit(36) level 2 dcl 2-18 set ref 31* root 700 based structure level 2 dcl 2-18 root_vtocx 701 based fixed bin(35,0) level 3 dcl 2-18 set ref 71* 71* sub_vol_name 562 based char(1) level 2 dcl 2-18 set ref 35* substr builtin function dcl 94 ref 100 sys_info$service_system 000010 external static bit(1) dcl 115 ref 57 this_sv 561 based fixed bin(17,0) level 2 dcl 2-18 ref 35 time_last_dmp 620 based fixed bin(71,0) array level 2 dcl 2-18 set ref 43 43* 43 43* 43 43* time_last_reloaded 626 based fixed bin(71,0) level 2 dcl 2-18 set ref 42* time_map_updated 602 based fixed bin(71,0) level 2 dcl 2-18 set ref 39* time_of_boot 610 based fixed bin(71,0) level 2 dcl 2-18 set ref 41* time_registered 544 based fixed bin(71,0) level 2 dcl 2-18 set ref 37* time_salvaged 606 based fixed bin(71,0) level 2 dcl 2-18 set ref 40* time_unmounted 612 based fixed bin(71,0) level 2 dcl 2-18 set ref 38* vol_trouble_count 716 based fixed bin(17,0) level 2 dcl 2-18 set ref 55* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Multics_ID_String internal static char(32) initial packed unaligned dcl 2-92 aim_template based structure level 1 dcl 1-12 NAMES DECLARED BY EXPLICIT CONTEXT. cv_time 001736 constant entry internal dcl 88 ref 37 38 39 40 41 42 43 43 43 display_disk_label_ 000363 constant entry external dcl 9 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2152 2174 2041 2162 Length 2422 2041 22 211 110 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME display_disk_label_ 194 external procedure is an external procedure. cv_time 162 internal procedure uses returns(char(*)) or returns(bit(*)), and is called during a stack extension. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cv_time 000100 date_time_string cv_time display_disk_label_ 000100 access_string display_disk_label_ 000110 code display_disk_label_ 000111 parts_index display_disk_label_ 000112 labelp display_disk_label_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as call_ext_out_desc call_ext_out call_int_this_desc return_mac shorten_stack ext_entry int_entry_desc return_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_access_class_$to_string_short date_time_$format display_access_class_ ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sys_info$service_system LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000360 30 000370 31 000374 32 000414 33 000437 34 000460 35 000504 37 000545 38 000605 39 000646 40 000707 41 000750 42 001011 43 001052 52 001207 55 001233 57 001257 58 001262 59 001303 61 001360 62 001402 64 001457 66 001460 67 001514 70 001546 71 001551 72 001574 75 001624 76 001627 77 001646 79 001662 80 001673 83 001732 85 001734 88 001735 96 001743 99 001756 100 002015 102 002031 ----------------------------------------------------------- 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