COMPILATION LISTING OF SEGMENT ls_convert_as_error_code_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phx. Az., Sys-M Compiled on: 08/04/87 1303.5 mst Tue Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /****^ HISTORY COMMENTS: 8* 1) change(85-08-01,Coren), approve(87-07-10,MCR7679), audit(87-03-01,GDixon), 9* install(87-08-04,MR12.1-1055): 10* Initial coding. 11* 2) change(87-03-18,GDixon), approve(87-07-10,MCR7679), 12* audit(87-05-19,Parisek), install(87-08-04,MR12.1-1055): 13* Correct coding standard violations. 14* END HISTORY COMMENTS */ 15 16 /* format: style4,delnl,insnl,^ifthendo */ 17 18 ls_convert_as_error_code_: 19 procedure (a_code) returns (fixed bin (35)); 20 21 /* This function is used for error codes passed from the Initializer that come 22* from as_error_table_, which is used for codes that are of interest only to 23* the answering service and login servers. Because these codes were obtained 24* from another process, the correct segment number must be patched in. This is 25* unpleasant, but is considered less so than adding 50 or more special-purpose 26* messages to error_table_. 27* 28* If the segment number matches that of system error codes, no conversion is 29* done. 30* 31* Note that the segment number in this process for as_error_table_ is kept in 32* internal static; a value of all zeroes means it hasn't been initialized yet, whereas 33* all ones means we tried to get the segment number and failed. 34**/ 35 36 dcl a_code fixed bin (35) parameter; 37 38 dcl code fixed bin (35); 39 dcl et_ptr pointer; 40 dcl local_code fixed bin (35); 41 42 dcl 1 code_structure based aligned, /* this is what an error code looks like */ 43 2 segno bit (18) unaligned, 44 2 offset fixed bin (18) unsigned unaligned; 45 46 dcl as_error_table_segno bit (18) internal static initial (""b); 47 /* will be set to segment number of as_error_table_ the first time we need it */ 48 49 dcl AS_ERROR_TABLE_NAME char (15) internal static options (constant) initial ("as_error_table_"); 50 dcl SYS_ERROR_TABLE_SEGNO bit (18) internal static options (constant) initial ("077777"b3); 51 52 53 dcl error_table_$no_message fixed bin (35) external static; 54 55 dcl hcs_$make_ptr entry (ptr, char (*), char (*), ptr, fixed bin (35)); 56 57 dcl (addr, baseno, null) builtin; 58 59 if a_code = 0 60 then return (0); 61 62 code = a_code; 63 64 if addr (code) -> code_structure.segno = SYS_ERROR_TABLE_SEGNO 65 /* it's from error_table_ anyway */ 66 then return (code); 67 68 if as_error_table_segno = ""b 69 then do; /* we haven't got the segment number in this process yet */ 70 call hcs_$make_ptr (null (), AS_ERROR_TABLE_NAME, "", et_ptr, local_code); 71 if local_code ^= 0 /* we can't */ 72 then as_error_table_segno = "777777"b3; /* tough */ 73 74 else as_error_table_segno = baseno (et_ptr); 75 end; 76 77 if as_error_table_segno = "777777"b3 78 then return (error_table_$no_message); /* for lack of anything better */ 79 80 else do; 81 addr (code) -> code_structure.segno = as_error_table_segno; 82 return (code); 83 end; 84 85 end ls_convert_as_error_code_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/04/87 1221.9 ls_convert_as_error_code_.pl1 >special_ldd>install>MR12.1-1054>ls_convert_as_error_code_.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. AS_ERROR_TABLE_NAME 000000 constant char(15) initial unaligned dcl 49 set ref 70* SYS_ERROR_TABLE_SEGNO constant bit(18) initial unaligned dcl 50 ref 64 a_code parameter fixed bin(35,0) dcl 36 ref 18 59 62 addr builtin function dcl 57 ref 64 81 as_error_table_segno 000010 internal static bit(18) initial unaligned dcl 46 set ref 68 71* 74* 77 81 baseno builtin function dcl 57 ref 74 code 000100 automatic fixed bin(35,0) dcl 38 set ref 62* 64 64 81 82 code_structure based structure level 1 dcl 42 error_table_$no_message 000012 external static fixed bin(35,0) dcl 53 ref 77 et_ptr 000102 automatic pointer dcl 39 set ref 70* 74 hcs_$make_ptr 000014 constant entry external dcl 55 ref 70 local_code 000104 automatic fixed bin(35,0) dcl 40 set ref 70* 71 null builtin function dcl 57 ref 70 70 segno based bit(18) level 2 packed unaligned dcl 42 set ref 64 81* NAME DECLARED BY EXPLICIT CONTEXT. ls_convert_as_error_code_ 000024 constant entry external dcl 18 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 200 216 126 210 Length 376 126 16 143 52 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ls_convert_as_error_code_ 94 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 as_error_table_segno ls_convert_as_error_code_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ls_convert_as_error_code_ 000100 code ls_convert_as_error_code_ 000102 et_ptr ls_convert_as_error_code_ 000104 local_code ls_convert_as_error_code_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. hcs_$make_ptr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$no_message LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000020 59 000031 62 000036 64 000037 68 000046 70 000050 71 000101 74 000107 77 000113 81 000121 82 000122 ----------------------------------------------------------- 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