COMPILATION LISTING OF SEGMENT set_process_audit_flags Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/23/86 1028.3 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 4* * * 5* *********************************************************** */ 6 7 8 /****^ HISTORY COMMENTS: 9* 1) change(86-03-17,EJSharpe), approve(86-03-17,MCR7364), 10* audit(86-03-21,Margolin), install(86-04-23,MR12.0-1045): 11* Initial coding (taken from version which supported functional test 12* debugging). 13* END HISTORY COMMENTS */ 14 15 /* format: style4,indattr */ 16 17 set_process_audit_flags: 18 procedure (); 19 20 21 /* * 22* * SET_PROCESS_AUDIT_FLAGS 23* * 24* * This module contains the privileged commands which manipulate 25* * the process audit flags. 26* * 27* * display_process_audit_flags {-long|-brief} 28* * Displays the audit flags for the current process. 29* * 30* * set_process_audit_flags {STR} 31* * Sets the audit flags to the given string. If the 32* * string is not supplied, a request loop is entered 33* * where the current values are displayed, and new values 34* * are requested. Flags not specified are turned off. 35* * A "." terminates the loop. 36* * 37* * edit_process_audit_flags {STR} 38* * Operates like set_process_audit_flags but changes 39* * only the values of flags specified, leaving others 40* * intact. 41* * 42* * The commands accept the following keywords in lieu of the 43* * audit flags string: 44* * 45* * default - uses default values from sys_admin_data 46* * all - turns all flags on and levels to maximum 47* * none - turns all flags off and levels to minimum 48* * 49* * Notes: 50* * As a future enhancement, the commands should accept a "-user STR" 51* * argument which would allow manipulation of audit flags for other 52* * live processes. 53* * 54* * History: 55* * 1985-05-22, EJ Sharpe: initial coding 56* * 1985-07-18, EJ Sharpe: cosmetic cleanup 57* * 58**/ 59 60 /* AUTOMATIC */ 61 62 dcl ME automatic char (32); /* self identification */ 63 dcl argl automatic fixed bin (21); /* command arg length */ 64 dcl arglp automatic ptr; /* command arg list ptr */ 65 dcl argp automatic ptr; /* command arg ptr */ 66 dcl auto_audit_flags automatic bit (36) aligned; /* the binary flags */ 67 dcl code automatic fixed bin (35); /* status code */ 68 dcl edit_sw automatic bit (1) aligned; /* to distinguish the set and edit entries */ 69 dcl flags_string automatic char (1024); /* audit flags converted from binary */ 70 dcl input_flags automatic char (512); /* input audit flags */ 71 dcl long_sw automatic bit (1); /* controls whether display of flags is long format */ 72 dcl nargs automatic fixed bin; /* number of command line arguments */ 73 dcl sadp automatic pointer; /* pointer to sys_admin_data */ 74 75 76 /* BASED */ 77 78 dcl arg char (argl) based (argp); /* command argument */ 79 80 81 /* ENTRIES */ 82 83 dcl access_audit_gate_$get_process_audit_flags entry (bit (36) aligned); 84 dcl com_err_ entry () options (variable); 85 dcl command_query_ entry () options (variable); 86 dcl convert_access_audit_flags_$to_string entry (bit (36) aligned, char (*), fixed bin (35)); 87 dcl convert_access_audit_flags_$to_string_long entry (bit (36) aligned, char (*), fixed bin (21), fixed bin (35)); 88 dcl convert_access_audit_flags_$edit_from_string entry (char (*), bit (36) aligned, fixed bin (35)); 89 dcl convert_access_audit_flags_$from_string entry (char (*), bit (36) aligned, fixed bin (35)); 90 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 91 dcl cu_$arg_list_ptr entry (ptr); 92 dcl cu_$arg_ptr_rel entry (fixed bin, ptr, fixed bin (21), fixed bin (35), ptr); 93 dcl ioa_ entry () options (variable); 94 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, bit (1) aligned); 95 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 96 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 97 dcl system_privilege_$set_process_audit_flags entry (bit (36) aligned); 98 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 99 100 101 /* MISC */ 102 103 dcl error_table_$bad_arg fixed bin (35) external; 104 105 dcl PROMPT_EXPLANATION char (50) init ("Enter audit flags string or ""."" to exit.^/") 106 static options (constant); 107 108 dcl addr builtin; 109 dcl length builtin; 110 dcl null builtin; 111 dcl rtrim builtin; 112 113 /* The flag setting procedures */ 114 115 /* set_process_audit_flags: */ 116 spaf: 117 entry (); 118 119 call cu_$arg_list_ptr (arglp); 120 121 call SETUP ("set_process_audit_flags"); 122 123 edit_sw = "0"b; 124 125 goto SET_EDIT_COMMON; 126 127 128 edit_process_audit_flags: 129 epaf: 130 entry (); 131 132 call cu_$arg_list_ptr (arglp); 133 134 call SETUP ("edit_process_audit_flags"); 135 136 edit_sw = "1"b; 137 138 139 SET_EDIT_COMMON: 140 141 input_flags = ""; 142 143 call PROCESS_SET_EDIT_ARGS (); 144 145 /*** get current flags */ 146 call access_audit_gate_$get_process_audit_flags (auto_audit_flags); 147 148 if input_flags ^= "" 149 then do; /* new flags given on command line */ 150 call PROCESS_INPUT_FLAGS (input_flags, auto_audit_flags, "0"b); 151 152 call system_privilege_$set_process_audit_flags (auto_audit_flags); 153 end; 154 155 else do; /* caller wants interactive loop */ 156 157 call convert_access_audit_flags_$to_string (auto_audit_flags, flags_string, code); 158 if code ^= 0 159 then call FATAL_ERROR (code, "Process audit flags in error."); 160 161 call ioa_ ("current flags: ^a", flags_string); 162 163 input_flags = ""; /* prime the loop */ 164 /*** set up for the queries */ 165 query_info.version = query_info_version_6; 166 query_info.suppress_spacing = "1"b; 167 query_info.prompt_after_explanation = "1"b; 168 query_info.suppress_name_sw = "1"b; 169 query_info.explanation_ptr = addr (PROMPT_EXPLANATION); 170 query_info.explanation_len = length (rtrim (PROMPT_EXPLANATION)); 171 172 do while (input_flags ^= "."); 173 call command_query_ (addr (query_info), input_flags, ME, "enter flags: "); 174 175 if input_flags ^= "." 176 then do; 177 call PROCESS_INPUT_FLAGS (input_flags, auto_audit_flags, "1"b); 178 179 call convert_access_audit_flags_$to_string (auto_audit_flags, flags_string, code); 180 181 if code ^= 0 182 then call FATAL_ERROR (code, "Internal error: converted flags in error."); 183 184 call ioa_ ("^/new flags: ^a", flags_string); 185 end; 186 end; /* loop */ 187 188 /*** we arrive here with the converted flags to be set for the process */ 189 190 call system_privilege_$set_process_audit_flags (auto_audit_flags); 191 192 end; 193 194 return; 195 196 /* The flag display procedure */ 197 198 display_process_audit_flags: 199 dpaf: 200 entry (); 201 202 call cu_$arg_list_ptr (arglp); 203 204 call SETUP ("display_process_audit_flags"); 205 206 call PROCESS_DISPLAY_ARGS (); 207 208 call access_audit_gate_$get_process_audit_flags (auto_audit_flags); 209 flags_string = ""; 210 if long_sw 211 then call convert_access_audit_flags_$to_string_long (auto_audit_flags, flags_string, (0), code); 212 else call convert_access_audit_flags_$to_string (auto_audit_flags, flags_string, code); 213 214 if code ^= 0 215 then call FATAL_ERROR (code, "Process audit flags in error."); 216 else call ioa_ ("^a", flags_string); 217 218 return; 219 220 221 SETUP: 222 procedure (P_entrypoint_name); 223 224 dcl P_entrypoint_name char (*) parameter; /* entrypoint code */ 225 226 ME = P_entrypoint_name; 227 228 call cu_$arg_count (nargs, code); 229 if code ^= 0 230 then call FATAL_ERROR (code); 231 232 233 return; 234 235 end SETUP; 236 237 238 PROCESS_DISPLAY_ARGS: 239 procedure; /* procedure to process args for the display entry */ 240 241 dcl arg_index automatic fixed bin; /* loop index */ 242 243 244 /*** All we may have is the "-long" or "-brief" args */ 245 246 long_sw = "0"b; 247 248 do arg_index = 1 to nargs; 249 call cu_$arg_ptr_rel (arg_index, argp, argl, code, arglp); 250 if code ^= 0 251 then call FATAL_ERROR (code, "Unexpected error getting argument."); 252 253 if arg = "-long" | arg = "-lg" 254 then long_sw = "1"b; 255 else if arg = "-brief" | arg = "-bf" 256 then long_sw = "0"b; 257 else goto USAGE; 258 end; 259 260 return; 261 262 USAGE: 263 call FATAL_ERROR (error_table_$bad_arg, "Usage is: ^a {-long|-brief}", ME); 264 265 return; 266 267 end PROCESS_DISPLAY_ARGS; 268 269 270 PROCESS_SET_EDIT_ARGS: 271 procedure (); /* procedure to process args for the set and edit entries */ 272 273 if nargs > 1 274 then goto USAGE; 275 276 277 if nargs = 1 278 then do; 279 call cu_$arg_ptr_rel (1, argp, argl, code, arglp); 280 if code ^= 0 281 then call FATAL_ERROR (code, "Unexpected error getting arg."); 282 283 input_flags = arg; 284 end; 285 286 return; 287 288 USAGE: 289 call FATAL_ERROR (0, "Usage is: ^a {FLAGS_STR}", ME); 290 291 return; 292 293 end PROCESS_SET_EDIT_ARGS; 294 295 296 FATAL_ERROR: 297 procedure options (variable); 298 299 300 /* Automatic */ 301 302 dcl ec_ptr automatic ptr; /* pointer to error code argument */ 303 dcl fatal_error automatic bit (1); /* indicates which entry we approached */ 304 dcl ignore_len automatic fixed bin (21); /* dummy argument */ 305 dcl l_arglp automatic ptr; /* arg list ptr for this proc */ 306 dcl l_code automatic fixed bin (35); /* error code to use in this proc */ 307 dcl message_buff automatic char (512); /* buffer for formatting caller's message */ 308 dcl message_ptr automatic ptr; /* pointer to the formatted message */ 309 dcl message_len automatic fixed bin (21); /* length of formatted message */ 310 311 312 /* Based */ 313 314 dcl ec fixed bin (35) based (ec_ptr); /* caller's error code (first arg) */ 315 dcl message char (message_len) based (message_ptr); /* formatted message */ 316 317 318 fatal_error = "1"b; 319 goto ERROR_JOIN; 320 WARNING: 321 entry options (variable); 322 323 fatal_error = "0"b; 324 325 ERROR_JOIN: 326 327 message_ptr = addr (message_buff); 328 message_len = length (message_buff); 329 330 call cu_$arg_list_ptr (l_arglp); 331 call cu_$arg_ptr_rel (1, ec_ptr, ignore_len, l_code, l_arglp); 332 if l_code ^= 0 333 then do; 334 call com_err_ (l_code, ME, "Internal error: Error occurred during error handling."); 335 goto MAIN_EXIT; /* punt */ 336 end; 337 338 call ioa_$general_rs (l_arglp, 2, 3, message, message_len, "0"b, "0"b); 339 340 call com_err_ (ec, ME, message); 341 342 if fatal_error 343 then goto MAIN_EXIT; 344 345 end FATAL_ERROR; 346 347 MAIN_EXIT: 348 return; 349 350 351 PROCESS_INPUT_FLAGS: 352 procedure (P_input, P_audit_flags, P_interactive); 353 354 dcl P_input char (*) parameter; 355 dcl P_audit_flags bit (36) aligned parameter; 356 dcl P_interactive bit (1) aligned parameter; 357 358 if P_input = "default" 359 then call GET_DEFAULT_FLAGS (P_audit_flags); 360 else if P_input = "all" 361 then call SET_ALL_FLAGS_ON (P_audit_flags); 362 else if P_input = "none" 363 then call SET_ALL_FLAGS_OFF (P_audit_flags); 364 else do; /* we're supplied with a possible set of flags */ 365 if edit_sw 366 then call convert_access_audit_flags_$edit_from_string (P_input, P_audit_flags, code); 367 else call convert_access_audit_flags_$from_string (P_input, P_audit_flags, code); 368 369 if code ^= 0 370 then if P_interactive 371 then call WARNING (code, "Input was: ^a.", P_input); 372 else call FATAL_ERROR (code, "Input was: ^a.", P_input); 373 end; 374 375 return; 376 377 378 GET_DEFAULT_FLAGS: 379 proc (P_flags); 380 381 dcl P_flags bit (36) aligned parameter; 382 383 dcl ADMIN_DIR char (168) init (">udd>SysAdmin>admin") static options (constant); 384 dcl SYS_ADMIN_DATA char (32) init ("sys_admin_data") static options (constant); 385 dcl ignore_bc automatic fixed bin (24); /* dummy argument */ 386 387 dcl cleanup condition; 388 389 sadp = null (); /* pointer is global due to incl requirement */ 390 391 on cleanup call CLEAN_UP (); 392 393 call initiate_file_ (ADMIN_DIR, SYS_ADMIN_DATA, R_ACCESS, sadp, ignore_bc, code); 394 if code ^= 0 395 then call WARNING (code, "Could not open ^a.", pathname_ (ADMIN_DIR, SYS_ADMIN_DATA)); 396 else do; 397 P_flags = sys_admin_data.default_audit_flags; 398 call CLEAN_UP (); /* terminate reference */ 399 end; 400 401 return; 402 403 CLEAN_UP: 404 proc (); 405 406 dcl tsadp automatic pointer; /* temporary */ 407 408 tsadp = sadp; 409 if tsadp ^= null () 410 then do; 411 sadp = null (); 412 call terminate_file_ (tsadp, (0), TERM_FILE_TERM, code); 413 end; 414 415 end CLEAN_UP; 416 417 418 end GET_DEFAULT_FLAGS; 419 420 421 SET_ALL_FLAGS_ON: 422 procedure (P_flags); 423 424 dcl P_flags bit (36) aligned parameter; 425 426 dcl flags automatic bit (36) aligned; 427 428 flags = "777777777777"b3; 429 addr (flags) -> audit_flags.pad = "0"b; /* clear pad */ 430 431 P_flags = flags; 432 433 return; 434 435 end SET_ALL_FLAGS_ON; 436 437 438 SET_ALL_FLAGS_OFF: 439 procedure (P_flags); 440 441 dcl P_flags bit (36) aligned parameter; 442 443 P_flags = "0"b; /* this one's easy! */ 444 445 return; 446 447 end SET_ALL_FLAGS_OFF; 448 449 end PROCESS_INPUT_FLAGS; 450 1 1 /* 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 */ 451 452 2 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 453 454 3 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 3 2 /* format: style2,^inddcls,idind32 */ 3 3 3 4 declare 1 terminate_file_switches based, 3 5 2 truncate bit (1) unaligned, 3 6 2 set_bc bit (1) unaligned, 3 7 2 terminate bit (1) unaligned, 3 8 2 force_write bit (1) unaligned, 3 9 2 delete bit (1) unaligned; 3 10 3 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 3 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 3 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 3 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 3 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 3 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 3 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 3 18 3 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 455 456 4 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 4 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 4 3 /* version number changed to 4, 08/10/78 WOS */ 4 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 4 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 4 6 4 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 4 8 2 version fixed bin, /* version of this structure - must be set, see below */ 4 9 2 switches aligned, /* various bit switch values */ 4 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 4 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 4 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 4 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 4 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 4 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 4 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 4 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 4 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 4 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 4 20 4 21 /* Limit of data defined for version 2 */ 4 22 4 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 4 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 4 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 4 26 /* minimum of 30 seconds required for repeat */ 4 27 /* otherwise, no repeat will occur */ 4 28 /* Limit of data defined for version 4 */ 4 29 4 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 4 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 4 32 4 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 4 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 4 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 4 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 4 37 4 38 /* END INCLUDE FILE query_info.incl.pl1 */ 457 458 5 1 /* BEGIN INCLUDE FILE ... sys_admin_data.incl.pl1 */ 5 2 5 3 /* This data base is writeable by all system administrators. 5 4* It resides in the working directory of the system administrators. 5 5* The important item in this data base is "lock", which is used to prevent 5 6* two administrators from modifying the system administration data bases simultaneously. */ 5 7 5 8 /* Modified 1984-12-14 by EJ Sharpe to add default_audit_flags, and remove log_control */ 5 9 5 10 dcl 1 sys_admin_data based (sadp) aligned, 5 11 2 lock bit (36), 5 12 2 locker char (24), /* name of person using table */ 5 13 2 sadxx fixed bin, 5 14 2 time_locked fixed bin (71), 5 15 2 pntno fixed bin, 5 16 2 pnt_entries_to_install bit (1), 5 17 2 smf_entries_to_install bit (1), 5 18 2 pad1 (97) fixed bin, /* was log_control stuff before MR11 */ 5 19 2 user_accounts_office char (64), 5 20 2 user_accounts_addr char (64), 5 21 2 user_accounts_phone char (16), 5 22 2 mailing_banner (3) char (10), /* Used by mailing_page_ */ 5 23 2 default_proj_attributes bit (36), /* Used by new_proj */ 5 24 2 default_proj_ring1 fixed bin, /* .. */ 5 25 2 default_proj_ring2 fixed bin, /* .. */ 5 26 2 default_proj_group char (8), /* .. */ 5 27 2 default_proj_grace fixed bin, /* .. */ 5 28 2 default_audit_flags bit (36) aligned; /* initial set of flags for new_user and edit_proj */ 5 29 5 30 /* END INCLUDE FILE .. sys_admin_data.incl.pl1 */ 459 460 461 end set_process_audit_flags; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/23/86 1028.0 set_process_audit_flags.pl1 >special_ldd>install>MR12.0-1045>set_process_audit_flags.pl1 451 1 01/30/85 1523.9 access_audit_flags.incl.pl1 >ldd>include>access_audit_flags.incl.pl1 453 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 455 3 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 457 4 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 459 5 01/30/85 1523.9 sys_admin_data.incl.pl1 >ldd>include>sys_admin_data.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. ADMIN_DIR 000010 constant char(168) initial unaligned dcl 383 set ref 393* 394* 394* ME 000100 automatic char(32) unaligned dcl 62 set ref 173* 226* 262* 288* 334* 340* PROMPT_EXPLANATION 000063 constant char(50) initial unaligned dcl 105 set ref 169 170 P_audit_flags parameter bit(36) dcl 355 set ref 351 358* 360* 362* 365* 367* P_entrypoint_name parameter char unaligned dcl 224 ref 221 226 P_flags parameter bit(36) dcl 424 in procedure "SET_ALL_FLAGS_ON" set ref 421 431* P_flags parameter bit(36) dcl 441 in procedure "SET_ALL_FLAGS_OFF" set ref 438 443* P_flags parameter bit(36) dcl 381 in procedure "GET_DEFAULT_FLAGS" set ref 378 397* P_input parameter char unaligned dcl 354 set ref 351 358 360 362 365* 367* 369* 372* P_interactive parameter bit(1) dcl 356 ref 351 369 R_ACCESS 000140 constant bit(3) initial unaligned dcl 2-11 set ref 393* SYS_ADMIN_DATA 000000 constant char(32) initial unaligned dcl 384 set ref 393* 394* 394* TERM_FILE_TERM 000062 constant bit(3) initial unaligned dcl 3-14 set ref 412* access_audit_gate_$get_process_audit_flags 000010 constant entry external dcl 83 ref 146 208 addr builtin function dcl 108 ref 169 173 173 325 429 answer_iocbp 6 000726 automatic pointer initial level 2 dcl 4-7 set ref 4-7* arg based char unaligned dcl 78 ref 253 253 255 255 283 arg_index 000760 automatic fixed bin(17,0) dcl 241 set ref 248* 249* argl 000110 automatic fixed bin(21,0) dcl 63 set ref 249* 253 253 255 255 279* 283 arglp 000112 automatic pointer dcl 64 set ref 119* 132* 202* 249* 279* argp 000114 automatic pointer dcl 65 set ref 249* 253 253 255 255 279* 283 audit_flags based structure level 1 dcl 1-13 auto_audit_flags 000116 automatic bit(36) dcl 66 set ref 146* 150* 152* 157* 177* 179* 190* 208* 210* 212* cleanup 000102 stack reference condition dcl 387 ref 391 code 000117 automatic fixed bin(35,0) dcl 67 set ref 157* 158 158* 179* 181 181* 210* 212* 214 214* 228* 229 229* 249* 250 250* 279* 280 280* 365* 367* 369 369* 372* 393* 394 394* 412* com_err_ 000012 constant entry external dcl 84 ref 334 340 command_query_ 000014 constant entry external dcl 85 ref 173 convert_access_audit_flags_$edit_from_string 000022 constant entry external dcl 88 ref 365 convert_access_audit_flags_$from_string 000024 constant entry external dcl 89 ref 367 convert_access_audit_flags_$to_string 000016 constant entry external dcl 86 ref 157 179 212 convert_access_audit_flags_$to_string_long 000020 constant entry external dcl 87 ref 210 cp_escape_control 1(02) 000726 automatic bit(2) initial level 3 packed unaligned dcl 4-7 set ref 4-7* cu_$arg_count 000026 constant entry external dcl 90 ref 228 cu_$arg_list_ptr 000030 constant entry external dcl 91 ref 119 132 202 330 cu_$arg_ptr_rel 000032 constant entry external dcl 92 ref 249 279 331 default_audit_flags 241 based bit(36) level 2 dcl 5-10 ref 397 ec based fixed bin(35,0) dcl 314 set ref 340* ec_ptr 000100 automatic pointer dcl 302 set ref 331* 340 edit_sw 000120 automatic bit(1) dcl 68 set ref 123* 136* 365 error_table_$bad_arg 000050 external static fixed bin(35,0) dcl 103 set ref 262* explanation_len 14 000726 automatic fixed bin(21,0) initial level 2 dcl 4-7 set ref 170* 4-7* explanation_ptr 12 000726 automatic pointer initial level 2 dcl 4-7 set ref 169* 4-7* fatal_error 000102 automatic bit(1) unaligned dcl 303 set ref 318* 323* 342 flags 001004 automatic bit(36) dcl 426 set ref 428* 429 431 flags_string 000121 automatic char(1024) unaligned dcl 69 set ref 157* 161* 179* 184* 209* 210* 212* 216* ignore_bc 000100 automatic fixed bin(24,0) dcl 385 set ref 393* ignore_len 000103 automatic fixed bin(21,0) dcl 304 set ref 331* initiate_file_ 000040 constant entry external dcl 95 ref 393 input_flags 000521 automatic char(512) unaligned dcl 70 set ref 139* 148 150* 163* 172 173* 175 177* 283* ioa_ 000034 constant entry external dcl 93 ref 161 184 216 ioa_$general_rs 000036 constant entry external dcl 94 ref 338 l_arglp 000104 automatic pointer dcl 305 set ref 330* 331* 338* l_code 000106 automatic fixed bin(35,0) dcl 306 set ref 331* 332 334* length builtin function dcl 109 ref 170 328 literal_sw 1(05) 000726 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 4-7* long_sw 000721 automatic bit(1) unaligned dcl 71 set ref 210 246* 253* 255* message based char unaligned dcl 315 set ref 338* 340* message_buff 000107 automatic char(512) unaligned dcl 307 set ref 325 328 message_len 000312 automatic fixed bin(21,0) dcl 309 set ref 328* 338 338 338* 340 340 message_ptr 000310 automatic pointer dcl 308 set ref 325* 338 340 nargs 000722 automatic fixed bin(17,0) dcl 72 set ref 228* 248 273 277 null builtin function dcl 110 ref 4-7 4-7 4-7 389 409 411 pad 0(24) based bit(7) level 2 packed unaligned dcl 1-13 set ref 429* padding 1(07) 000726 automatic bit(29) initial level 3 packed unaligned dcl 4-7 set ref 4-7* pathname_ 000042 constant entry external dcl 96 ref 394 394 prompt_after_explanation 1(06) 000726 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 167* 4-7* query_code 3 000726 automatic fixed bin(35,0) initial level 2 dcl 4-7 set ref 4-7* query_info 000726 automatic structure level 1 dcl 4-7 set ref 173 173 query_info_version_6 constant fixed bin(17,0) initial dcl 4-36 ref 165 question_iocbp 4 000726 automatic pointer initial level 2 dcl 4-7 set ref 4-7* repeat_time 10 000726 automatic fixed bin(71,0) initial level 2 dcl 4-7 set ref 4-7* rtrim builtin function dcl 111 ref 170 sadp 000724 automatic pointer dcl 73 set ref 389* 393* 397 408 411* status_code 2 000726 automatic fixed bin(35,0) initial level 2 dcl 4-7 set ref 4-7* suppress_name_sw 1(01) 000726 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 168* 4-7* suppress_spacing 1(04) 000726 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 166* 4-7* switches 1 000726 automatic structure level 2 dcl 4-7 sys_admin_data based structure level 1 dcl 5-10 system_privilege_$set_process_audit_flags 000044 constant entry external dcl 97 ref 152 190 terminate_file_ 000046 constant entry external dcl 98 ref 412 tsadp 000100 automatic pointer dcl 406 set ref 408* 409 412* version 000726 automatic fixed bin(17,0) level 2 dcl 4-7 set ref 165* yes_or_no_sw 1 000726 automatic bit(1) initial level 3 packed unaligned dcl 4-7 set ref 4-7* 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 A_ACCESS internal static bit(3) initial unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 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 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-33 E_ACCESS internal static bit(3) initial unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 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 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 M_ACCESS internal static bit(3) initial unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 NONE internal static fixed bin(2,0) initial unsigned dcl 1-58 N_ACCESS internal static bit(3) initial unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 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 REW_ACCESS internal static bit(3) initial unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS internal static bit(3) initial unaligned dcl 2-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SPECIAL_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 S_ACCESS internal static bit(3) initial unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TERM_FILE_BC internal static bit(2) initial unaligned dcl 3-12 TERM_FILE_DELETE internal static bit(5) initial unaligned dcl 3-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 3-16 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 3-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 3-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial unaligned dcl 3-15 W_ACCESS internal static bit(3) initial unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 audit_flags_alt based structure level 1 dcl 1-24 n_audit_access_types internal static fixed bin(17,0) initial dcl 1-35 n_audit_flags internal static fixed bin(17,0) initial dcl 1-33 n_audit_objects internal static fixed bin(17,0) initial dcl 1-31 query_info_version_3 internal static fixed bin(17,0) initial dcl 4-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 4-34 query_info_version_5 internal static fixed bin(17,0) initial dcl 4-35 terminate_file_switches based structure level 1 packed unaligned dcl 3-4 NAMES DECLARED BY EXPLICIT CONTEXT. CLEAN_UP 002303 constant entry internal dcl 403 ref 391 398 ERROR_JOIN 001525 constant label dcl 325 ref 319 FATAL_ERROR 001506 constant entry internal dcl 296 ref 158 181 214 229 250 262 280 288 372 GET_DEFAULT_FLAGS 002125 constant entry internal dcl 378 ref 358 MAIN_EXIT 001211 constant label dcl 347 ref 335 342 PROCESS_DISPLAY_ARGS 001254 constant entry internal dcl 238 ref 206 PROCESS_INPUT_FLAGS 001717 constant entry internal dcl 351 ref 150 177 PROCESS_SET_EDIT_ARGS 001403 constant entry internal dcl 270 ref 143 SETUP 001212 constant entry internal dcl 221 ref 121 134 204 SET_ALL_FLAGS_OFF 002363 constant entry internal dcl 438 ref 362 SET_ALL_FLAGS_ON 002352 constant entry internal dcl 421 ref 360 SET_EDIT_COMMON 000461 constant label dcl 139 ref 125 USAGE 001460 constant label dcl 288 in procedure "PROCESS_SET_EDIT_ARGS" ref 273 USAGE 001356 constant label dcl 262 in procedure "PROCESS_DISPLAY_ARGS" ref 255 WARNING 001517 constant entry internal dcl 320 ref 369 394 display_process_audit_flags 001037 constant entry external dcl 198 dpaf 001027 constant entry external dcl 198 edit_process_audit_flags 000434 constant entry external dcl 128 epaf 000424 constant entry external dcl 128 set_process_audit_flags 000366 constant entry external dcl 17 spaf 000376 constant entry external dcl 116 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2754 3026 2422 2764 Length 3362 2422 52 320 332 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME set_process_audit_flags 720 external procedure is an external procedure. SETUP internal procedure shares stack frame of external procedure set_process_audit_flags. PROCESS_DISPLAY_ARGS internal procedure shares stack frame of external procedure set_process_audit_flags. PROCESS_SET_EDIT_ARGS internal procedure shares stack frame of external procedure set_process_audit_flags. FATAL_ERROR 282 internal procedure is declared options(variable). PROCESS_INPUT_FLAGS internal procedure shares stack frame of external procedure set_process_audit_flags. GET_DEFAULT_FLAGS 170 internal procedure enables or reverts conditions. on unit on line 391 64 on unit CLEAN_UP 86 internal procedure is called by several nonquick procedures. SET_ALL_FLAGS_ON internal procedure shares stack frame of external procedure set_process_audit_flags. SET_ALL_FLAGS_OFF internal procedure shares stack frame of external procedure set_process_audit_flags. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME CLEAN_UP 000100 tsadp CLEAN_UP FATAL_ERROR 000100 ec_ptr FATAL_ERROR 000102 fatal_error FATAL_ERROR 000103 ignore_len FATAL_ERROR 000104 l_arglp FATAL_ERROR 000106 l_code FATAL_ERROR 000107 message_buff FATAL_ERROR 000310 message_ptr FATAL_ERROR 000312 message_len FATAL_ERROR GET_DEFAULT_FLAGS 000100 ignore_bc GET_DEFAULT_FLAGS set_process_audit_flags 000100 ME set_process_audit_flags 000110 argl set_process_audit_flags 000112 arglp set_process_audit_flags 000114 argp set_process_audit_flags 000116 auto_audit_flags set_process_audit_flags 000117 code set_process_audit_flags 000120 edit_sw set_process_audit_flags 000121 flags_string set_process_audit_flags 000521 input_flags set_process_audit_flags 000721 long_sw set_process_audit_flags 000722 nargs set_process_audit_flags 000724 sadp set_process_audit_flags 000726 query_info set_process_audit_flags 000760 arg_index PROCESS_DISPLAY_ARGS 001004 flags SET_ALL_FLAGS_ON THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return tra_ext enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. access_audit_gate_$get_process_audit_flags com_err_ command_query_ convert_access_audit_flags_$edit_from_string convert_access_audit_flags_$from_string convert_access_audit_flags_$to_string convert_access_audit_flags_$to_string_long cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr_rel initiate_file_ ioa_ ioa_$general_rs pathname_ system_privilege_$set_process_audit_flags terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 4 7 000333 17 000365 116 000374 119 000404 121 000413 123 000421 125 000422 128 000423 132 000442 134 000451 136 000457 139 000461 143 000464 146 000465 148 000474 150 000500 152 000522 153 000531 157 000532 158 000553 161 000574 163 000617 165 000622 166 000624 167 000626 168 000630 169 000632 170 000634 172 000646 173 000652 175 000705 177 000711 179 000733 181 000754 184 000775 186 001015 190 001016 194 001025 198 001026 202 001045 204 001054 206 001062 208 001063 209 001072 210 001075 212 001126 214 001147 216 001171 218 001210 347 001211 221 001212 226 001223 228 001230 229 001241 233 001253 238 001254 246 001255 248 001256 249 001265 250 001304 253 001325 255 001342 258 001353 260 001355 262 001356 265 001402 270 001403 273 001404 277 001407 279 001410 280 001431 283 001452 286 001457 288 001460 291 001504 296 001505 318 001513 319 001515 320 001516 323 001524 325 001525 328 001527 330 001531 331 001540 332 001561 334 001563 335 001610 338 001613 340 001664 342 001711 345 001716 351 001717 358 001730 360 001745 362 001760 365 001773 367 002020 369 002042 372 002076 375 002123 378 002124 389 002132 391 002135 393 002157 394 002215 397 002271 398 002275 401 002301 403 002302 408 002310 409 002314 411 002320 412 002324 415 002351 421 002352 428 002354 429 002356 431 002360 433 002362 438 002363 443 002365 445 002366 ----------------------------------------------------------- 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