COMPILATION LISTING OF SEGMENT access_audit_util_ 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.8 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(86-05-13,GJohnson), approve(86-05-13,MCR7387), 13* audit(86-05-13,Martinson), install(86-05-14,MR12.0-1056): 14* Correct error message documentation. 15* END HISTORY COMMENTS */ 16 17 18 /* format: style1,insnl,linecom,indcomtxt,^inddcls,^indnoniterdo */ 19 20 access_audit_util_: 21 procedure; 22 23 /* format: off */ 24 /****** History: 25* 85-01-14 EJ Sharpe - changes per code audit, set pds$throttle_segment_state_changes 26* 85-01-13 EJ Sharpe - added message documentation, fixed access_audit_ call 27* 85-01-11 EJ Sharpe - fixed check for proper active_hardcore_data meters 28* 85-01-07 EJ Sharpe - extracted code from access_audit_ 29*******/ 30 31 32 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 33 /* */ 34 /* ACCESS_AUDIT_UTIL_ */ 35 /* */ 36 /* Collection of utility routines associated with access_audit_ */ 37 /* */ 38 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 39 /* format: on */ 40 41 42 /* PARAMETERS */ 43 44 dcl a_area_ptr parameter pointer; /* user area where we can put things */ 45 dcl a_audit_flags parameter bit (36) aligned; /* process audit flags */ 46 dcl a_code parameter fixed bin (35); /* returned system status code */ 47 dcl a_audit_meter_info_num parameter fixed bin; /* number of meter buckets returned */ 48 dcl a_audit_meter_info_ptr parameter pointer; /* pointer to metering data for caller */ 49 50 51 /* AUTOMATIC */ 52 53 dcl area_ptr pointer; /* arg copy */ 54 dcl code fixed bin (35); /* arg copy */ 55 dcl 1 event_flags aligned like audit_event_flags; 56 /* passed to access audit */ 57 dcl i fixed bin; /* index */ 58 dcl j fixed bin; /* index */ 59 dcl old_audit_flags bit (36) aligned; /* temp for process audit flags */ 60 61 62 /* BASED */ 63 64 dcl area area based (area_ptr); 65 66 67 /* MISCELLANEOUS */ 68 69 dcl addr builtin; 70 dcl any_other condition; 71 dcl null builtin; 72 dcl string builtin; 73 74 75 /* EXTERNAL */ 76 77 dcl access_operations_$process_audit_flags_modify 78 bit (36) aligned ext; 79 80 /* Note - The next four externals hold the access audit metering data. */ 81 /* active_hardcore_data$access_audit_num_meters" is set to the dimension. */ 82 /* This value is (n_audit_objects*n_audit_access_types) + n_audit_events + 1. */ 83 /* This dimension should be increased as audit objects/events are added. */ 84 dcl active_hardcore_data$access_audit_num_meters 85 fixed bin external; 86 dcl active_hardcore_data$access_audit_count 87 (1) fixed bin (35) external; 88 dcl active_hardcore_data$access_audit_check_count 89 (1) fixed bin (35) external; 90 dcl active_hardcore_data$access_audit_cpu_time 91 (1) fixed bin (71) external; 92 dcl active_hardcore_data$access_audit_pagefaults 93 (1) fixed bin (35) external; 94 95 dcl error_table_$unexpected_condition 96 fixed bin (35) ext; 97 dcl error_table_$unimplemented_version 98 fixed bin (35) ext; 99 100 dcl pds$audit_flags bit (36) aligned ext; 101 dcl pds$throttle_segment_state_changes 102 bit (1) aligned ext; 103 104 105 /* ENTRIES */ 106 107 dcl access_audit_$check_general 108 entry (bit (36) aligned, bit (36) aligned) returns (bit (1) aligned); 109 dcl access_audit_$log_general 110 entry options (variable); 111 dcl ioa_$rsnnl entry options (variable); 112 dcl level$get entry returns (fixed bin); 113 114 /* format: off */ 115 116 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 117 /* */ 118 /* GET_AUDIT_METERS - Entrypoint. */ 119 /* */ 120 /* This entry returns the current access_audit_ meters to the caller. */ 121 /* */ 122 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 123 /* format: on */ 124 125 get_audit_meters: 126 entry (a_area_ptr, a_audit_meter_info_num, a_audit_meter_info_ptr, a_code); 127 128 code = error_table_$unexpected_condition; 129 130 on any_other goto GET_METERS_EXIT; 131 132 area_ptr = a_area_ptr; 133 134 audit_meter_info_num = (n_audit_objects * 2 * n_audit_access_types) + n_audit_flags + 1; 135 136 if audit_meter_info_num ^= active_hardcore_data$access_audit_num_meters 137 then do; 138 code = error_table_$unimplemented_version; 139 goto GET_METERS_EXIT; 140 end; 141 142 allocate audit_meter_info in (area); 143 audit_meter_info.version = audit_meter_info_version_1; 144 145 /* first the object related meters */ 146 do i = 1 to n_audit_objects; 147 do j = 1 to n_audit_access_types; /* for each operation grant */ 148 call copy_meters (Short_Object_Names (i), Short_Level_Names (j), 149 "grant", (i - 1) * n_audit_access_types * 2 + j); 150 end; 151 do j = n_audit_access_types + 1 to n_audit_access_types * 2; 152 /* for each operation denial */ 153 call copy_meters (Short_Object_Names (i), Short_Level_Names (j - n_audit_access_types), 154 "deny", (i - 1) * n_audit_access_types * 2 + j); 155 end; 156 end; 157 158 /* and then the event related meters */ 159 do i = (n_audit_objects * n_audit_access_types * 2) + 1 160 to (n_audit_objects * n_audit_access_types * 2) + n_audit_flags; 161 call copy_meters (Long_Flag_Names (i - (n_audit_objects * 2 * n_audit_access_types)), "", "", i); 162 end; 163 164 /* and finally the catch-all meter */ 165 call copy_meters ("All Others (should be zero)", "", "", audit_meter_info_num); 166 167 a_audit_meter_info_num = audit_meter_info_num; 168 a_audit_meter_info_ptr = addr (audit_meter_info); 169 code = 0; 170 171 GET_METERS_EXIT: 172 a_code = code; 173 return; 174 175 copy_meters: /* internal proc used by get_meters entrypoint exclusively */ 176 procedure (a_str1, a_str2, a_str3, a_index); 177 178 dcl (a_str1, a_str2, a_str3) 179 char (*) parameter; 180 dcl a_index fixed bin parameter; 181 182 183 call ioa_$rsnnl ("^a ^a ^a", audit_meter_info.name (a_index), (0), a_str1, a_str2, a_str3); 184 185 audit_meter_info.count (a_index) = active_hardcore_data$access_audit_count (a_index); 186 audit_meter_info.check_count (a_index) = active_hardcore_data$access_audit_check_count (a_index); 187 audit_meter_info.cpu_time (a_index) = active_hardcore_data$access_audit_cpu_time (a_index); 188 audit_meter_info.pagefaults (a_index) = active_hardcore_data$access_audit_pagefaults (a_index); 189 190 end copy_meters; 191 192 /* format: off */ 193 194 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 195 /* */ 196 /* GET_AUDIT_FLAGS - Entrypoint. */ 197 /* */ 198 /* This entry returns the process's audit flags. */ 199 /* */ 200 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 201 /* format: on */ 202 203 get_audit_flags: 204 entry (a_audit_flags); 205 206 a_audit_flags = pds$audit_flags; 207 208 return; 209 210 /* format: off */ 211 212 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 213 /* */ 214 /* SET_AUDIT_FLAGS - Entrypoint. */ 215 /* */ 216 /* This entry sets the process's audit flags. It is available only through hphcs_. */ 217 /* */ 218 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 219 /* format: on */ 220 221 set_audit_flags: 222 entry (a_audit_flags); 223 224 old_audit_flags = pds$audit_flags; 225 pds$audit_flags = a_audit_flags; 226 227 /* audit this event! */ 228 string (event_flags) = ""b; 229 event_flags.special_op = "1"b; 230 event_flags.priv_op = "1"b; 231 event_flags.grant = "1"b; 232 call access_audit_$log_general ("access_audit_util_", level$get (), string (event_flags), 233 access_operations_$process_audit_flags_modify, "", 0, null (), 0, 234 "Changed from ^w to ^w", old_audit_flags, pds$audit_flags); 235 236 /* since audit behaviour has changed, we must recalulate pds$throttle_segment_state_changes */ 237 /* as is done during process creation in act_proc */ 238 239 string (event_flags) = ""b; 240 event_flags.grant = "1"b; 241 event_flags.cc_10_100 = "1"b; 242 pds$throttle_segment_state_changes = 243 access_audit_$check_general (string (event_flags), "0"b /* null oper code */); 244 245 return; 246 247 /* format: off */ 248 /* begin include file - access_audit_flags.incl.pl1 */ 1 2 1 3 /* NOTE: All changes must be done also to access_audit_flags.incl.alm !!!!!! */ 1 4 1 5 /* Modified 85-01-14 by EJ Sharpe for n_audit_access_types, constants for 1 6* indexing into flags array */ 1 7 /* Modified 85-01-07 by EJ Sharpe for cleanup */ 1 8 /* Modified 84-11-16 by EJ Sharpe to add alternate dcl */ 1 9 1 10 /* The following structure describes the per-process audit 1 11*data which determines which events must be audited. */ 1 12 1 13 dcl 1 audit_flags based aligned, 1 14 2 objects (6) unal, /* n_audit_objects */ 1 15 3 grant_level fixed bin (2) uns unal, 1 16 3 deny_level fixed bin (2) uns unal, 1 17 2 pad bit (7) unal, 1 18 2 admin_ops bit (1) unal, 1 19 2 priv_ops bit (1) unal, 1 20 2 faults bit (1) unal, 1 21 2 cc_1_10 bit (1) unal, /* small channel */ 1 22 2 cc_10_100 bit (1) unal; /* moderate channel */ 1 23 1 24 dcl 1 audit_flags_alt based aligned, 1 25 2 objects (6) unal, /* n_audit_objects */ 1 26 3 grant_level fixed bin (2) uns unal, 1 27 3 deny_level fixed bin (2) uns unal, 1 28 2 pad bit (7) unal, 1 29 2 flags (5) bit (1) unal /* n_audit_flags */; 1 30 1 31 dcl n_audit_objects init (6) 1 32 fixed bin int static options (constant); 1 33 dcl n_audit_flags init (5) 1 34 fixed bin int static options (constant); 1 35 dcl n_audit_access_types init (3) 1 36 fixed bin int static options (constant); 1 37 1 38 /* constants for indexing into the "objects" array */ 1 39 dcl ( 1 40 FSOBJ_AUDIT_OBJECT_INDEX init (1), 1 41 FSATTR_AUDIT_OBJECT_INDEX init (2), 1 42 RCP_AUDIT_OBJECT_INDEX init (3), 1 43 ADMIN_AUDIT_OBJECT_INDEX init (4), 1 44 SPECIAL_AUDIT_OBJECT_INDEX init (5), 1 45 OTHER_AUDIT_OBJECT_INDEX init (6) 1 46 ) fixed bin int static options (constant); 1 47 1 48 /* constants for indexing into the flags array (in the alternate dcl) */ 1 49 dcl ( 1 50 ADMIN_OP_AUDIT_FLAG_INDEX init (1), 1 51 PRIV_OP_AUDIT_FLAG_INDEX init (2), 1 52 FAULTS_AUDIT_FLAG_INDEX init (3), 1 53 CC_1_10_AUDIT_FLAG_INDEX init (4), 1 54 CC_10_100_AUDIT_FLAG_INDEX init (5) 1 55 ) fixed bin int static options (constant); 1 56 1 57 /* constants which define the meaning of the level values / access types */ 1 58 dcl ( 1 59 NONE init (0), 1 60 MODIFY_ACCESS init (1), 1 61 MODIFY init (2), 1 62 READ init (3) 1 63 ) fixed bin (2) uns int static options (constant); 1 64 1 65 /* Note: "MODIFY" implies "MODIFY_ACCESS" as well; 1 66* "READ" implies "MODIFY" and "MODIFY_ACCESS" as well */ 1 67 1 68 /* Note: The size of the metering data in active_hardcore_data is 1 69* dependant upon the number of audit flags and objects. 1 70* Specifically, the number of metering buckets is: 1 71* n_audit_objects*2*n_audit_access_types+n_audit_flags+1 1 72* (the extra "1" is for debugging purposes) */ 1 73 1 74 /* end include file - access_audit_flags.incl.pl1 */ 248 249 /* begin include file - access_audit_eventflags.incl.pl1 */ 2 2 /* NOTE: This include file has an ALM counterpart made with cif. 2 3*Keep it up to date. */ 2 4 2 5 dcl 1 audit_event_flags based aligned, 2 6 2 special_op bit (1) unal, /* special sys operation */ 2 7 2 grant bit (1) unal, /* operation was successful */ 2 8 2 admin_op bit (1) unal, /* administrative operation */ 2 9 2 priv_op bit (1) unal, /* privileged operation */ 2 10 2 cc_1_10 bit (1) unal, /* small covert channel */ 2 11 2 cc_10_100 bit (1) unal, /* moderate covert channel */ 2 12 2 receiver bit (1) unal, /* on receiving end of channel */ 2 13 2 pad bit (29) unal; 2 14 2 15 /* end include file - access_audit_eventflags.incl.pl1 */ 249 250 /* begin include file - access_audit_names.incl.pl1 */ 3 2 3 3 /* Modified 84-11-19 by EJ Sharpe to add "None" as a level name */ 3 4 /* Modified 84-11-30 by EJ Sharpe to split into Long and Short format arrays */ 3 5 3 6 /* The order of the names in these arrays must be the same as the 3 7*ordering of the respective items in the audit_flags structure in 3 8*access_audit_flags.incl.pl1 */ 3 9 3 10 dcl Long_Object_Names (6) char (32) int static options (constant) 3 11 init ( 3 12 "File_System_Object", 3 13 "File_System_Attribute", 3 14 "RCP_Object", 3 15 "Administrative_Object", 3 16 "Special_Object", 3 17 "Other_Object"); 3 18 3 19 dcl Short_Object_Names (6) char (8) int static options (constant) 3 20 init ( 3 21 "fsobj", 3 22 "fsattr", 3 23 "rcp", 3 24 "admin", 3 25 "special", 3 26 "other"); 3 27 3 28 dcl Long_Level_Names (0:3) char (16) int static options (constant) 3 29 init ( 3 30 "No_Audit", 3 31 "Modify_Access", 3 32 "Modify", 3 33 "Read"); 3 34 3 35 dcl Short_Level_Names (0:3) char (2) int static options (constant) 3 36 init ( 3 37 "N", 3 38 "MA", 3 39 "M", 3 40 "R"); 3 41 3 42 dcl Long_Flag_Names (5) char (32) int static options (constant) 3 43 init ( 3 44 "Administrative_Operation", 3 45 "Privileged_Operation", 3 46 "ACV/IPR_Fault", 3 47 "Small_Covert_Channel", /* 1-10 bps */ 3 48 "Moderate_Covert_Channel"); /* 10-100 bps */ 3 49 3 50 dcl Short_Flag_Names (5) char (12) int static options (constant) 3 51 init ( 3 52 "admin_op", 3 53 "priv_op", 3 54 "fault", 3 55 "small_cc", 3 56 "moderate_cc"); 3 57 3 58 /* The order of the names in the following arrays must be the same 3 59*as the ordering of the respective itmes in the event_flags structure 3 60*in access_audit_eventflags.incl.pl1 */ 3 61 3 62 dcl Long_Event_Names (7) char (32) int static options (constant) 3 63 init ( 3 64 "Special_Operation", 3 65 "Operation_Granted", 3 66 "Administrative_Operation", 3 67 "Privileged_Operation", 3 68 "Small_Covert_Channel", 3 69 "Moderate_Covert_Channel", 3 70 "Receiver_On_Covert_Channel"); 3 71 3 72 dcl Short_Event_Names (7) char (12) int static options (constant) 3 73 init ( 3 74 "special_op", 3 75 "granted", 3 76 "admin_op", 3 77 "priv_op", 3 78 "small_cc", 3 79 "moderate_cc", 3 80 "receiver"); 3 81 3 82 /* end include files - access_audit_names.incl.pl1 */ 250 251 /* begin include file - access_audit_meter_info.incl.pl1 */ 4 2 4 3 /* audit logging and flag checking meters are returned in the 4 4* following structure */ 4 5 4 6 dcl audit_meter_info_ptr pointer; 4 7 dcl audit_meter_info_num fixed bin; 4 8 4 9 dcl 1 audit_meter_info based (audit_meter_info_ptr) aligned, 4 10 2 version char (8), 4 11 2 meters (audit_meter_info_num), 4 12 3 name char (32), 4 13 3 cpu_time fixed bin (71), 4 14 3 pagefaults fixed bin (71), 4 15 3 count fixed bin (35), 4 16 3 check_count fixed bin (35); 4 17 4 18 dcl audit_meter_info_version_1 char (8) init ("adtmtrv1") 4 19 internal static options (constant); 4 20 4 21 /* end include file - access_audit_meter_info.incl.pl1 */ 251 252 253 254 /* BEGIN MESSAGE DOCUMENTATION 255* 256* Message: 257* AUDIT (access_audit_util_): GRANTED modification of process audit flags ADDED_INFO 258* 259* S: $access_audit 260* 261* T: $run 262* 263* M: The specified user has invoked a privileged operation to change 264* the process audit flags. This may result in more or less audit 265* messages for that user. 266* 267* A: $notify_ssa 268* 269* END MESSAGE DOCUMENTATION */ 270 271 272 end access_audit_util_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0809.6 access_audit_util_.pl1 >spec>install>1112>access_audit_util_.pl1 248 1 01/30/85 1523.9 access_audit_flags.incl.pl1 >ldd>include>access_audit_flags.incl.pl1 249 2 01/30/85 1523.9 access_audit_eventflags.incl.pl1 >ldd>include>access_audit_eventflags.incl.pl1 250 3 01/30/85 1523.9 access_audit_names.incl.pl1 >ldd>include>access_audit_names.incl.pl1 251 4 01/30/85 1523.9 access_audit_meter_info.incl.pl1 >ldd>include>access_audit_meter_info.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. Long_Flag_Names 000002 constant char(32) initial array packed unaligned dcl 3-42 set ref 161* Short_Level_Names 000052 constant char(2) initial array packed unaligned dcl 3-35 set ref 148* 153* Short_Object_Names 000054 constant char(8) initial array packed unaligned dcl 3-19 set ref 148* 153* a_area_ptr parameter pointer dcl 44 ref 125 132 a_audit_flags parameter bit(36) dcl 45 set ref 203 206* 221 225 a_audit_meter_info_num parameter fixed bin(17,0) dcl 47 set ref 125 167* a_audit_meter_info_ptr parameter pointer dcl 48 set ref 125 168* a_code parameter fixed bin(35,0) dcl 46 set ref 125 171* a_index parameter fixed bin(17,0) dcl 180 ref 175 183 185 185 186 186 187 187 188 188 a_str1 parameter char packed unaligned dcl 178 set ref 175 183* a_str2 parameter char packed unaligned dcl 178 set ref 175 183* a_str3 parameter char packed unaligned dcl 178 set ref 175 183* access_audit_$check_general 000034 constant entry external dcl 107 ref 242 access_audit_$log_general 000036 constant entry external dcl 109 ref 232 access_operations_$process_audit_flags_modify 000010 external static bit(36) dcl 77 set ref 232* active_hardcore_data$access_audit_check_count 000016 external static fixed bin(35,0) array dcl 88 ref 186 active_hardcore_data$access_audit_count 000014 external static fixed bin(35,0) array dcl 86 ref 185 active_hardcore_data$access_audit_cpu_time 000020 external static fixed bin(71,0) array dcl 90 ref 187 active_hardcore_data$access_audit_num_meters 000012 external static fixed bin(17,0) dcl 84 ref 136 active_hardcore_data$access_audit_pagefaults 000022 external static fixed bin(35,0) array dcl 92 ref 188 addr builtin function dcl 69 ref 168 any_other 000110 stack reference condition dcl 70 ref 130 area based area(1024) dcl 64 ref 142 area_ptr 000100 automatic pointer dcl 53 set ref 132* 142 audit_event_flags based structure level 1 dcl 2-5 audit_meter_info based structure level 1 dcl 4-9 set ref 142 168 audit_meter_info_num 000120 automatic fixed bin(17,0) dcl 4-7 set ref 134* 136 142 165* 167 audit_meter_info_ptr 000116 automatic pointer dcl 4-6 set ref 142* 143 168 183 185 186 187 188 audit_meter_info_version_1 000000 constant char(8) initial packed unaligned dcl 4-18 ref 143 cc_10_100 0(05) 000103 automatic bit(1) level 2 packed packed unaligned dcl 55 set ref 241* check_count 17 based fixed bin(35,0) array level 3 dcl 4-9 set ref 186* code 000102 automatic fixed bin(35,0) dcl 54 set ref 128* 138* 169* 171 count 16 based fixed bin(35,0) array level 3 dcl 4-9 set ref 185* cpu_time 12 based fixed bin(71,0) array level 3 dcl 4-9 set ref 187* error_table_$unexpected_condition 000024 external static fixed bin(35,0) dcl 95 ref 128 error_table_$unimplemented_version 000026 external static fixed bin(35,0) dcl 97 ref 138 event_flags 000103 automatic structure level 1 dcl 55 set ref 228* 232 232 239* 242 242 grant 0(01) 000103 automatic bit(1) level 2 packed packed unaligned dcl 55 set ref 231* 240* i 000104 automatic fixed bin(17,0) dcl 57 set ref 146* 148 148 153 153* 159* 161 161* ioa_$rsnnl 000040 constant entry external dcl 111 ref 183 j 000105 automatic fixed bin(17,0) dcl 58 set ref 147* 148 148* 151* 153 153* level$get 000042 constant entry external dcl 112 ref 232 232 meters 2 based structure array level 2 dcl 4-9 n_audit_access_types constant fixed bin(17,0) initial dcl 1-35 ref 134 147 148 151 151 153 153 159 159 161 n_audit_flags constant fixed bin(17,0) initial dcl 1-33 ref 134 159 n_audit_objects constant fixed bin(17,0) initial dcl 1-31 ref 134 146 159 159 161 name 2 based char(32) array level 3 dcl 4-9 set ref 183* null builtin function dcl 71 ref 232 232 old_audit_flags 000106 automatic bit(36) dcl 59 set ref 224* 232* pagefaults 14 based fixed bin(71,0) array level 3 dcl 4-9 set ref 188* pds$audit_flags 000030 external static bit(36) dcl 100 set ref 206 224 225* 232* pds$throttle_segment_state_changes 000032 external static bit(1) dcl 101 set ref 242* priv_op 0(03) 000103 automatic bit(1) level 2 packed packed unaligned dcl 55 set ref 230* special_op 000103 automatic bit(1) level 2 packed packed unaligned dcl 55 set ref 229* string builtin function dcl 72 set ref 228* 232 232 239* 242 242 version based char(8) level 2 dcl 4-9 set ref 143* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ADMIN_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 ADMIN_OP_AUDIT_FLAG_INDEX internal static fixed bin(17,0) initial dcl 1-49 CC_10_100_AUDIT_FLAG_INDEX internal static fixed bin(17,0) initial dcl 1-49 CC_1_10_AUDIT_FLAG_INDEX internal static fixed bin(17,0) initial dcl 1-49 FAULTS_AUDIT_FLAG_INDEX internal static fixed bin(17,0) initial dcl 1-49 FSATTR_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 FSOBJ_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 Long_Event_Names internal static char(32) initial array packed unaligned dcl 3-62 Long_Level_Names internal static char(16) initial array packed unaligned dcl 3-28 Long_Object_Names internal static char(32) initial array packed unaligned dcl 3-10 MODIFY internal static fixed bin(2,0) initial unsigned dcl 1-58 MODIFY_ACCESS internal static fixed bin(2,0) initial unsigned dcl 1-58 NONE internal static fixed bin(2,0) initial unsigned dcl 1-58 OTHER_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 PRIV_OP_AUDIT_FLAG_INDEX internal static fixed bin(17,0) initial dcl 1-49 RCP_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 READ internal static fixed bin(2,0) initial unsigned dcl 1-58 SPECIAL_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 Short_Event_Names internal static char(12) initial array packed unaligned dcl 3-72 Short_Flag_Names internal static char(12) initial array packed unaligned dcl 3-50 audit_flags based structure level 1 dcl 1-13 audit_flags_alt based structure level 1 dcl 1-24 NAMES DECLARED BY EXPLICIT CONTEXT. GET_METERS_EXIT 000476 constant label dcl 171 set ref 130 139 access_audit_util_ 000150 constant entry external dcl 20 copy_meters 000672 constant entry internal dcl 175 ref 148 153 161 165 get_audit_flags 000505 constant entry external dcl 203 get_audit_meters 000163 constant entry external dcl 125 set_audit_flags 000521 constant entry external dcl 221 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1330 1374 1036 1340 Length 1674 1036 44 264 272 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME access_audit_util_ 212 external procedure is an external procedure. on unit on line 130 64 on unit copy_meters internal procedure shares stack frame of external procedure access_audit_util_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME access_audit_util_ 000100 area_ptr access_audit_util_ 000102 code access_audit_util_ 000103 event_flags access_audit_util_ 000104 i access_audit_util_ 000105 j access_audit_util_ 000106 old_audit_flags access_audit_util_ 000116 audit_meter_info_ptr access_audit_util_ 000120 audit_meter_info_num access_audit_util_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac tra_ext_1 mpfx2 enable_op ext_entry int_entry op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. access_audit_$check_general access_audit_$log_general ioa_$rsnnl level$get THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. access_operations_$process_audit_flags_modify active_hardcore_data$access_audit_check_count active_hardcore_data$access_audit_count active_hardcore_data$access_audit_cpu_time active_hardcore_data$access_audit_num_meters active_hardcore_data$access_audit_pagefaults error_table_$unexpected_condition error_table_$unimplemented_version pds$audit_flags pds$throttle_segment_state_changes LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 20 000147 125 000155 128 000170 130 000172 132 000211 134 000215 136 000222 138 000225 139 000227 142 000230 143 000237 146 000242 147 000251 148 000261 150 000327 151 000331 153 000341 155 000410 156 000412 159 000414 161 000430 162 000460 165 000462 167 000470 168 000473 169 000475 171 000476 173 000501 203 000502 206 000512 208 000516 221 000517 224 000526 225 000531 228 000534 229 000535 230 000537 231 000541 232 000543 239 000645 240 000646 241 000650 242 000652 245 000671 175 000672 183 000715 185 000764 186 000775 187 001001 188 001006 190 001012 ----------------------------------------------------------- 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