COMPILATION LISTING OF SEGMENT binary_segmsg_util_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1634.9 mst Mon 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 binary_segmsg_util_: proc (a_datap) returns (char (250)); 12 13 /* Procedure to make heads and tails out of binary messages produced by page control/vtoc salvager. */ 14 /* This procedure knows the format and decision trees of these binary messages, which happen */ 15 /* to be transmitted via the syserr log, most usually. This procedure has no knowledge */ 16 /* of syserr or its logs. */ 17 18 /* Bernard Greenberg 8/4/77 */ 19 20 dcl (datap, a_datap) ptr; /* Pointer to binary stuff */ 21 dcl path char (168); /* Ostensible vpn_cv_.. answer */ 22 dcl segname char (250); /* Answer */ 23 dcl (linkage_error, command_error) condition; /* vpn_cv_ is a mighty funny boy */ 24 dcl brief char (8) aligned; /* For convert_status_code_ */ 25 dcl long char (100) aligned; /* Ditto */ 26 dcl code fixed bin (35); /* Status code in general */ 27 dcl volname char (32); /* Phys vol name */ 28 dcl (error_table_$noentry, error_table_$no_dir) fixed bin (35) external; 29 30 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 31 dcl vpn_cv_uid_path_ entry (ptr, char (*), fixed bin (35)); /* for dirnames */ 32 dcl vpn_cv_uid_path_$ent entry (ptr, char (*), bit (36) aligned, fixed bin (35)); 33 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 34 dcl ioa_$rsnnl entry options (variable); 35 dcl mdc_$find_volname entry (bit (36), char (*), char (*), fixed bin (35)); 36 37 1 1 /* BEGIN INCLUDE FILE segdamage_msg.incl.pl1 Bernard Greenberg 7/15/77 */ 1 2 1 3 /* This binary syserr message should be sent when the system damages a segment. 1 4* The value of sst$damaged_ct whould be incremented at this time. */ 1 5 1 6 dcl 1 segdamage aligned, 1 7 2 pvid bit (36) aligned, /* Volume PVID */ 1 8 2 lvid bit (36) aligned, /* Volume LVID */ 1 9 2 pno fixed bin (17) unaligned, /* Page number, -1 => don't know/care */ 1 10 2 vtocx fixed bin (17) unaligned, /* VTOC index, -1 => none, -2 => don't know */ 1 11 2 uid bit (36) aligned, /* Seg UID */ 1 12 2 uid_path (0:15) bit (36) aligned; /* Parent dir uid path, zero padded on right */ 1 13 1 14 /* END INCLUDE FILE segdamage_msg.incl.pl1 */ 38 39 dcl 1 sd like segdamage based (datap) aligned; 40 /* */ 41 42 datap = a_datap; 43 volname = cv_pvname (); 44 45 if sd.vtocx = -2 then do; 46 /* PD case */ 47 if sd.uid = "0"b then segname = "VTOCEless segment on pv " || volname; 48 else call ioa_$rsnnl ("UID ^w on pv ^a", segname, (0), sd.uid, volname); 49 end; 50 else if sd.vtocx = -1 then segname = "VTOCEless segment on pv " || volname; 51 else do; 52 /* Have vtocx, if we have uid, golden */ 53 if sd.uid = "0"b then do; 54 path = "Cannot determine pathname."; 55 on command_error; 56 on linkage_error go to vpnf1; 57 call vpn_cv_uid_path_ (addr (sd.uid_path), path, code); 58 vpnf1: revert linkage_error; 59 revert command_error; 60 61 call ioa_$rsnnl ("Seg at vtocx ^o on pv ^a, dir = ^a", segname, (0), sd.vtocx, volname); 62 end; 63 else do; /* Got ALL goods! */ 64 on linkage_error go to vpnf2; 65 on command_error; 66 path = "Cannot determine pathname"; 67 call vpn_cv_uid_path_$ent (addr (sd.uid_path), path, sd.uid, code); 68 vpnf2: revert command_error; 69 revert linkage_error; 70 if code = 0 then segname = rtrim (path) || " on pv " || volname; 71 else if code = error_table_$noentry then do; 72 call expand_pathname_ ((path), path, (" "), (0)); 73 call ioa_$rsnnl ("Deleted segment in ^a, on pv ^a.", segname, (0), path, volname); 74 end; 75 else if code = error_table_$no_dir then call ioa_$rsnnl ("Segment on pv ^a in deleted directory: ^a", 76 segname, (0), volname, path); 77 else do; 78 call convert_status_code_ (code, brief, long); 79 call ioa_$rsnnl ("Cannot determine full path name: ^a ^a = UID ^w.", 80 segname, (0), long, path, sd.uid); 81 end; 82 end; 83 end; 84 85 return (segname); 86 87 /* */ 88 cv_pvname: proc () returns (char (32)); 89 90 dcl (pvname, lvname) char (32); 91 dcl code fixed bin (35); 92 93 if sd.pvid = "777777777777"b3 then return ("Paging Device"); 94 call mdc_$find_volname ((sd.pvid), pvname, lvname, code); 95 if code ^= 0 then call ioa_$rsnnl ("<>", pvname, (0), sd.pvid); 96 return (pvname); 97 98 end cv_pvname; 99 100 interpret_pvname: entry (a_datap) returns (char (32)); 101 102 datap = a_datap; 103 104 return (cv_pvname ()); 105 106 end binary_segmsg_util_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1505.4 binary_segmsg_util_.pl1 >dumps>old>recomp>binary_segmsg_util_.pl1 38 1 08/18/77 0954.0 segdamage_msg.incl.pl1 >ldd>include>segdamage_msg.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_datap parameter pointer dcl 20 ref 11 42 100 102 brief 000270 automatic char(8) dcl 24 set ref 78* code 000410 automatic fixed bin(35,0) dcl 91 in procedure "cv_pvname" set ref 94* 95 code 000323 automatic fixed bin(35,0) dcl 26 in procedure "binary_segmsg_util_" set ref 57* 67* 70 71 75 78* command_error 000262 stack reference condition dcl 23 ref 55 59 65 68 convert_status_code_ 000014 constant entry external dcl 30 ref 78 datap 000100 automatic pointer dcl 20 set ref 42* 45 47 48 50 53 57 57 61 67 67 67 79 93 94 95 102* error_table_$no_dir 000012 external static fixed bin(35,0) dcl 28 ref 75 error_table_$noentry 000010 external static fixed bin(35,0) dcl 28 ref 71 expand_pathname_ 000022 constant entry external dcl 33 ref 72 ioa_$rsnnl 000024 constant entry external dcl 34 ref 48 61 73 75 79 95 linkage_error 000254 stack reference condition dcl 23 ref 56 58 64 69 long 000272 automatic char(100) dcl 25 set ref 78* 79* lvname 000400 automatic char(32) unaligned dcl 90 set ref 94* mdc_$find_volname 000026 constant entry external dcl 35 ref 94 path 000102 automatic char(168) unaligned dcl 21 set ref 54* 57* 66* 67* 70 72 72* 73* 75* 79* pvid based bit(36) level 2 dcl 39 set ref 93 94 95* pvname 000370 automatic char(32) unaligned dcl 90 set ref 94* 95* 96 sd based structure level 1 dcl 39 segdamage 000334 automatic structure level 1 dcl 1-6 segname 000154 automatic char(250) unaligned dcl 22 set ref 47* 48* 50* 61* 70* 73* 75* 79* 85 uid 3 based bit(36) level 2 dcl 39 set ref 47 48* 53 67* 79* uid_path 4 based bit(36) array level 2 dcl 39 set ref 57 57 67 67 volname 000324 automatic char(32) unaligned dcl 27 set ref 43* 47 48* 50 61* 70 73* 75* vpn_cv_uid_path_ 000016 constant entry external dcl 31 ref 57 vpn_cv_uid_path_$ent 000020 constant entry external dcl 32 ref 67 vtocx 2(18) based fixed bin(17,0) level 2 packed unaligned dcl 39 set ref 45 50 61* NAMES DECLARED BY EXPLICIT CONTEXT. binary_segmsg_util_ 000147 constant entry external dcl 11 cv_pvname 001040 constant entry internal dcl 88 ref 43 104 interpret_pvname 001006 constant entry external dcl 100 vpnf1 000357 constant label dcl 58 ref 56 vpnf2 000511 constant label dcl 68 ref 64 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 57 57 67 67 rtrim builtin function ref 70 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1342 1372 1154 1352 Length 1602 1154 30 174 165 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME binary_segmsg_util_ 398 external procedure is an external procedure. on unit on line 55 64 on unit on unit on line 56 64 on unit on unit on line 64 64 on unit on unit on line 65 64 on unit cv_pvname internal procedure shares stack frame of external procedure binary_segmsg_util_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME binary_segmsg_util_ 000100 datap binary_segmsg_util_ 000102 path binary_segmsg_util_ 000154 segname binary_segmsg_util_ 000270 brief binary_segmsg_util_ 000272 long binary_segmsg_util_ 000323 code binary_segmsg_util_ 000324 volname binary_segmsg_util_ 000334 segdamage binary_segmsg_util_ 000370 pvname cv_pvname 000400 lvname cv_pvname 000410 code cv_pvname THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return tra_ext enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. convert_status_code_ expand_pathname_ ioa_$rsnnl mdc_$find_volname vpn_cv_uid_path_ vpn_cv_uid_path_$ent THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$no_dir error_table_$noentry LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000143 42 000156 43 000162 45 000164 47 000173 48 000211 49 000252 50 000253 51 000271 53 000272 54 000274 55 000277 56 000314 57 000333 58 000357 59 000360 61 000361 62 000421 64 000422 65 000441 66 000456 67 000461 68 000511 69 000512 70 000513 71 000555 72 000561 73 000613 74 000650 75 000651 78 000710 79 000722 85 000764 100 001002 102 001014 104 001020 88 001040 93 001042 94 001052 95 001077 96 001133 ----------------------------------------------------------- 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