COMPILATION LISTING OF SEGMENT convert_access_operation_ 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 0958.5 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 /* format: off */ 10 11 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 /* */ 14 /* CONVERT_ACCESS_OPERATION_ */ 15 /* */ 16 /* Routine to convert a bit string which uniquely describes a system access operation */ 17 /* into its associated text. The text strings as well as the table of unique access */ 18 /* operation codes are in "access_operations_". The format of the file is described by */ 19 /* "access_operations_.incl.pl1" The format of the encoded operation is described by */ 20 /* "access_audit_encoded_op.incl.pl1". */ 21 /* */ 22 /* History: */ 23 /* 84-11-14 EJ Sharpe - created */ 24 /* */ 25 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 26 27 28 convert_access_operation_: 29 procedure (a_oper_code) returns (char (50)); 30 31 dcl a_oper_code bit (36) aligned parameter; 32 33 dcl oper_index fixed bin; /* unique part of encoded operation */ 34 dcl based_char_str char (char_str_len) based (char_str_ptr); /* the string we'll return */ 35 dcl char_str_len fixed bin (21); /* length of text for the operation */ 36 dcl char_str_ptr pointer; /* pointer to the text */ 37 38 dcl fifty_exs char (50) /* returned in cases where supplied code is not in table */ 39 init ("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") 40 static internal options (constant); 41 42 43 dcl addr builtin; 44 dcl fixed builtin; 45 dcl addrel builtin; 46 47 oper_index = fixed(addr(a_oper_code)->encoded_access_op.operation_index); 48 if oper_index <= 0 49 | oper_index > access_operations_$num_codes 50 | access_operations_$version ^= ACCESS_OPERATIONS_V1 51 then return (fifty_exs); 52 53 char_str_ptr = addrel (addr(access_operations_$text_area), 54 fixed(access_operations_$text_offset_table.text_offset(oper_index))); 55 char_str_len = access_operations_$text_offset_table.text_len(oper_index); 56 return (based_char_str); 57 58 1 1 /* begin include file - access_audit_encoded_op.incl.pl1 */ 1 2 1 3 dcl 1 encoded_access_op aligned based, 1 4 2 audit_type unal, 1 5 3 object_type fixed bin (4) uns unal, 1 6 3 access_type fixed bin (2) uns unal, 1 7 2 operation_index fixed bin (12) uns unal, 1 8 2 detailed_operation fixed bin (18) uns unal; 1 9 1 10 /* object_type = Seg, Dir, Rcp, Admin, Special, Other 1 11* access_type = None, Modify_Acl, Modify, Read 1 12* operation_index is the index of this code in 1 13* access_operations_$oper_codes and the index of 1 14* the text descriptor in access_operations_$text_offest_table 1 15* (see access_operations_.incl.pl1) 1 16* detailed_operation is additional info inserted by the 1 17* caller of the subsystem performing the operation 1 18**/ 1 19 1 20 /* end include file - access_audit_encoded_op.incl.pl1 */ 59 60 61 62 2 1 /* BEGIN include file access_operations_.incl.pl1 */ 2 2 /* Format of access_operations_. October 1984, Keith Loepere. */ 2 3 2 4 /* format: style4,indattr,ifthenstmt,ifthen,idind35,^indcomtxt */ 2 5 2 6 dcl ACCESS_OPERATIONS_V1 char (8) unal static options (constant) init ("acc_op_1"); 2 7 2 8 dcl access_operations_$version char (8) unal ext; 2 9 2 10 dcl access_operations_$num_codes fixed bin ext; 2 11 2 12 dcl access_operations_$code_table (1024) bit (36) aligned ext; /* This is actually dimensioned by num_codes. */ 2 13 2 14 dcl 1 access_operations_$text_offset_table (1024) aligned ext, /* This is actually dimensioned by num_codes. 2 15* - location of access code descriptions */ 2 16 2 text_offset bit (18) unal, /* word offset of start of text from $text */ 2 17 2 text_len fixed bin unal; /* length of text in chars */ 2 18 2 19 dcl access_operations_$text_area ext; /* Start of the area storing the text descriptions of the access codes */ 2 20 2 21 /* END include file access_operations_.incl.pl1 */ 63 64 65 end convert_access_operation_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0804.6 convert_access_operation_.pl1 >spec>install>1110>convert_access_operation_.pl1 59 1 01/30/85 1523.9 access_audit_encoded_op.incl.pl1 >ldd>include>access_audit_encoded_op.incl.pl1 63 2 01/30/85 1523.9 access_operations_.incl.pl1 >ldd>include>access_operations_.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. ACCESS_OPERATIONS_V1 000000 constant char(8) initial packed unaligned dcl 2-6 ref 48 a_oper_code parameter bit(36) dcl 31 set ref 28 47 access_operations_$num_codes 000012 external static fixed bin(17,0) dcl 2-10 ref 48 access_operations_$text_area 000016 external static fixed bin(17,0) dcl 2-19 set ref 53 access_operations_$text_offset_table 000014 external static structure array level 1 dcl 2-14 access_operations_$version 000010 external static char(8) packed unaligned dcl 2-8 ref 48 addr builtin function dcl 43 ref 47 53 addrel builtin function dcl 45 ref 53 based_char_str based char packed unaligned dcl 34 ref 56 char_str_len 000101 automatic fixed bin(21,0) dcl 35 set ref 55* 56 char_str_ptr 000102 automatic pointer dcl 36 set ref 53* 56 encoded_access_op based structure level 1 dcl 1-3 fifty_exs constant char(50) initial packed unaligned dcl 38 ref 48 fixed builtin function dcl 44 ref 47 53 oper_index 000100 automatic fixed bin(17,0) dcl 33 set ref 47* 48 48 53 55 operation_index 0(06) based fixed bin(12,0) level 2 packed packed unsigned unaligned dcl 1-3 ref 47 text_len 0(18) 000014 external static fixed bin(17,0) array level 2 packed packed unaligned dcl 2-14 ref 55 text_offset 000014 external static bit(18) array level 2 packed packed unaligned dcl 2-14 ref 53 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. access_operations_$code_table external static bit(36) array dcl 2-12 NAME DECLARED BY EXPLICIT CONTEXT. convert_access_operation_ 000010 constant entry external dcl 28 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 146 166 60 156 Length 400 60 20 175 66 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME convert_access_operation_ 68 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME convert_access_operation_ 000100 oper_index convert_access_operation_ 000101 char_str_len convert_access_operation_ 000102 char_str_ptr convert_access_operation_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. return_mac ext_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. access_operations_$num_codes access_operations_$text_area access_operations_$text_offset_table access_operations_$version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 28 000004 47 000015 48 000022 53 000037 55 000047 56 000053 ----------------------------------------------------------- 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