COMPILATION LISTING OF SEGMENT access_audit_log_fault_ 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 1014.0 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_log_fault_: 21 log_fault: 22 procedure (a_mc_ptr); 23 24 /* format: off */ 25 /****** 26* Revisions: 27* 1985-04-08 KP Loepere - use fs_modes at all times for effective modes. 28* 1985-03-04 EJ Sharpe - remove national chars, select proper sorting class for messages 29* 1985-01-22 EJ Sharpe - changes per code audit, reformat 30* 1985-01-13 EJ Sharpe - added message documentation, fixed some msgs 31* 1985-01-11 EJ Sharpe - fixed dir unlocking oversight 32* 1985-01-07 EJ Sharpe - extracted from access_audit_ 33*******/ 34 35 36 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 37 /* */ 38 /* ACCESS_AUDIT_LOG_FAULT_ */ 39 /* */ 40 /* This module performs auditing on behalf of fim. fim performs inspection of the */ 41 /* audit flags. If faults are being audited, this routine is called to log the event. */ 42 /* */ 43 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 44 /* format: on */ 45 46 47 /* PARAMETERS */ 48 49 dcl a_mc_ptr parameter pointer; /* pointer to machine conditions */ 50 51 52 /* CONSTANTS */ 53 54 dcl True bit (1) aligned int static options (constant) init ("1"b); 55 dcl False bit (1) aligned int static options (constant) init ("0"b); 56 dcl PROC_SEG fixed bin int static options (constant) init (1); 57 dcl DATA_SEG fixed bin int static options (constant) init (2); 58 59 60 /* AUTOMATIC */ 61 62 dcl code fixed bin (35); /* err code returned from entries we call */ 63 dcl entry_ptr pointer; /* pointer to object dir entry */ 64 dcl 1 event_flags aligned like audit_event_flags; 65 /* for log data */ 66 dcl final_cpu fixed bin (71); /* for metering */ 67 dcl final_pagefaults fixed bin; /* for metering */ 68 dcl have_entry_sw bit (1) aligned; /* indicates we have a ptr to a dir entry */ 69 dcl i fixed bin; /* index */ 70 dcl initial_cpu fixed bin (71); /* for metering */ 71 dcl initial_pagefaults fixed bin; /* for metering */ 72 dcl 1 local_audit_header aligned like audit_record_header; 73 /* binary data header format */ 74 dcl 1 local_ssobj_info aligned like audit_ssobj_info; 75 /* extended binary data format */ 76 dcl locked_dir bit (1) aligned; /* flag indicating that we've locked the directory */ 77 dcl object_info_valid_sw bit (1) aligned; /* indicates that ssobj can be put in log */ 78 dcl oper_code bit (36) aligned; /* encoded operation */ 79 dcl msg_text_buff char (512) aligned; /* ioa_$rsnpnnl assembles the text message here */ 80 /* 512 chars is all syserr will use... */ 81 dcl msg_text_len fixed bin (21); /* length of text */ 82 dcl msg_text_ptr pointer; /* ptr to msg_text_buff */ 83 84 85 /* BASED */ 86 87 dcl msg_text char (msg_text_len) based (msg_text_ptr); 88 /* the part of msg_text_buff that ioa_$rsnpnnl set up */ 89 90 91 /* MISCELLANEOUS */ 92 93 dcl addr builtin; 94 dcl baseptr builtin; 95 dcl fixed builtin; 96 dcl index builtin; 97 dcl length builtin; 98 dcl min builtin; 99 dcl null builtin; 100 dcl pointer builtin; 101 dcl rtrim builtin; 102 dcl segno builtin; 103 dcl size builtin; 104 dcl string builtin; 105 dcl substr builtin; 106 dcl unspec builtin; 107 108 109 /* EXTERNAL */ 110 111 dcl access_operations_$fault_ipr 112 bit (36) aligned external; 113 dcl access_operations_$fault_acv_mode 114 bit (36) aligned external; 115 dcl access_operations_$fault_acv_ring 116 bit (36) aligned external; 117 dcl active_all_rings_data$hcscnt 118 fixed bin external; 119 120 /* Note - The next four externals hold the access audit metering data. */ 121 /* active_hardcore_data$access_audit_num_meters" is set to the dimension. */ 122 /* This value is (n_audit_objects*2*n_audit_access_types) + n_audit_events + 1. */ 123 dcl active_hardcore_data$access_audit_num_meters 124 fixed bin external; 125 dcl active_hardcore_data$access_audit_count 126 (1) fixed bin (35) external; 127 dcl active_hardcore_data$access_audit_check_count 128 (1) fixed bin (35) external; 129 dcl active_hardcore_data$access_audit_cpu_time 130 (1) fixed bin (71) external; 131 dcl active_hardcore_data$access_audit_pagefaults 132 (1) fixed bin (35) external; 133 134 dcl dseg$ external; 135 dcl error_table_$invalidsegno 136 fixed bin (35) external; 137 dcl error_table_$mylock fixed bin (35) external; 138 dcl error_table_$noentry fixed bin (35) external; 139 dcl error_table_$root fixed bin (35) external; 140 dcl pds$access_authorization 141 bit (72) aligned external; 142 dcl pds$block_lock_count fixed bin external; 143 dcl pds$max_access_authorization 144 bit (72) aligned external; 145 dcl pds$process_group_id char (32) aligned external; 146 dcl pds$process_id bit (36) aligned external; 147 dcl slt$ external; 148 dcl sys_info$access_class_floor 149 bit (72) aligned external; 150 151 152 /* ENTRIES */ 153 154 dcl access_mode$raw entry (pointer, bit (36) aligned, bit (36) aligned, fixed bin (35)); 155 dcl display_access_class_ entry (bit (72) aligned) returns (char (32) aligned); 156 dcl convert_access_operation_ 157 entry (bit (36) aligned) returns (char (50)); 158 dcl convert_status_code_ entry (fixed bin (35), char (8) aligned, char (100) aligned); 159 dcl get_pathname_ entry (fixed bin (17), char (*) varying, fixed bin (35)); 160 dcl fs_modes$locked entry (pointer, bit (36) aligned, bit (36) aligned, 161 dim (3) fixed bin (3), fixed bin (35)); 162 dcl fs_get$ref_name entry (pointer, fixed bin, char (*), fixed bin (35)); 163 dcl ioa_$rsnpnnl entry options (variable); 164 dcl level$get entry () returns (fixed bin); 165 dcl lock$dir_unlock entry (pointer); 166 dcl sum$getbranch_root_my entry (pointer, bit (36) aligned, pointer, fixed bin (35)); 167 dcl syserr entry options (variable); 168 dcl syserr$binary entry options (variable); 169 dcl syserr$multiple_binary entry options (variable); 170 dcl usage_values entry (fixed bin, fixed bin (71)); 171 dcl uid_path_util$get entry (ptr, dim (0:15) bit (36) aligned, fixed bin (35)); 172 173 174 175 /* MAIN CODE */ 176 177 call usage_values (initial_pagefaults, initial_cpu); 178 179 /* setup */ 180 object_info_valid_sw = False; 181 msg_text_len = length (msg_text_buff); 182 msg_text_ptr = addr (msg_text_buff); 183 unspec (event_flags) = "0"b; 184 unspec (oper_code) = "0"b; 185 mcp = a_mc_ptr; /* copy arg */ 186 locked_dir = False; 187 188 call interpret_machine_conditions; 189 190 call build_object_info; 191 192 if locked_dir 193 then do; /* we're done with it */ 194 call lock$dir_unlock (pointer (entry_ptr, 0)); 195 locked_dir = False; 196 end; 197 198 call form_audit_record_header; 199 200 call write_log_message; 201 202 /* finish meter */ 203 i = n_audit_objects * 2 * n_audit_access_types + FAULTS_AUDIT_FLAG_INDEX; 204 /* see access_audit_ for other indexes */ 205 if i >= active_hardcore_data$access_audit_num_meters 206 then do; 207 call syserr (SYSERR_LOG_OR_PRINT, MSG_Meter_Index, pds$process_group_id); 208 dcl MSG_Meter_Index char (68) int static options (constant) 209 init ("access_audit_log_fault_: (^a) Encountered illegal meter index value."); 210 i = active_hardcore_data$access_audit_num_meters; 211 end; 212 213 call usage_values (final_pagefaults, final_cpu); 214 active_hardcore_data$access_audit_count (i) = active_hardcore_data$access_audit_count (i) + 1; 215 active_hardcore_data$access_audit_cpu_time (i) = 216 active_hardcore_data$access_audit_cpu_time (i) + (final_cpu - initial_cpu); 217 active_hardcore_data$access_audit_pagefaults (i) = 218 active_hardcore_data$access_audit_pagefaults (i) + (final_pagefaults - initial_pagefaults); 219 220 return; 221 222 223 LOG_FAULT_EXIT: /* error exit */ 224 if locked_dir 225 then do; 226 call lock$dir_unlock (pointer (entry_ptr, 0)); 227 locked_dir = False; 228 end; 229 230 return; 231 232 /* format: off */ 233 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 234 /* */ 235 /* INTERPRET_MACHINE_CONDITIONS - Internal Procedure. */ 236 /* */ 237 /* This procedure is called only be the $log_fault entry to extract the needed */ 238 /* information out of the machine conditions structure. */ 239 /* */ 240 /* */ 241 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 242 /* format: on */ 243 244 interpret_machine_conditions: 245 procedure; 246 247 dcl proc_seg_no fixed bin; 248 dcl proc_seg_offset fixed bin (18); 249 dcl proc_seg_path char (528) var; 250 dcl proc_seg_class char (32); 251 dcl proc_is_slt_seg bit (1) aligned; 252 dcl proc_path_ok bit (1) aligned; 253 dcl data_seg_no fixed bin; 254 dcl data_seg_offset fixed bin (18); 255 dcl data_seg_path char (528) var; 256 dcl data_seg_class char (32); 257 dcl data_is_slt_seg bit (1) aligned; 258 dcl data_path_ok bit (1) aligned; 259 dcl fault_desc char (80) var; 260 dcl n_locks fixed bin; 261 dcl access_auth char (32); 262 dcl ring fixed bin; 263 dcl mode_str bit (36) aligned; 264 dcl ex_mode_str bit (36) aligned; 265 dcl mode_chars char (4); 266 dcl ring_brackets (3) fixed bin (3); 267 268 dcl ACV_Fault_Names (0:17) char (24) int static options (constant) 269 init ( 270 "no fault - bad call", 271 "illegal ring order", 272 "not in execute bracket", 273 "no execute permit", 274 "not in read bracket", 275 "no read permit", 276 "not in write bracket", 277 "no write permit", 278 "not a gate", 279 "not in call bracket", 280 "outward call", 281 "bad outward call", 282 "inward return", 283 "cross-ring transfer", 284 "ring alarm", 285 "assoc. memory fault", 286 "out of segment bounds", 287 "bad acv type - bad call"); 288 289 dcl ACV_Mode_Mask bit (20) aligned init ("0010101"b) static options (constant); 290 291 dcl ACV_Fault_Ctl_Str char (200) int static options (constant) init ( 292 "Audit (fim): ^a by ^a (^a) Level=^d at^[ SLT seg^] ^o|^o ^[^a|^o ^;^s^s^](^a) referencing^[ SLT seg^] ^o|^o ^[^a|^o ^;^s^s^](^a) Mode=^a Rings=^d,^d,^d Inst= ^w; ^w^[ (with ^d lock^[s^] set)^;^s^s^]." 293 ); 294 295 dcl IPR_Fault_Names (0:8) char (24) int static options (constant) 296 init ( 297 "no fault - bad call", 298 "inv fault (never happen)", /* illegal segno */ 299 "illegal op code", 300 "illegal addr/modifier", 301 "illegal slave proc", 302 "illegal procedure", 303 "non-existant addr", 304 "out of bar bounds", 305 "bad ipr type - bad call"); 306 307 dcl IPR_Priv_Mask bit (36) aligned init ("1001101"b) static options (constant); 308 309 dcl IPR_Fault_Ctl_Str char (177) int static options (constant) init ( 310 "Audit (fim): ^a by ^a (^a) Level=^d at^[ SLT seg^] ^o|^o ^[^a|^o ^;^s^s^](^a) referencing^[ SLT seg^] ^o|^o ^[^a|^o ^;^s^s^](^a) Inst= ^w; ^w^[ (with ^d lock^[s^] set)^;^s^s^]." 311 ); 312 313 314 315 /* dispatch on type of fault */ 316 317 scup = addr (mc.scu); 318 if fixed (scu.fi_num) = FAULT_NO_IPR 319 then goto interpret_ipr_conditions; 320 else if fixed (scu.fi_num) = FAULT_NO_ACV 321 then goto interpret_acv_conditions; 322 else do; 323 call syserr$binary (SYSERR_LOG_OR_PRINT, mcp, SB_hw_fault, SBL_hw_fault, MSG_Bad_MC, pds$process_group_id); 324 dcl MSG_Bad_MC char (65) int static options (constant) 325 init ("access_audit_log_fault_: (^a) Called with bad machine conditions."); 326 goto LOG_FAULT_EXIT; /* return to fault handler */ 327 end; 328 329 /* format: off */ 330 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 331 /* */ 332 /* INTERPRET_IPR_CONDITIONS - Label. */ 333 /* */ 334 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 335 /* format: on */ 336 337 interpret_ipr_conditions: 338 339 if string (scux.fd) & IPR_Priv_Mask 340 then event_flags.priv_op = True; 341 342 unspec (oper_code) = access_operations_$fault_ipr; 343 344 /* scup is already set by caller */ 345 346 fault_desc = rtrim (convert_access_operation_ (unspec (oper_code))) || " - "; 347 fault_desc = fault_desc || IPR_Fault_Names (min (index (string (scux.fd), "1"b), 8)); 348 349 proc_seg_no = fixed (scu.ppr.psr, 15); 350 proc_seg_offset = fixed (scu.ilc, 18); 351 data_seg_no = fixed (scu.tpr.tsr, 15); 352 data_seg_offset = fixed (scu.ca, 18); 353 354 n_locks = pds$block_lock_count; 355 356 call get_entry_ptr (baseptr (data_seg_no), locked_dir, entry_ptr, have_entry_sw); 357 358 call get_known_seg_name_and_class 359 (PROC_SEG, proc_seg_no, proc_seg_path, proc_seg_class, proc_is_slt_seg, proc_path_ok); 360 361 /* DBG if acu.pps.prr = "000"b /* hardcore procedure ? */ 362 /* DBG */ 363 /* DBG & n_locks ^= 0 /* and some locks set ? */ 364 /* DBG */ 365 /* DBG then do; /*DBG */ 366 /* DBG /* don't fiddle about with data seg ! */ 367 /* DBG */ 368 /* DBG data_path_ok = False; /*DBG */ 369 /* DBG data_seg_path = ""; /*DBG */ 370 /* DBG data_seg_class = "class undetermined"; /*DBG */ 371 /* DBG data_is_slt_seg = False; /*DBG */ 372 /* DBG end; /*DBG */ 373 /* DBG else /*DBG */ 374 call get_known_seg_name_and_class 375 (DATA_SEG, data_seg_no, data_seg_path, data_seg_class, data_is_slt_seg, data_path_ok); 376 377 access_auth = display_access_class_ (pds$access_authorization); 378 ring = level$get (); 379 380 call ioa_$rsnpnnl (IPR_Fault_Ctl_Str, msg_text_buff, msg_text_len, 381 fault_desc, pds$process_group_id, access_auth, ring, 382 proc_is_slt_seg, proc_seg_no, proc_seg_offset, 383 proc_path_ok, proc_seg_path, proc_seg_offset, proc_seg_class, 384 data_is_slt_seg, data_seg_no, data_seg_offset, 385 data_path_ok, data_seg_path, data_seg_offset, data_seg_class, 386 scu.even_inst, scu.odd_inst, 387 (n_locks ^= 0), n_locks, (n_locks > 1)); 388 389 return; 390 391 /* END of code "interpret_ipr_conditions" */ 392 393 /* format: off */ 394 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 395 /* */ 396 /* INTERPRET_ACV_CONDITIONS - Label. */ 397 /* */ 398 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 399 /* format: on */ 400 401 interpret_acv_conditions: 402 403 if string (scu.fd) & ACV_Mode_Mask 404 then unspec (oper_code) = access_operations_$fault_acv_mode; 405 else unspec (oper_code) = access_operations_$fault_acv_ring; 406 407 /* scup is already set by caller */ 408 409 fault_desc = rtrim (convert_access_operation_ (unspec (oper_code))) || " - "; 410 fault_desc = fault_desc || ACV_Fault_Names (min (index (string (scu.fd), "1"b), 17)); 411 412 proc_seg_no = fixed (scu.ppr.psr, 15); 413 proc_seg_offset = fixed (scu.ilc, 18); 414 data_seg_no = fixed (scu.tpr.tsr, 15); 415 data_seg_offset = fixed (scu.ca, 18); 416 417 n_locks = pds$block_lock_count; 418 419 call get_entry_ptr (baseptr (data_seg_no), locked_dir, entry_ptr, have_entry_sw); 420 421 /* check if this is legit fault, user may have copy-on-write 422* or have voluntarily set write off */ 423 if (scu.fd.owb | scu.fd.w_off) 424 then if have_entry_sw & entry_ptr ^= null 425 then if entry_ptr -> entry.copysw 426 then do; 427 goto LOG_FAULT_EXIT; /* no need to log this one */ 428 end; 429 else do; 430 call fs_modes$locked (baseptr (data_seg_no), mode_str, ex_mode_str, ring_brackets, code); 431 if code = 0 432 then if (mode_str & W_ACCESS) = W_ACCESS 433 then goto LOG_FAULT_EXIT; /* no need to log this one, user has W access */ 434 end; 435 436 /* drop thru here if we're really going to audit this fault */ 437 438 call get_known_seg_name_and_class 439 (PROC_SEG, proc_seg_no, proc_seg_path, proc_seg_class, proc_is_slt_seg, proc_path_ok); 440 441 /* DBG if scu.ppr.prr = "000"b /* if ring 0 procedure */ 442 /* DBG */ 443 /* DBG & n_locks ^= 0 /* and something is locked */ 444 /* DBG */ 445 /* DBG then do; /*DBG */ 446 /* DBG /* don't try to fiddle about with the data seg path */ 447 /* DBG */ 448 /* DBG data_path_ok = False; /*DBG */ 449 /* DBG data_seg_path = ""; /*DBG */ 450 /* DBG data_seg_class = "class undetermined"; /*DBG */ 451 /* DBG data_is_slt_seg = False; /*DBG */ 452 /* DBG end; /*DBG */ 453 /* DBG else /*DBG */ 454 call get_known_seg_name_and_class 455 (DATA_SEG, data_seg_no, data_seg_path, data_seg_class, data_is_slt_seg, data_path_ok); 456 457 /* get access mode and ring brackets of referenced segment */ 458 459 mode_chars = "null"; 460 if data_is_slt_seg 461 then do; 462 sdwp = addr (addr (dseg$) -> sdwa (data_seg_no)); 463 464 mode_str = substr (string (sdw.access), 1, 3); 465 ring_brackets (1) = fixed (sdw.r1, 3); 466 ring_brackets (2) = fixed (sdw.r2, 3); 467 ring_brackets (3) = fixed (sdw.r3, 3); 468 end; 469 else do; 470 call fs_modes$locked (baseptr (data_seg_no), mode_str, ex_mode_str, ring_brackets, code); 471 if code ^= 0 472 then do; 473 call syserr (SYSERR_LOG_OR_PRINT, MSG_Access_Mode, pds$process_group_id, data_seg_no, 474 error_text (code)); 475 dcl MSG_Access_Mode char (86) int static options (constant) 476 init ( 477 "access_audit_log_fault_: (^a) Unable to get access mode for dat seg #^o due to ""^a""."); 478 ring_brackets = 7; 479 mode_str = "000"b; 480 mode_chars = "???"; 481 end; 482 end; 483 484 if mode_str ^= "0"b 485 then do; 486 mode_chars = ""; 487 if (mode_str & R_ACCESS) = R_ACCESS 488 then mode_chars = "r"; 489 if (mode_str & E_ACCESS) = E_ACCESS 490 then mode_chars = rtrim (mode_chars) || "e"; 491 if (mode_str & W_ACCESS) = W_ACCESS 492 then mode_chars = rtrim (mode_chars) || "w"; 493 end; 494 495 access_auth = display_access_class_ (pds$access_authorization); 496 ring = level$get (); 497 498 call ioa_$rsnpnnl (ACV_Fault_Ctl_Str, msg_text_buff, msg_text_len, 499 fault_desc, pds$process_group_id, access_auth, ring, 500 proc_is_slt_seg, proc_seg_no, proc_seg_offset, 501 proc_path_ok, proc_seg_path, proc_seg_offset, proc_seg_class, 502 data_is_slt_seg, data_seg_no, data_seg_offset, 503 data_path_ok, data_seg_path, data_seg_offset, data_seg_class, 504 mode_chars, ring_brackets, 505 scu.even_inst, scu.odd_inst, 506 (n_locks ^= 0), n_locks, (n_locks > 1)); 507 508 return; 509 510 /* END of code "interpret_acv_conditions" */ 511 512 end interpret_machine_conditions; 513 514 /* format: off */ 515 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 516 /* */ 517 /* GET_ENTRY_PTR - Internal procedure. */ 518 /* */ 519 /* Procedure to obtain an entry pointer corresponding to the current value of the object */ 520 /* pointer. */ 521 /* */ 522 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 523 /* format: on */ 524 525 get_entry_ptr: 526 procedure (a_obj_ptr, a_locked_dir, a_entry_ptr, a_have_entry); 527 528 dcl a_obj_ptr parameter pointer; /* object for which caller wants entry ptr */ 529 dcl a_locked_dir parameter bit (1) aligned; /* tell caller if we locked the dir ourselves */ 530 dcl a_entry_ptr parameter pointer; /* caller's desire */ 531 dcl a_have_entry parameter bit (1) aligned; /* tell caller whether entry_ptr is valid */ 532 533 534 a_locked_dir = False; 535 a_have_entry = False; 536 a_entry_ptr = null; 537 538 if segno (a_obj_ptr) <= active_all_rings_data$hcscnt 539 then do; 540 a_have_entry = False; 541 return; 542 end; 543 544 call sum$getbranch_root_my (pointer (a_obj_ptr, 0), "0"b, a_entry_ptr, code); 545 if code = error_table_$mylock 546 then code = 0; 547 else if code = error_table_$root 548 then code = 0; 549 else if code = error_table_$noentry | code = error_table_$invalidsegno 550 then ; /* let these by... */ 551 else if code ^= 0 552 then do; 553 call syserr (SYSERR_LOG_OR_PRINT, MSG_Get_Entry, pds$process_group_id, segno (a_obj_ptr), 554 error_text (code)); 555 dcl MSG_Get_Entry char (84) int static options (constant) 556 init ( 557 "access_audit_log_fault_: (^a) Unable to get entry pointer for seg #^o due to ""^a""."); 558 goto LOG_FAULT_EXIT; 559 end; 560 else a_locked_dir = True; /* we locked it, remember to unlock it later */ 561 562 a_have_entry = (code = 0); 563 564 return; 565 566 end get_entry_ptr; 567 568 /* format: off */ 569 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 570 /* */ 571 /* GET_KNOWN_SEG_NAME_AND_CLASS - Internal Procedure. */ 572 /* */ 573 /* It attempts to obtain the pathname of the referenced segment. */ 574 /* */ 575 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 576 /* format: on */ 577 578 get_known_seg_name_and_class: 579 procedure (type, seg_no, seg_path, seg_class, slt_sw, path_ok_sw); 580 581 dcl type parameter fixed bin; 582 dcl seg_no parameter fixed bin; 583 dcl seg_path parameter char (528) var; 584 dcl seg_class parameter char (32); 585 dcl slt_sw parameter bit (1) aligned; 586 dcl path_ok_sw parameter bit (1) aligned; 587 588 dcl ref_name char (32); 589 dcl code1 fixed bin (35); 590 dcl l_locked_dir bit (1) aligned; 591 dcl l_entry_ptr pointer; 592 dcl l_have_entry bit (1) aligned; 593 594 slt_sw = False; 595 path_ok_sw = False; 596 597 if seg_no < active_all_rings_data$hcscnt 598 then do; /* it's in SLT */ 599 slt_sw = True; 600 601 sltp = addr (slt$); 602 sltep = addr (slt.seg (seg_no)); 603 namep = pointer (slt.name_seg_ptr, slte.names_ptr); 604 seg_path = namep -> segnam.names (1).name; 605 seg_class = "hardcore segment"; 606 path_ok_sw = True; 607 end; 608 609 else do; 610 slt_sw = False; 611 612 call get_pathname_ (seg_no, seg_path, code); 613 614 if code = 0 615 then do; 616 path_ok_sw = True; 617 618 if type = DATA_SEG /* we already have an entry pointer? */ 619 then seg_class = display_access_class_ (entry_ptr -> entry.access_class); 620 else do; 621 call get_entry_ptr (baseptr (seg_no), l_locked_dir, l_entry_ptr, l_have_entry); 622 if l_have_entry 623 then if l_entry_ptr = null /* root? */ 624 then seg_class = display_access_class_ (sys_info$access_class_floor); 625 else seg_class = display_access_class_ (l_entry_ptr -> entry.access_class); 626 else seg_class = "unable to get entry"; 627 if l_locked_dir /* unlock immediately */ 628 then call lock$dir_unlock (pointer (l_entry_ptr, 0)); 629 end; 630 end; 631 else if code = error_table_$invalidsegno 632 then do; 633 seg_path = ""; 634 seg_class = "invalid seg #"; 635 path_ok_sw = False; 636 end; 637 else if code = error_table_$noentry 638 then do; 639 call fs_get$ref_name (baseptr (seg_no), 1 /* most recent */, ref_name, code1); 640 if code1 ^= 0 641 then goto get_known_seg_err; 642 seg_path = ref_name; 643 if seg_path = "" 644 then do; 645 seg_class = "deleted seg - null ref name"; 646 path_ok_sw = False; 647 end; 648 else do; 649 seg_class = "deleted seg"; 650 path_ok_sw = True; 651 end; 652 end; 653 else do; /* oops! */ 654 get_known_seg_err: 655 call syserr (SYSERR_LOG_OR_PRINT, MSG_Get_Path, pds$process_group_id, seg_no, error_text (code)); 656 dcl MSG_Get_Path char (74) int static options (constant) 657 init ("access_audit_log_fault_: (^a) Unable to get path of seg #^o due to ""^a""."); 658 seg_path = ""; 659 seg_class = "unable to determine path"; 660 path_ok_sw = False; 661 end; 662 end; 663 664 return; 665 666 end get_known_seg_name_and_class; 667 668 /* format: off */ 669 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 670 /* */ 671 /* BUILD_OBJECT_INFO - Internal Procedure. */ 672 /* */ 673 /* This routine to sets up the binary info structure with pertinent information about the */ 674 /* DATA segment/directory. */ 675 /* */ 676 /* This routine is somewhat duplicated in access_audit_. */ 677 /* */ 678 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 679 /* format: on */ 680 681 build_object_info: 682 procedure; 683 684 if have_entry_sw 685 then if entry_ptr ^= null () 686 then do; 687 if ^entry_ptr -> entry.bs 688 then do; 689 die: 690 call syserr (SYSERR_CRASH_SYSTEM, MSG_Expected_Branch, entry_ptr); 691 dcl MSG_Expected_Branch char (66) int static options (constant) 692 init ("access_audit_log_fault_: Link entry where branch expected (ep=^p)."); 693 goto die; 694 end; 695 696 audit_ssobj_info_ptr = addr (local_ssobj_info); 697 698 /* build ssobj info structure for a seg or dir */ 699 unspec (audit_ssobj_info) = ""b; 700 audit_ssobj_info.info_type = AAB_ss_object; 701 call uid_path_util$get (pointer (entry_ptr, 0), audit_ssobj_info.parent_uid_path, code); 702 if code ^= 0 703 then do; 704 call syserr (SYSERR_LOG_OR_PRINT, MSG_Dir_UID, pds$process_group_id, segno (entry_ptr)); 705 dcl MSG_Dir_UID char (75) int static options (constant) 706 init ("access_audit_log_fault_: (^a) Unable to get UID path for directory seg #^o."); 707 audit_ssobj_info.parent_uid_path = "0"b; 708 /* all invalid */ 709 end; 710 audit_ssobj_info.entry_uid = entry_ptr -> entry.uid; 711 audit_ssobj_info.dtem = entry_ptr -> entry.dtem; 712 audit_ssobj_info.access_class = entry_ptr -> entry.access_class; 713 call access_mode$raw (entry_ptr, audit_ssobj_info.raw_mode, audit_ssobj_info.ex_mode, code); 714 if code ^= 0 715 then do; 716 call syserr (SYSERR_LOG_OR_PRINT, MSG_Raw_Access, pds$process_group_id, entry_ptr); 717 dcl MSG_Raw_Access char (74) int static options (constant) 718 init ("access_audit_log_fault_: (^a) Unable to get raw access modes for entry ^p."); 719 audit_ssobj_info.raw_mode = "0"b; 720 audit_ssobj_info.ex_mode = "0"b; 721 end; 722 audit_ssobj_info.ring_brackets = entry_ptr -> entry.ring_brackets; 723 audit_ssobj_info.ex_ring_brackets = entry_ptr -> entry.ex_ring_brackets; 724 audit_ssobj_info.dirsw = entry_ptr -> entry.dirsw; 725 audit_ssobj_info.per_process_sw = entry_ptr -> entry.per_process_sw; 726 audit_ssobj_info.safety_sw = entry_ptr -> entry.safety_sw; 727 audit_ssobj_info.multiple_class = entry_ptr -> entry.multiple_class; 728 audit_ssobj_info.audit_flag = entry_ptr -> entry.audit_flag; 729 audit_ssobj_info.security_oosw = entry_ptr -> entry.security_oosw; 730 audit_ssobj_info.entrypt_sw = entry_ptr -> entry.entrypt_sw; 731 audit_ssobj_info.master_dir = entry_ptr -> entry.master_dir; 732 audit_ssobj_info.access_class = entry_ptr -> entry.access_class; 733 734 object_info_valid_sw = True; 735 end; 736 737 return; 738 739 end build_object_info; 740 741 /* format: off */ 742 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 743 /* */ 744 /* FORM_AUDIT_RECORD_HEADER - Internal Procedure. */ 745 /* */ 746 /* This routine assembles the standard record header for the audit message. */ 747 /* */ 748 /* This routine is somewhat duplicated in access_audit_. */ 749 /* */ 750 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 751 /* format: on */ 752 753 form_audit_record_header: 754 procedure; 755 756 audit_record_ptr = addr (local_audit_header); 757 758 audit_record_header.type = ARH_TYPE_NO_PROXY; 759 760 audit_record_header.version = ACCESS_AUDIT_HEADER_VERSION_3; 761 762 audit_record_header.subject_is_process = True; 763 call parse_group_id (pds$process_group_id, 764 audit_record_header.person, audit_record_header.project, audit_record_header.tag); 765 audit_record_header.ring = level$get (); 766 audit_record_header.anonymous = (substr (pds$process_group_id, 1, 9) = "anonymous"); 767 audit_record_header.process_id = pds$process_id; 768 audit_record_header.authorization = pds$access_authorization; 769 audit_record_header.authorization_range (1) = sys_info$access_class_floor; 770 /* don't know this in hardcore */ 771 audit_record_header.authorization_range (2) = pds$max_access_authorization; 772 773 audit_record_header.object_is_valid = object_info_valid_sw; 774 audit_record_header.operation_code = unspec (oper_code); 775 audit_record_header.event_flags = unspec (event_flags); 776 777 return; 778 779 parse_group_id: /* procedure internal to form_audit_record_header */ 780 procedure (group_id, person, project, tag); 781 782 dcl group_id parameter char (32) aligned; 783 dcl person parameter char (22); 784 dcl project parameter char (9); 785 dcl tag parameter char (1); 786 dcl l_group_id char (32); 787 788 l_group_id = group_id; 789 person, project, tag = ""; 790 791 i = index (l_group_id, "."); 792 if i = 0 793 then do; 794 person = l_group_id; 795 return; 796 end; 797 else if i > 1 798 then person = substr (l_group_id, 1, i - 1); 799 800 l_group_id = substr (l_group_id, i + 1); 801 802 i = index (l_group_id, "."); 803 if i = 0 804 then do; 805 project = l_group_id; 806 return; 807 end; 808 else if i > 1 809 then project = substr (l_group_id, 1, i - 1); 810 811 tag = substr (l_group_id, i + 1); 812 813 return; 814 815 end parse_group_id; 816 817 end form_audit_record_header; 818 819 /* format: off */ 820 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 821 /* */ 822 /* WRITE_LOG_MESSAGE - Internal Procedure. */ 823 /* */ 824 /* This procedure interfaces with the logging software to add an audit message to the */ 825 /* logs. */ 826 /* */ 827 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 828 /* format: on */ 829 830 write_log_message: 831 procedure; 832 833 dcl 1 bin_info_array (2) aligned, /* argument for syserr$multiple_binary */ 834 2 p pointer, 835 2 len fixed bin; 836 dcl n_pieces fixed bin; 837 dcl syserr_code fixed bin; 838 839 p (1) = addr (audit_record_header); 840 len (1) = size (audit_record_header); 841 842 if object_info_valid_sw 843 then do; 844 p (2) = addr (audit_ssobj_info); 845 len (2) = size (audit_ssobj_info); 846 n_pieces = 2; 847 end; 848 else do; 849 p (2) = null (); 850 len (2) = 0; 851 n_pieces = 1; 852 end; 853 854 syserr_code = SYSERR_LOG_OR_PRINT + SYSERR_UNSUCCESSFUL_ACCESS; 855 call syserr$multiple_binary (syserr_code, addr (bin_info_array), n_pieces, SB_access_audit, msg_text); 856 857 return; 858 859 end write_log_message; 860 861 /* format: off */ 862 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 863 /* */ 864 /* ERROR_TEXT - Internal Procedure. */ 865 /* */ 866 /* Procedure to return the short error message mnemonic associated with an error_table_ */ 867 /* entry. */ 868 /* */ 869 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 870 /* format: on */ 871 872 error_text: 873 procedure (ec) returns (char (100) aligned); 874 875 dcl ec parameter fixed bin (35); 876 877 dcl char8 char (8) aligned; 878 dcl char100 char (100) aligned; 879 880 call convert_status_code_ (ec, char8, char100); 881 882 return (char100); 883 884 end error_text; 885 886 /* format: off */ 887 /* 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 */ 887 888 /* 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 */ 888 889 /* BEGIN include file access_audit_bin_header.incl.pl1 */ 3 2 3 3 /* format: style4 */ 3 4 3 5 /* NOTE: All changes must also be done to access_audit_bin_header.incl.alm */ 3 6 3 7 /* 85-01-18 E. Swenson - renamed to access_audit_bin_header.incl.pl1 */ 3 8 /* 85-01-17 E. Swenson - restructured, added session_uid, changed 3 9* min and max authorization to authorization range. */ 3 10 /* 85-01-07 EJ Sharpe - added min_authorization, cleanup */ 3 11 /* 84-11-15 EJ Sharpe - added event_flags word */ 3 12 /* 84-11-06 EJ Sharpe - added unaligned attr to version and proxy_flag */ 3 13 /* 84-10-24 EJ Sharpe - added the constants */ 3 14 /* 84-09-04 BIM - created */ 3 15 3 16 declare audit_record_ptr pointer; 3 17 3 18 dcl 1 audit_record_header aligned based (audit_record_ptr), 3 19 2 header aligned like arh_header_, 3 20 2 subject aligned like arh_user_info_; 3 21 3 22 dcl 1 audit_record_header_proxy aligned based (audit_record_ptr), 3 23 2 header aligned like arh_header_, 3 24 2 subjects (2) aligned like arh_user_info_; 3 25 3 26 dcl 1 arh_header_ aligned based, 3 27 2 type fixed bin (9) unsigned unaligned, 3 28 2 version fixed bin (9) unsigned unaligned, 3 29 2 flags unaligned, 3 30 3 ( 3 31 subject_is_process, /* binary data in subject is valid */ 3 32 object_is_valid /* There is an object */ 3 33 ) bit (1) unaligned, 3 34 3 pad bit (16) unaligned, 3 35 2 operation_code bit (36) aligned, /* like access_audit_encoded_op */ 3 36 2 event_flags bit (36) aligned, /* like access_audit_eventflags */ 3 37 2 session_uid fixed bin (35); /* uid for the login session */ 3 38 3 39 dcl 1 arh_user_info_ aligned based, 3 40 2 person char (22) unaligned, /* see anonymous bit */ 3 41 2 project char (9) unaligned, /* blank for nologin w/out proj */ 3 42 2 tag char (1) unaligned, 3 43 2 ring fixed bin (3) uns unaligned, 3 44 2 anonymous bit (1) unaligned, 3 45 2 pad3 bit (32) unaligned, 3 46 2 process_id bit (36) aligned, 3 47 2 authorization bit (72) aligned, 3 48 2 authorization_range (2) bit (72) aligned; 3 49 3 50 dcl ARH_TYPE_PROXY fixed bin init (2) 3 51 static options (constant); 3 52 dcl ARH_TYPE_NO_PROXY fixed bin init (1) 3 53 static options (constant); 3 54 dcl ACCESS_AUDIT_HEADER_VERSION_3 fixed bin (9) unsigned 3 55 init (3) static options (constant); 3 56 3 57 /* End include file access_audit_bin_header.incl.pl1 */ 889 890 /* begin include file - access_audit_binary_def */ 4 2 4 3 /* 1985-02-26 EJ Sharpe: added rcp object definition */ 4 4 /* 1985-01-25 E. Swenson: added pnt definition */ 4 5 /* 1985-01-22 EJ Sharpe: created */ 4 6 4 7 /**** 4 8* Each access audit log message has binary data including 4 9* the audit record header and optionally some extended 4 10* binary information. The first 9 bits (fixed bin (9) uns unal) 4 11* if the extended binary defines the type of the data 4 12* and, thus, what structure may be used to interpret it. 4 13* 4 14* This include file is a registry of the extended binary 4 15* type values. 4 16*****/ 4 17 4 18 dcl ( 4 19 /*type identifier*/ /*type*/ /*include where defined*/ 4 20 4 21 AAB_ss_object init (1), /* access_audit_ssobj_info.incl.pl1 */ 4 22 AAB_ss_link init (2), /* access_audit_ssobj_info.incl.pl1 */ 4 23 AAB_ia_int_dmn init (3), /* as_audit_structures.incl.pl1 */ 4 24 AAB_ia_abs init (4), /* as_audit_structures.incl.pl1 */ 4 25 AAB_ia_abs_proxy init (5), /* as_audit_structures.incl.pl1 */ 4 26 AAB_channel init (6), /* as_audit_structures.incl.pl1 */ 4 27 AAB_dial_service init (7), /* as_audit_structures.incl.pl1 */ 4 28 AAB_pnt_entry init (8), /* access_audit_pnt_info.incl.pl1 */ 4 29 AAB_rcp_object init (9), /* access_audit_rcp_info.incl.pl1 */ 4 30 AAB_mseg_msg init (10) /* access_audit_mseg_info.incl.pl1 */ 4 31 ) fixed bin (9) uns unal static options (constant); 4 32 4 33 /**** 4 34* The following array contains entry name fragments for the 4 35* expander procedure associated with the respective binary 4 36* data type. The actual entry name is generated like: 4 37* 4 38* entryname = "expand_"||audit_binary_expanders(TYPE)||"_audit_info_" 4 39* 4 40* Note that expand_access_audit_msg_.pl1 keeps a cache of 4 41* extended binary expander procedure entries. The cache 4 42* should be enlarged when the following array grows to more 4 43* than 36 entries. 4 44*****/ 4 45 4 46 dcl audit_binary_expanders (10) char (13) varying internal static options (constant) 4 47 init ( "ssobj", /* 1 (first two are internal */ 4 48 "sslnk", /* 2 procedures in expand_access_audit_msg_) */ 4 49 "as_ia", /* 3 (ia_int_dmn) */ 4 50 "as_ia", /* 4 (ia_abs) */ 4 51 "as_ia", /* 5 (ia_abs_proxy) */ 4 52 "channel", /* 6 */ 4 53 "dial_serv", /* 7 */ 4 54 "pnt", /* 8 */ 4 55 "rcp_obj", /* 9 */ 4 56 "mseg_msg" /* 10 */ 4 57 ); 4 58 4 59 /* end include file - access_audit_binary_def.incl.pl1 */ 890 891 /* begin include file - access_audit_ssobj_info.incl.pl1 */ 5 2 5 3 /* Modified 85-01-22 by EJ Sharpe - changed char(8) version */ 5 4 5 5 /* This structure describes the default binary information 5 6* for storage system objects in an audit log message. 5 7* Values for the "type" field are defined in 5 8* access_audit_binary_def.incl.pl1 5 9**/ 5 10 5 11 dcl audit_ssobj_info_ptr pointer; 5 12 5 13 dcl 1 audit_ssobj_info based (audit_ssobj_info_ptr) aligned, 5 14 2 info_type fixed bin (9) uns unal, /* AAB_ss_object */ 5 15 2 version fixed bin (9) uns unal, 5 16 2 pad bit (18) unal, 5 17 2 parent_uid_path (0:15) bit (36) aligned, 5 18 2 entry_uid bit (36), 5 19 2 dtem bit (36), 5 20 2 raw_mode bit (36), 5 21 2 ex_mode bit (36), 5 22 2 ring_brackets (3) bit (3) unal, 5 23 2 ex_ring_brackets (3) bit (3) unal, 5 24 2 flags unal, 5 25 3 ( 5 26 dirsw, 5 27 per_process_sw, 5 28 safety_sw, 5 29 multiple_class, 5 30 audit_flag, 5 31 security_oosw, 5 32 entrypt_sw, 5 33 master_dir 5 34 ) bit (1) unal, 5 35 3 pad bit (10) unal, 5 36 2 access_class bit (72); /* double word aligned */ 5 37 5 38 5 39 dcl audit_ssobj_info_version fixed bin (9) uns unal init (1) 5 40 static options (constant); 5 41 5 42 /* slightly shorter info for links, first six components are same */ 5 43 5 44 dcl audit_link_info_ptr pointer; 5 45 5 46 dcl 1 audit_link_info based (audit_link_info_ptr) aligned, 5 47 2 info_type fixed bin (9) uns unal, /* AAB_ss_link */ 5 48 2 version fixed bin (9) uns unal, 5 49 2 pad bit (18) unal, 5 50 2 parent_uid_path (0:15) bit (36) aligned, 5 51 2 entry_uid bit (36), 5 52 2 dtem bit (36); 5 53 5 54 dcl audit_link_info_version fixed bin (9) uns unal init (1) 5 55 static options (constant); 5 56 5 57 /* end include file - access_audit_ssobj_info.incl.pl1 */ 891 892 /* */ 6 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 6 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 6 4 /* Modified 07/07/76 by Morris for fault register data */ 6 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 6 6 /* Modified '82 to make values constant */ 6 7 6 8 /* words 0-15 pointer registers */ 6 9 6 10 dcl mcp ptr; 6 11 6 12 dcl 1 mc based (mcp) aligned, 6 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 6 14 (2 regs, /* registers */ 6 15 3 x (0:7) bit (18), /* index registers */ 6 16 3 a bit (36), /* accumulator */ 6 17 3 q bit (36), /* q-register */ 6 18 3 e bit (8), /* exponent */ 6 19 3 pad1 bit (28), 6 20 3 t bit (27), /* timer register */ 6 21 3 pad2 bit (6), 6 22 3 ralr bit (3), /* ring alarm register */ 6 23 6 24 2 scu (0:7) bit (36), 6 25 6 26 2 mask bit (72), /* mem controller mask at time of fault */ 6 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 6 28 2 errcode fixed bin (35), /* fault handler's error code */ 6 29 2 fim_temp, 6 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 6 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 6 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 6 33 2 fault_reg bit (36), /* fault register */ 6 34 2 pad2 bit (1), 6 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 6 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 6 37 2 fault_time bit (54), /* time of fault */ 6 38 6 39 2 eis_info (0:7) bit (36)) unaligned; 6 40 6 41 6 42 dcl (apx fixed bin init (0), 6 43 abx fixed bin init (1), 6 44 bpx fixed bin init (2), 6 45 bbx fixed bin init (3), 6 46 lpx fixed bin init (4), 6 47 lbx fixed bin init (5), 6 48 spx fixed bin init (6), 6 49 sbx fixed bin init (7)) internal static options (constant); 6 50 6 51 6 52 6 53 6 54 dcl scup ptr; 6 55 6 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 6 57 6 58 6 59 /* WORD (0) */ 6 60 6 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 6 62 3 prr bit (3), /* procedure ring register */ 6 63 3 psr bit (15), /* procedure segment register */ 6 64 3 p bit (1), /* procedure privileged bit */ 6 65 6 66 2 apu, /* APPENDING UNIT STATUS */ 6 67 3 xsf bit (1), /* ext seg flag - IT modification */ 6 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 6 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 6 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 6 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 6 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 6 73 3 dsptw bit (1), /* Fetch of DSPTW */ 6 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 6 75 3 sdwp bit (1), /* Fetch of SDW paged */ 6 76 3 ptw bit (1), /* Fetch of PTW */ 6 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 6 78 3 fap bit (1), /* Fetch of final address paged */ 6 79 3 fanp bit (1), /* Fetch of final address non-paged */ 6 80 3 fabs bit (1), /* Fetch of final address absolute */ 6 81 6 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 6 83 6 84 6 85 /* WORD (1) */ 6 86 6 87 2 fd, /* FAULT DATA */ 6 88 3 iro bit (1), /* illegal ring order */ 6 89 3 oeb bit (1), /* out of execute bracket */ 6 90 3 e_off bit (1), /* no execute */ 6 91 3 orb bit (1), /* out of read bracket */ 6 92 3 r_off bit (1), /* no read */ 6 93 3 owb bit (1), /* out of write bracket */ 6 94 3 w_off bit (1), /* no write */ 6 95 3 no_ga bit (1), /* not a gate */ 6 96 3 ocb bit (1), /* out of call bracket */ 6 97 3 ocall bit (1), /* outward call */ 6 98 3 boc bit (1), /* bad outward call */ 6 99 3 inret bit (1), /* inward return */ 6 100 3 crt bit (1), /* cross ring transfer */ 6 101 3 ralr bit (1), /* ring alarm register */ 6 102 3 am_er bit (1), /* associative memory fault */ 6 103 3 oosb bit (1), /* out of segment bounds */ 6 104 3 paru bit (1), /* processor parity upper */ 6 105 3 parl bit (1), /* processor parity lower */ 6 106 3 onc_1 bit (1), /* op not complete type 1 */ 6 107 3 onc_2 bit (1), /* op not complete type 2 */ 6 108 6 109 2 port_stat, /* PORT STATUS */ 6 110 3 ial bit (4), /* illegal action lines */ 6 111 3 iac bit (3), /* illegal action channel */ 6 112 3 con_chan bit (3), /* connect channel */ 6 113 6 114 2 fi_num bit (5), /* (fault/interrupt) number */ 6 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 6 116 6 117 6 118 /* WORD (2) */ 6 119 6 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 6 121 3 trr bit (3), /* temporary ring register */ 6 122 3 tsr bit (15), /* temporary segment register */ 6 123 6 124 2 pad2 bit (9), 6 125 6 126 2 cpu_no bit (3), /* CPU number */ 6 127 6 128 2 delta bit (6), /* tally modification DELTA */ 6 129 6 130 6 131 /* WORD (3) */ 6 132 6 133 2 word3 bit (18), 6 134 6 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 6 136 3 tsna, /* Word 1 status */ 6 137 4 prn bit (3), /* Word 1 PR number */ 6 138 4 prv bit (1), /* Word 1 PR valid bit */ 6 139 3 tsnb, /* Word 2 status */ 6 140 4 prn bit (3), /* Word 2 PR number */ 6 141 4 prv bit (1), /* Word 2 PR valid bit */ 6 142 3 tsnc, /* Word 3 status */ 6 143 4 prn bit (3), /* Word 3 PR number */ 6 144 4 prv bit (1), /* Word 3 PR valid bit */ 6 145 6 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 6 147 6 148 6 149 /* WORD (4) */ 6 150 6 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 6 152 6 153 2 ir, /* INDICATOR REGISTERS */ 6 154 3 zero bit (1), /* zero indicator */ 6 155 3 neg bit (1), /* negative indicator */ 6 156 3 carry bit (1), /* carryry indicator */ 6 157 3 ovfl bit (1), /* overflow indicator */ 6 158 3 eovf bit (1), /* eponent overflow */ 6 159 3 eufl bit (1), /* exponent underflow */ 6 160 3 oflm bit (1), /* overflow mask */ 6 161 3 tro bit (1), /* tally runout */ 6 162 3 par bit (1), /* parity error */ 6 163 3 parm bit (1), /* parity mask */ 6 164 3 bm bit (1), /* ^bar mode */ 6 165 3 tru bit (1), /* truncation mode */ 6 166 3 mif bit (1), /* multi-word instruction mode */ 6 167 3 abs bit (1), /* absolute mode */ 6 168 3 hex bit (1), /* hexadecimal exponent mode */ 6 169 3 pad bit (3), 6 170 6 171 6 172 /* WORD (5) */ 6 173 6 174 2 ca bit (18), /* COMPUTED ADDRESS */ 6 175 6 176 2 cu, /* CONTROL UNIT STATUS */ 6 177 3 rf bit (1), /* on first cycle of repeat instr */ 6 178 3 rpt bit (1), /* repeat instruction */ 6 179 3 rd bit (1), /* repeat double instruction */ 6 180 3 rl bit (1), /* repeat link instruciton */ 6 181 3 pot bit (1), /* IT modification */ 6 182 3 pon bit (1), /* return type instruction */ 6 183 3 xde bit (1), /* XDE from Even location */ 6 184 3 xdo bit (1), /* XDE from Odd location */ 6 185 3 poa bit (1), /* operation preparation */ 6 186 3 rfi bit (1), /* tells CPU to refetch instruction */ 6 187 3 its bit (1), /* ITS modification */ 6 188 3 if bit (1), /* fault occured during instruction fetch */ 6 189 6 190 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 6 191 6 192 6 193 /* WORDS (6,7) */ 6 194 6 195 2 even_inst bit (36), /* even instruction of faulting pair */ 6 196 6 197 2 odd_inst bit (36); /* odd instruction of faulting pair */ 6 198 6 199 6 200 6 201 6 202 6 203 6 204 /* ALTERNATE SCU DECLARATION */ 6 205 6 206 6 207 dcl 1 scux based (scup) aligned, 6 208 6 209 (2 pad0 bit (36), 6 210 6 211 2 fd, /* GROUP II FAULT DATA */ 6 212 3 isn bit (1), /* illegal segment number */ 6 213 3 ioc bit (1), /* illegal op code */ 6 214 3 ia_am bit (1), /* illegal address - modifier */ 6 215 3 isp bit (1), /* illegal slave procedure */ 6 216 3 ipr bit (1), /* illegal procedure */ 6 217 3 nea bit (1), /* non existent address */ 6 218 3 oobb bit (1), /* out of bounds */ 6 219 3 pad bit (29), 6 220 6 221 2 pad2 bit (36), 6 222 6 223 2 pad3a bit (18), 6 224 6 225 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 6 226 3 prn bit (3), /* PR number */ 6 227 3 prv bit (1), /* PR valid bit */ 6 228 6 229 2 pad3b bit (6)) unaligned, 6 230 6 231 2 pad45 (0:1) bit (36), 6 232 6 233 2 instr (0:1) bit (36); /* Instruction ARRAY */ 6 234 6 235 6 236 6 237 /* END INCLUDE FILE mc.incl.pl1 */ 892 893 7 2 /* BEGIN INCLUDE FILE ... fault_vector.incl.pl1 ... last modified February 1981 */ 7 3 7 4 dcl fvp ptr; /* pointer to the fault and interrupt vectors */ 7 5 7 6 dcl 1 fv based (fvp) aligned, /* fault and interrupt vectors */ 7 7 2 ipair (0: 31), /* interrupt pairs */ 7 8 3 scu bit (36), /* SCU instruction */ 7 9 3 tra bit (36), /* TRA instruction */ 7 10 2 fpair (0: 31), /* fault pairs */ 7 11 3 scu bit (36), /* SCU instruction */ 7 12 3 tra bit (36), /* TRA instruction */ 7 13 2 i_tra_ptr (0: 31) ptr, /* ITS pair for interrupt TRA instruction */ 7 14 2 i_scu_ptr (0: 31) ptr, /* ITS pair for interrupt SCU instruction */ 7 15 2 f_tra_ptr (0: 31) ptr, /* ITS pairs for fault TRA instruction */ 7 16 2 f_scu_ptr (0: 31) ptr; /* ITS pairs for fault SCU instruction */ 7 17 7 18 /* Fault Types by fault number */ 7 19 7 20 dcl (FAULT_NO_SDF init (0), /* Shutdown */ 7 21 FAULT_NO_STR init (1), /* Store */ 7 22 FAULT_NO_MME init (2), /* Master Mode Entry 1 */ 7 23 FAULT_NO_F1 init (3), /* Fault Tag 1 */ 7 24 FAULT_NO_TRO init (4), /* Timer Runout */ 7 25 FAULT_NO_CMD init (5), /* Command */ 7 26 FAULT_NO_DRL init (6), /* Derail */ 7 27 FAULT_NO_LUF init (7), /* Lockup */ 7 28 FAULT_NO_CON init (8), /* Connect */ 7 29 FAULT_NO_PAR init (9), /* Parity */ 7 30 FAULT_NO_IPR init (10), /* Illegal Procedure */ 7 31 FAULT_NO_ONC init (11), /* Operation Not Complete */ 7 32 FAULT_NO_SUF init (12), /* Startup */ 7 33 FAULT_NO_OFL init (13), /* Overflow */ 7 34 FAULT_NO_DIV init (14), /* Divide Check */ 7 35 FAULT_NO_EXF init (15), /* Execute */ 7 36 FAULT_NO_DF0 init (16), /* Directed Fault 0 (Segment Fault) */ 7 37 FAULT_NO_DF1 init (17), /* Directed Fault 1 (Page Fault) */ 7 38 FAULT_NO_DF2 init (18), /* Directed Fault 2 */ 7 39 FAULT_NO_DF3 init (19), /* Directed Fault 3 */ 7 40 FAULT_NO_ACV init (20), /* Access Violation */ 7 41 FAULT_NO_MME2 init (21), /* Master Mode Entry 2 */ 7 42 FAULT_NO_MME3 init (22), /* Master Mode Entry 3 */ 7 43 FAULT_NO_MME4 init (23), /* Master Mode Entry 4 */ 7 44 FAULT_NO_F2 init (24), /* Fault Tag 2 (Linkage Fault) */ 7 45 FAULT_NO_F3 init (25), /* Fault Tag 3 */ 7 46 /* Fault Numbers 26-30 unassigned */ 7 47 FAULT_NO_TRB init (31) /* Trouble */ 7 48 7 49 ) fixed bin (17) int static options (constant); 7 50 7 51 7 52 7 53 /* END INCLUDE FILE ... fault_vector.incl.pl1 */ 7 54 893 894 /* BEGIN INCLUDE FILE slt.incl.pl1 --- Last modified 2/76 SHW */ 8 2 8 3 /* Declarations for Segment Loading Table header and array. 8 4* 8 5* Used by Initialization and MST Checker subroutines */ 8 6 8 7 dcl sltp ptr, /* pointer to base of SLT segment */ 8 8 names_ptr ptr, /* pointer to base of SLT names segment */ 8 9 namep ptr, /* pointer to segment name list block */ 8 10 pathp ptr, /* pointer to segment's directory path name */ 8 11 aclp ptr; /* pointer to acl structure */ 8 12 8 13 declare 1 slt based (sltp) aligned, /* declaration of Segment Loading Table (SLT) */ 8 14 2 name_seg_ptr ptr, /* words 0-1, pointer (ITS pair) to name segment */ 8 15 2 free_core_start fixed bin (24), /* word 2, start of free core after perm-wired */ 8 16 2 first_sup_seg fixed bin (18), /* word 3, first supervisor segment number */ 8 17 2 last_sup_seg fixed bin (18), /* word 4, last supervisor segment number */ 8 18 2 first_init_seg fixed bin (18), /* word 5, first initializer segment number */ 8 19 2 last_init_seg fixed bin (18), /* word 6, last initializer segment number */ 8 20 2 free_core_size fixed bin (24), /* size (in words) of free core after perm-wired */ 8 21 2 seg (0:8191) aligned, /* segment entries (4 words each) */ 8 22 3 slte (4) fixed bin (35); /* Space for SLT entries */ 8 23 8 24 /* auxiliary segment of SLT for storing of segment names and directory path names */ 8 25 8 26 declare 1 name_seg based (names_ptr) aligned, /* name segment header */ 8 27 2 pad bit (18) unal, 8 28 2 next_loc bit (18) unal, /* Next available free location in name seg */ 8 29 2 ht (0:127) bit (18) aligned; /* Names hash table */ 8 30 8 31 declare 1 segnam based (namep) aligned, /* declaration for segment name block */ 8 32 2 count fixed bin (17), /* number of segment names in this block */ 8 33 2 names (50 refer (segnam.count)), /* segment name array */ 8 34 3 hp bit (18) unal, /* hash thread pointer */ 8 35 3 ref bit (1) unal, /* "1"b if name referenced */ 8 36 3 pad bit (5) unal, 8 37 3 segno bit (12) unal, /* segment number associated with this name */ 8 38 3 name char (32) unal; /* space for name (max 32 characters) */ 8 39 8 40 declare 1 path based (pathp) aligned, /* declaration for directory path name */ 8 41 2 size fixed bin (17), /* length of pathname */ 8 42 2 name char (168 refer (path.size)) unal, /* directory path name */ 8 43 2 acls fixed bin; /* ACL list starts here */ 8 44 8 45 declare 1 acls based (aclp) aligned, /* declaration for acl list */ 8 46 2 count fixed bin, /* number of entries in acl list */ 8 47 2 acl (50 refer (acls.count)), /* array of acl entries */ 8 48 3 userid char (32), /* user specification */ 8 49 3 mode bit (36) aligned, /* mode for the specified user */ 8 50 3 pad bit (36) aligned, 8 51 3 code fixed bin; 8 52 8 53 8 54 /* END INCLUDE FILE slt.incl.pl1 */ 894 895 /* BEGIN INCLUDE FILE slte.incl.pl1 */ 9 2 /* Declaration for Segment Loading Table Entry structure. 9 3* Used by Initialization, MST Generation, and MST Checker subroutines */ 9 4 /* modified 5/4/76 by Noel I. Morris */ 9 5 /* last modified 12/12/83 by Keith Loepere for breakpointable */ 9 6 /* format: style3 */ 9 7 9 8 dcl sltep ptr; 9 9 9 10 dcl 1 slte_uns based (sltep) aligned, 9 11 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 9 12 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 9 13 /**** End of word 1 */ 9 14 2 access bit (4), /* SDW access bit (REWP) */ 9 15 2 cache bit (1), /* Segment to be allowed in cache */ 9 16 2 abs_seg bit (1), /* segment is an abs seg if ON */ 9 17 2 firmware_seg bit (1), /* load in low 256 */ 9 18 2 layout_seg bit (1), /* mailbox & such */ 9 19 2 breakpointable bit (1), /* includes breakpoint_page */ 9 20 2 pad1 bit (3), /* unused */ 9 21 2 wired bit (1), /* segment is wired if ON */ 9 22 2 paged bit (1), /* segment is paged if ON */ 9 23 2 per_process bit (1), /* segment is per-process if ON */ 9 24 2 pad3 bit (2), 9 25 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 9 26 /**** End of 1st half of word 2 */ 9 27 2 pad4 bit (3), 9 28 2 branch_required bit (1), /* path name supplied if ON */ 9 29 2 init_seg bit (1), /* segment is init_seg if ON */ 9 30 2 temp_seg bit (1), /* segment is temp_seg if ON */ 9 31 2 link_provided bit (1), /* linkage segment provided if ON */ 9 32 2 link_sect bit (1), /* segment is linkage segment if ON */ 9 33 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 9 34 2 combine_link bit (1), /* linkage is combined if ON */ 9 35 2 pre_linked bit (1), /* lot entry has been made if ON */ 9 36 2 defs bit (1), /* segment is definitions segment if ON */ 9 37 /***** End of word 2 */ 9 38 2 pad5 bit (6), 9 39 2 cur_length fixed bin (9) uns, /* current length of segment (in 1024 word blocks) */ 9 40 2 ringbrack (3) fixed bin (3) uns, /* ringbrackets */ 9 41 2 segno fixed bin (18) uns, /* text/link segment number */ 9 42 /***** End of word 3 */ 9 43 2 pad7 bit (3), 9 44 2 max_length fixed bin (9) uns, /* maximum length for segment */ 9 45 2 bit_count fixed bin (24) uns 9 46 ) unaligned; /* bitcount of segment */ 9 47 9 48 dcl 1 slte based (sltep) aligned, 9 49 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 9 50 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 9 51 2 access bit (4), /* SDW access bit (REWP) */ 9 52 2 cache bit (1), /* Segment to be allowed in cache */ 9 53 2 abs_seg bit (1), /* segment is an abs seg if ON */ 9 54 2 firmware_seg bit (1), 9 55 2 layout_seg bit (1), 9 56 2 breakpointable bit (1), 9 57 2 pad2 bit (3), 9 58 2 wired bit (1), /* segment is wired if ON */ 9 59 2 paged bit (1), /* segment is paged if ON */ 9 60 2 per_process bit (1), /* segment is per-process if ON */ 9 61 2 pad3 bit (2), 9 62 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 9 63 2 pad4 bit (3), 9 64 2 branch_required bit (1), /* path name supplied if ON */ 9 65 2 init_seg bit (1), /* segment is init_seg if ON */ 9 66 2 temp_seg bit (1), /* segment is temp_seg if ON */ 9 67 2 link_provided bit (1), /* linkage segment provided if ON */ 9 68 2 link_sect bit (1), /* segment is linkage segment if ON */ 9 69 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 9 70 2 combine_link bit (1), /* linkage is combined if ON */ 9 71 2 pre_linked bit (1), /* lot entry has been made if ON */ 9 72 2 defs bit (1), /* segment is definitions segment if ON */ 9 73 2 pad5 bit (6), 9 74 2 cur_length bit (9), /* current length of segment (in 1024 word blocks) */ 9 75 2 ringbrack (3) bit (3), /* ringbrackets */ 9 76 2 segno bit (18), /* text/link segment number */ 9 77 2 pad6 bit (3), 9 78 2 max_length bit (9), /* maximum length for segment */ 9 79 2 bit_count bit (24) 9 80 ) unaligned; /* bitcount of segment */ 9 81 9 82 /* END INCLUDE FILE slte.incl.pl1 */ 895 896 /* BEGIN INCLUDE FILE ... sdw.incl.pl1 ... last modified 12 May 1976 */ 10 2 10 3 dcl sdwp ptr; 10 4 10 5 dcl 1 sdw based (sdwp) aligned, /* Segment Descriptor Word */ 10 6 10 7 (2 add bit (24), /* main memory address of page table */ 10 8 2 (r1, r2, r3) bit (3), /* ring brackets for the segment */ 10 9 2 df bit (1), /* directed fault bit (0 => fault) */ 10 10 2 df_no bit (2), /* directed fault number */ 10 11 10 12 2 pad1 bit (1), 10 13 2 bound bit (14), /* boundary field (in 16 word blocks) */ 10 14 2 access, /* access bits */ 10 15 3 read bit (1), /* read permission bit */ 10 16 3 execute bit (1), /* execute permission bit */ 10 17 3 write bit (1), /* write permission bit */ 10 18 3 privileged bit (1), /* privileged bit */ 10 19 2 unpaged bit (1), /* segment is unpaged if this is 1 */ 10 20 2 entry_bound_sw bit (1), /* if this is 0 the entry bound is checked by hardware */ 10 21 2 cache bit (1), /* cache enable bit */ 10 22 2 entry_bound bit (14)) unaligned; /* entry bound */ 10 23 10 24 dcl 1 sdwa (0: 1) based (sdwp) aligned like sdw; /* SDW array (descriptor segment) */ 10 25 10 26 /* END INCLUDE FILE sdw.incl.pl1 */ 896 897 /* BEGIN INCLUDE FILE ... dir_header.incl.pl1 */ 11 2 /* Modified 8/74 for NSS */ 11 3 /* Modified 8/76 to add version number and hash table rel pointer for variable hash table sizes */ 11 4 /* Modified 3/82 BIM for change pclock */ 11 5 /* format: style3 */ 11 6 11 7 /* Template for the directory header. Length = 64 words. */ 11 8 11 9 dcl dp ptr; 11 10 11 11 dcl 1 dir based (dp) aligned, 11 12 11 13 2 modify bit (36), /* Process ID of last modifier */ 11 14 2 type bit (18) unaligned, /* type of object = dir header */ 11 15 2 size fixed bin (17) unaligned, /* size of header in words */ 11 16 2 dtc (3), /* date-time checked by salvager array */ 11 17 3 date bit (36), /* the date */ 11 18 3 error bit (36), /* what errors were discovered */ 11 19 11 20 2 uid bit (36), /* uid of the directory - copied from branch */ 11 21 11 22 2 pvid bit (36), /* phys vol id of the dir - copied from branch */ 11 23 11 24 2 sons_lvid bit (36), /* log vol id for inf non dir seg - copied from branch */ 11 25 11 26 2 access_class bit (72), /* security attributes of dir - copied from branch */ 11 27 11 28 (2 vtocx fixed bin (17), /* vtoc entry index of the dir - copied from branch */ 11 29 2 version_number fixed bin (17), /* version number of header */ 11 30 11 31 2 entryfrp bit (18), /* rel ptr to beginning of entry list */ 11 32 2 pad2 bit (18), 11 33 11 34 2 entrybrp bit (18), /* rel ptr to end of entry list */ 11 35 2 pad3 bit (18), 11 36 11 37 2 pers_frp bit (18), /* rel ptr to start of person name list */ 11 38 2 proj_frp bit (18), /* rel ptr to start of project name list */ 11 39 11 40 2 pers_brp bit (18), /* rel ptr to end of person name list */ 11 41 2 proj_brp bit (18), /* rel ptr to end of project name list */ 11 42 11 43 2 seg_count fixed bin (17), /* number of non-directory branches */ 11 44 2 dir_count fixed bin (17), /* number of directory branches */ 11 45 11 46 2 lcount fixed bin (17), /* number of links */ 11 47 2 acle_total fixed bin (17), /* total number of ACL entries in directory */ 11 48 11 49 2 arearp bit (18), /* relative pointer to beginning of allocation area */ 11 50 2 per_process_sw bit (1), /* indicates dir contains per process segments */ 11 51 2 master_dir bit (1), /* TRUE if this is a master dir */ 11 52 2 force_rpv bit (1), /* TRUE if segs must be on RPV */ 11 53 2 rehashing bit (1), /* TRUE if hash table is being constructed */ 11 54 2 pad4 bit (14), 11 55 11 56 2 iacl_count (0:7), 11 57 3 seg fixed bin (17), /* number of initial acl entries for segs */ 11 58 3 dir fixed bin (17), /* number of initial acl entries for dir */ 11 59 11 60 2 iacl (0:7), /* pointer to initial ACLs for each ring */ 11 61 3 seg_frp bit (18), /* rel ptr to start of initial ACL for segs */ 11 62 3 seg_brp bit (18), /* rel ptr to end of initial ACL for segs */ 11 63 11 64 3 dir_frp bit (18), /* rel ptr to start of initial for dirs */ 11 65 3 dir_brp bit (18), /* rel ptr to end of initial ACL for dirs */ 11 66 11 67 2 htsize fixed bin (17), /* size of hash table */ 11 68 2 hash_table_rp bit (18), /* rel ptr to start of hash table */ 11 69 11 70 2 htused fixed bin (17), /* no. of used places in hash table */ 11 71 2 pad6 fixed bin (17), 11 72 11 73 2 tree_depth fixed bin (17), /* number of levels from root of this dir */ 11 74 2 pad7 bit (18)) unaligned, 11 75 11 76 2 dts bit (36), /* date-time directory last salvaged */ 11 77 11 78 2 master_dir_uid bit (36), /* uid of superior master dir */ 11 79 2 change_pclock fixed bin (35), /* up one each call to sum$dirmod */ 11 80 2 pad8 (11) bit (36), /* pad to make it a 64 word header */ 11 81 2 checksum bit (36), /* checksummed from uid on */ 11 82 2 owner bit (36); /* uid of parent dir */ 11 83 11 84 dcl version_number_2 fixed bin int static options (constant) init (2); 11 85 11 86 /* END INCLUDE FILE ... dir_header.incl.pl1 */ 897 898 /* BEGIN INCLUDE FILE ... dir_entry.incl.pl1 ...last modified August 1974 for nss */ 12 2 12 3 12 4 /* Template for an entry. Length = 38 words */ 12 5 12 6 dcl ep ptr; 12 7 12 8 dcl 1 entry based (ep) aligned, 12 9 12 10 (2 efrp bit (18), /* forward rel ptr to next entry */ 12 11 2 ebrp bit (18)) unaligned, /* backward rel ptr to previous entry */ 12 12 12 13 2 type bit (18) unaligned, /* type of object = dir entry */ 12 14 2 size fixed bin (17) unaligned, /* size of dir entry */ 12 15 12 16 2 uid bit (36), /* unique id of entry */ 12 17 12 18 2 dtem bit (36), /* date-time entry modified */ 12 19 12 20 (2 bs bit (1), /* branch switch = 1 if branch */ 12 21 2 pad0 bit (17), 12 22 2 nnames fixed bin (17), /* number of names for this entry */ 12 23 12 24 2 name_frp bit (18), /* rel pointer to start of name list */ 12 25 2 name_brp bit (18), /* rel pointer to end of name list */ 12 26 12 27 2 author, /* user who created branch */ 12 28 3 pers_rp bit (18), /* name of user who created branch */ 12 29 3 proj_rp bit (18), /* project of user who created branch */ 12 30 12 31 3 tag char (1), /* tag of user who created branch */ 12 32 3 pad1 char (3), 12 33 12 34 2 primary_name bit (504), /* first name on name list */ 12 35 12 36 2 dtd bit (36), /* date time dumped */ 12 37 12 38 2 pad2 bit (36), 12 39 12 40 12 41 /* the declarations below are for branch only */ 12 42 12 43 12 44 2 pvid bit (36), /* physical volume id */ 12 45 12 46 2 vtocx fixed bin (17), /* vtoc entry index */ 12 47 2 pad3 bit (18), 12 48 12 49 2 dirsw bit (1), /* = 1 if this is a directory branch */ 12 50 2 oosw bit (1), /* out of service switch on = 1 */ 12 51 2 per_process_sw bit (1), /* indicates segment is per process */ 12 52 2 copysw bit (1), /* = 1 make copy of segment whenever initiated */ 12 53 2 safety_sw bit (1), /* if 1 then entry cannot be deleted */ 12 54 2 multiple_class bit (1), /* segment has multiple security classes */ 12 55 2 audit_flag bit (1), /* segment must be audited for security */ 12 56 2 security_oosw bit (1), /* security out of service switch */ 12 57 2 entrypt_sw bit (1), /* 1 if call limiter is to be enabled */ 12 58 2 master_dir bit (1), /* TRUE for master directory */ 12 59 2 tpd bit (1), /* TRUE if this segment is never to go on the PD */ 12 60 2 pad4 bit (11), 12 61 2 entrypt_bound bit (14)) unaligned, /* call limiter */ 12 62 12 63 2 access_class bit (72) aligned, /* security attributes : level and category */ 12 64 12 65 (2 ring_brackets (3) bit (3), /* ring brackets on segment */ 12 66 2 ex_ring_brackets (3) bit (3), /* extended ring brackets */ 12 67 2 acle_count fixed bin (17), /* number of entries on ACL */ 12 68 12 69 2 acl_frp bit (18), /* rel ptr to start of ACL */ 12 70 2 acl_brp bit (18), /* rel ptr to end of ACL */ 12 71 12 72 2 bc_author, /* user who last set the bit count */ 12 73 3 pers_rp bit (18), /* name of user who set the bit count */ 12 74 3 proj_rp bit (18), /* project of user who set the bit count */ 12 75 12 76 3 tag char (1), /* tag of user who set the bit count */ 12 77 3 pad5 bit (2), 12 78 2 bc fixed bin (24)) unaligned, /* bit count for segs, msf indicator for dirs */ 12 79 12 80 2 sons_lvid bit (36), /* logical volume id for immediat inf non dir seg */ 12 81 12 82 2 pad6 bit (36), 12 83 12 84 2 checksum bit (36), /* checksum from dtd */ 12 85 12 86 2 owner bit (36); /* uid of containing directory */ 12 87 12 88 /* END INCLUDE FILE ... dir_entry.incl.pl1 ... */ 898 899 /* BEGIN INCLUDE FILE ... dir_name.incl.pl1 ... last modified Nov 1975 for nss */ 13 2 13 3 /* Template for names of branches or links. Length = 14 words. */ 13 4 13 5 dcl np ptr; 13 6 13 7 dcl 1 names based aligned, /* based on ptr(dp,ep->entry.name_frp) */ 13 8 2 fp bit(18) unaligned, /* rel ptr to next name */ 13 9 2 bp bit(18) unaligned, /* rel ptr to prev name */ 13 10 13 11 2 type bit (18) unaligned, /* type = dir name */ 13 12 2 size fixed bin (17) unaligned, /* size of dir name */ 13 13 13 14 2 entry_rp bit(18) unaligned, /* rel ptr to entry */ 13 15 2 ht_index fixed bin(17) unaligned, /* index of hash table entry */ 13 16 13 17 2 hash_thread bit (18) unal, /* relative ptr to next hash entry */ 13 18 2 pad3 bit (18) unal, 13 19 13 20 2 name char(32) aligned, 13 21 13 22 2 checksum bit (36), /* checksum from entry_rp */ 13 23 13 24 2 owner bit (36); /* uid of entry */ 13 25 13 26 13 27 /* END INCLUDE FILE ... dir_name.incl.pl1 */ 899 900 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 14 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 14 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 14 4 14 5 /* This include file has an ALM version. Keep 'em in sync! */ 14 6 14 7 dcl ( 14 8 14 9 /* The following constants define the message action codes. This indicates 14 10*how a message is to be handled. */ 14 11 14 12 SYSERR_CRASH_SYSTEM init (1), 14 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 14 14 14 15 SYSERR_TERMINATE_PROCESS init (2), 14 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 14 17 14 18 SYSERR_PRINT_WITH_ALARM init (3), 14 19 BEEP init (3), /* Beep and print the message on the console. */ 14 20 14 21 SYSERR_PRINT_ON_CONSOLE init (0), 14 22 ANNOUNCE init (0), /* Just print the message on the console. */ 14 23 14 24 SYSERR_LOG_OR_PRINT init (4), 14 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 14 26 14 27 SYSERR_LOG_OR_DISCARD init (5), 14 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 14 29 14 30 14 31 /* The following constants are added to the normal severities to indicate 14 32*different sorting classes of messages. */ 14 33 14 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 14 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 14 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 14 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 14 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 14 39 ) fixed bin internal static options (constant); 14 40 14 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 900 901 /* BEGIN INCLUDE FILE .. syserr_binary_def.incl.pl1 */ 15 2 15 3 /* This include file has an ALM version, keep 'em in sync. */ 15 4 15 5 /* format: off */ 15 6 15 7 /* Modified January 1984 by Paul Farley to add an array of entry values 15 8* to be examined by display_cpu_error. */ 15 9 /* Modified October 1984 by EJ Sharpe to include SB_audit_message */ 15 10 /* Modified January 1985 by EJ Sharpe for SB_char_data_classes */ 15 11 /* Modified 1985-01-25, BIM: added ring alarm audit support. */ 15 12 /* Modified 1985-02-20, EJ Sharpe: added SB_ibm3270_mde, syserr_binary_(seg vol)damage_class, 15 13* also changed some codes to "SB_unused_NN" - see line comments */ 15 14 15 15 /* In the future, these will be the only constants needed in this include 15 16*file. They are the binary data class strings for messages in the new format 15 17*syserr logs. The names are all of the form SB_ZZZZZZZ_data_class where 15 18*ZZZZZZZ is the value of the data class string. Message expanders are named 15 19*expand_ZZZZZZZ_msg_ and are referenced by the log perusal tools. */ 15 20 15 21 dcl ( /* include file name */ 15 22 SB_io_status_data_class init ("io_status"), /* io_syserr_msg */ 15 23 SB_hwfault_data_class init ("hwfault"), /* syserr_fault_msg */ 15 24 SB_mos_data_class init ("mos"), /* scr */ 15 25 SB_segdamage_data_class init ("segdamage"), /* segdamage_msg */ 15 26 SB_voldamage_data_class init ("voldamage"), /* segdamage_msg (first two words) */ 15 27 SB_mdc_del_uidpath_data_class init ("mdc_del_uidpath"), /* none - 16 word UID path */ 15 28 SB_mmdam_data_class init ("mmdam"), /* syserr_mmdam_msg */ 15 29 SB_mpc_poll_data_class init ("mpc_poll"), /* poll_mpc_data */ 15 30 SB_fnp_poll_data_class init ("fnp_poll"), /* poll_fnp_data */ 15 31 SB_config_deck_data_class init ("config_deck"), /* config_deck */ 15 32 SB_vtoce_data_class init ("vtoce"), /* vtoce */ 15 33 SB_access_audit_data_class init ("access_audit"), /* access_audit_bin_header */ 15 34 SB_ibm3270_mde_data_class init ("ibm3270_mde") /* ibm3270_mpx_data */ 15 35 ) static internal char (16) varying options (constant); 15 36 15 37 15 38 /************************ 15 39*Once the syserr$binary is replaced with something that takes real data classes 15 40*and all system modules and tools are upgraded to use the new interface, the 15 41*rest of this include file may be discarded. 15 42*************************/ 15 43 15 44 /* The limit of 36 is arbitrary- there is no reason that it can not be 15 45* extended at any time. */ 15 46 15 47 dcl ( 15 48 SB_disk_err init (1), SBL_disk_err init (5), 15 49 SB_hw_fault init (2), SBL_hw_fault init (176), 15 50 SB_io_err init (3), SBL_io_err init (5), 15 51 SB_unused_4 init (4), SBL_unused_4 init (1), /* was "mos_poll" (mos poll time) */ 15 52 SB_mos_err init (5), SBL_mos_err init (2), /* mos memory error data */ 15 53 SB_unused_6 init (6), SBL_unused_6 init (1), /* was "bulk_status" (bulk dcb status) */ 15 54 SB_unused_7 init (7), SBL_unused_7 init (1), /* was "bulk_csb" (bulk csb status) */ 15 55 SB_unused_8 init (8), SBL_unused_8 init (3), /* was "free_st_1" */ 15 56 SB_unused_9 init (9), SBL_unused_9 init (2), /* was "free_st_2" */ 15 57 SB_unused_10 init (10), SBL_unused_10 init (21), /* was "unpr_add" */ 15 58 SB_zerpag init (11), SBL_zerpag init (20), 15 59 SB_unused_12 init (12), SBL_unused_12 init (20), /* was "unpr_add" */ 15 60 SB_vtoc_salv_dam init (13), SBL_vtoc_salv_dam init (20), 15 61 SB_unused_14 init (14), SBL_unused_14 init (20), /* was "page_rw_err" */ 15 62 SB_unused_15 init (15), SBL_unused_15 init (3), /* was "ruad" */ 15 63 SB_random_segdamage init (16), SBL_random_segdamage init (20), 15 64 SB_read_nc init (17), SBL_read_nc init (2), 15 65 SB_unused_18 init (18), SBL_unused_18 init (2), /* was "vtoc_err" */ 15 66 SB_mdc_del_uidpath init (19), SBL_mdc_del_uidpath init (16), 15 67 SB_ocdcm_err init (20), SBL_ocdcm_err init (5), 15 68 SB_mmdam init (21), SBL_mmdam init (2), 15 69 SB_verify_lock init (22), SBL_verify_lock init (176), 15 70 SB_io_err_detail init (23), SBL_io_err_detail init (11), 15 71 SB_mpc_poll init (24), SBL_mpc_poll init (256) /* max */, 15 72 SB_fnp_poll init (25), SBL_fnp_poll init (256) /* max */, 15 73 SB_config_deck init (26), SBL_config_deck init (256) /* 16 cards at 16 words */, 15 74 SB_vtoce init (27), SBL_vtoce init (192), /* 1 VTOCE */ 15 75 SB_access_audit init (28), SBL_access_audit init (256), /* max */ 15 76 SB_ibm3270_mde init (35), SBL_ibm3270_mde init (256), /* max */ 15 77 SB_end_of_table init (36), SBL_end_of_table init (1) 15 78 ) internal static options (constant) fixed bin; 15 79 15 80 15 81 /* The following array is a mapping of the old syserr$binary codes into the 15 82*new data classes for MR11. It is primarily used by syserr_copy to translate 15 83*the binary data codes stored in the wired syserr log (see above) into the data 15 84*classes needed by the ring-0 paged syserr log which is a new format log. It 15 85*is also used by syserr_log_util_ to translate the data classes back into the 15 86*corresponding binary code (for tools not yet upgraded to deal with the new 15 87*format log messages). */ 15 88 15 89 dcl SB_char_data_classes (36) char (16) varying internal static options (constant) 15 90 init ( "io_status", /* 1 */ 15 91 "hwfault", /* 2 */ 15 92 "io_status", /* 3 */ 15 93 "unused_4", /* 4 */ 15 94 "mos", /* 5 */ 15 95 15 96 "unused_6", /* 6 */ 15 97 "unused_7", /* 7 */ 15 98 "unused_8", /* 8 */ 15 99 "unused_9", /* 9 */ 15 100 "unused_10", /* 10 */ 15 101 15 102 "segdamage", /* 11 */ 15 103 "unused_12", /* 12 */ 15 104 "segdamage", /* 13 */ 15 105 "unused_14", /* 14 */ 15 106 "unused_15", /* 15 */ 15 107 15 108 "segdamage", /* 16 */ 15 109 "voldamage", /* 17 */ 15 110 "unused_18", /* 18 */ 15 111 "mdc_del_uidpath", /* 19 */ 15 112 "io_status", /* 20 */ 15 113 15 114 "mmdam", /* 21 */ 15 115 "hwfault", /* 22 */ 15 116 "io_status", /* 23 */ 15 117 "mpc_poll", /* 24 */ 15 118 "fnp_poll", /* 25 */ 15 119 15 120 "config_deck", /* 26 */ 15 121 "vtoce", /* 27 */ 15 122 "access_audit", /* 28 */ 15 123 "unused_29", /* 29 */ 15 124 "unused_30", /* 30 */ 15 125 "unused_31", /* 31 */ 15 126 "unused_32", /* 32 */ 15 127 "unused_33", /* 33 */ 15 128 "unused_34", /* 34 */ 15 129 "ibm3270_mde", /* 35 */ 15 130 "unused_36" /* 36 */ 15 131 ); 15 132 15 133 15 134 /* format: on */ 15 135 15 136 /* These constants are used by various tools which analyze syserr messages and 15 137*still call the old interface "syserr_log_util_". */ 15 138 15 139 dcl syserr_binary_mos_mask init ("060000000000"b3) bit (36) static options (constant); 15 140 dcl syserr_binary_seg_damage_mask init ("000374000000"b3) bit (36) static options (constant); 15 141 dcl syserr_binary_vol_damage_mask init ("003413000000"b3) bit (36) static options (constant); 15 142 dcl syserr_binary_address_damage_mask init ("002010000000"b3) bit (36) static options (constant); 15 143 15 144 dcl display_cpu_error_binary_defs (2) init ( 15 145 2, /** SB_hw_fault */ 15 146 22 /** SB_verify_lock */ 15 147 ) internal static options (constant) fixed bin; 15 148 15 149 /* END INCLUDE FILE syserr_binary_def.incl.pl1 */ 901 902 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 16 2* 16 3* Values for the "access mode" argument so often used in hardcore 16 4* James R. Davis 26 Jan 81 MCR 4844 16 5* Added constants for SM access 4/28/82 Jay Pattin 16 6* Added text strings 03/19/85 Chris Jones 16 7**/ 16 8 16 9 16 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 16 11 dcl ( 16 12 N_ACCESS init ("000"b), 16 13 R_ACCESS init ("100"b), 16 14 E_ACCESS init ("010"b), 16 15 W_ACCESS init ("001"b), 16 16 RE_ACCESS init ("110"b), 16 17 REW_ACCESS init ("111"b), 16 18 RW_ACCESS init ("101"b), 16 19 S_ACCESS init ("100"b), 16 20 M_ACCESS init ("010"b), 16 21 A_ACCESS init ("001"b), 16 22 SA_ACCESS init ("101"b), 16 23 SM_ACCESS init ("110"b), 16 24 SMA_ACCESS init ("111"b) 16 25 ) bit (3) internal static options (constant); 16 26 16 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 16 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 16 29 16 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 16 31 static options (constant); 16 32 16 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 16 34 static options (constant); 16 35 16 36 dcl ( 16 37 N_ACCESS_BIN init (00000b), 16 38 R_ACCESS_BIN init (01000b), 16 39 E_ACCESS_BIN init (00100b), 16 40 W_ACCESS_BIN init (00010b), 16 41 RW_ACCESS_BIN init (01010b), 16 42 RE_ACCESS_BIN init (01100b), 16 43 REW_ACCESS_BIN init (01110b), 16 44 S_ACCESS_BIN init (01000b), 16 45 M_ACCESS_BIN init (00010b), 16 46 A_ACCESS_BIN init (00001b), 16 47 SA_ACCESS_BIN init (01001b), 16 48 SM_ACCESS_BIN init (01010b), 16 49 SMA_ACCESS_BIN init (01011b) 16 50 ) fixed bin (5) internal static options (constant); 16 51 16 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 902 903 904 905 /* BEGIN MESSAGE DOCUMENTATION 906* 907* Message: 908* access_audit_log_fault_: (USER_ID) Encountered illegal meter index value. 909* 910* S: $info 911* 912* T: $run 913* 914* M: $err 915* The access audit meters in active_hardcore_data are inconsistant 916* with the format of the process access flags. 917* 918* A: $notify 919* 920* 921* Message: 922* access_audit_log_fault_: (USER_ID) Called with bad machine conditions. 923* 924* S: $info 925* 926* T: $run 927* 928* M: $err 929* access_audit_log_fault_ was given machine conditions for a fault 930* which was neither an illegal_procedure or an access_violation. 931* 932* A: $notify 933* 934* 935* Message: 936* access_audit_log_fault_: (USER_ID) Unable to get access mode for data seg #N due to "MESSAGE". 937* 938* S: $info 939* 940* T: $run 941* 942* M: $err 943* A call to fs_modes failed unexpectedly. The AUDIT message text 944* will show the modes as "???" and ring brackets of 7,7,7. The 945* message binary will reflect null access mode and ring bracket 946* of 7,7,7. 947* 948* A: $notify 949* 950* 951* Message: 952* access_audit_log_fault_: (USER_ID) Unable to get entry pointer for seg #N due to "MESSAGE". 953* 954* S: $info 955* 956* T: $run 957* 958* M: $err 959* A call to sum$getbranch_root_my returned an unexpected error code. 960* 961* A: $notify 962* 963* 964* Message: 965* access_audit_log_fault_: (USER_ID Unable to get path of seg #N due to "MESSAGE". 966* 967* S: $info 968* 969* T: $run 970* 971* M: $err 972* A call to get_pathname_ returned an unexpected error code. 973* 974* A: $notify 975* 976* 977* Message: 978* access_audit_log_fault_: Link entry where branch expected (ep=PTR). 979* 980* S: $crash 981* 982* T: $run 983* 984* M: $err 985* After getting a directory entry for a specific segno the branch 986* switch in the entry was found to be off. 987* 988* A: $recover 989* 990* 991* Message: 992* access_audit_log_fault_: (USER_ID) Unable to get UID path for directory seg #N due to "MESSAGE". 993* 994* S: $info 995* 996* T: $run 997* 998* M: $err 999* Although the directory is locked, a failure occurred in 1000* uid_path_util$get. 1001* 1002* A: $notify 1003* 1004* 1005* Message: 1006* access_audit_log_fault_: (USER_ID) Unable to get raw access modes for entry PTR due to "MESSAGE". 1007* 1008* S: $info 1009* 1010* T: $run 1011* 1012* M: $err 1013* Although the directory is locked a failure occurred in 1014* access_mode$raw. 1015* 1016* A: $notify 1017* 1018* 1019* END MESSAGE DOCUMENTATION */ 1020 1021 1022 end access_audit_log_fault_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0806.0 access_audit_log_fault_.pl1 >spec>install>1112>access_audit_log_fault_.pl1 887 1 01/30/85 1523.9 access_audit_flags.incl.pl1 >ldd>include>access_audit_flags.incl.pl1 888 2 01/30/85 1523.9 access_audit_eventflags.incl.pl1 >ldd>include>access_audit_eventflags.incl.pl1 889 3 02/12/85 1429.5 access_audit_bin_header.incl.pl1 >ldd>include>access_audit_bin_header.incl.pl1 890 4 05/17/85 0615.5 access_audit_binary_def.incl.pl1 >ldd>include>access_audit_binary_def.incl.pl1 891 5 02/12/85 1429.5 access_audit_ssobj_info.incl.pl1 >ldd>include>access_audit_ssobj_info.incl.pl1 892 6 12/15/83 1100.4 mc.incl.pl1 >ldd>include>mc.incl.pl1 893 7 06/22/81 1815.3 fault_vector.incl.pl1 >ldd>include>fault_vector.incl.pl1 894 8 05/24/82 1005.0 slt.incl.pl1 >ldd>include>slt.incl.pl1 895 9 07/11/84 0937.3 slte.incl.pl1 >ldd>include>slte.incl.pl1 896 10 09/14/76 0759.8 sdw.incl.pl1 >ldd>include>sdw.incl.pl1 897 11 05/24/82 1005.0 dir_header.incl.pl1 >ldd>include>dir_header.incl.pl1 898 12 04/29/76 1100.6 dir_entry.incl.pl1 >ldd>include>dir_entry.incl.pl1 899 13 11/02/76 1414.7 dir_name.incl.pl1 >ldd>include>dir_name.incl.pl1 900 14 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.incl.pl1 901 15 03/15/85 0953.1 syserr_binary_def.incl.pl1 >ldd>include>syserr_binary_def.incl.pl1 902 16 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.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. AAB_ss_object constant fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 ref 700 ACCESS_AUDIT_HEADER_VERSION_3 constant fixed bin(9,0) initial unsigned dcl 3-54 ref 760 ACV_Fault_Ctl_Str 000351 constant char(200) initial packed unaligned dcl 291 set ref 498* ACV_Fault_Names 000433 constant char(24) initial array packed unaligned dcl 268 ref 410 ACV_Mode_Mask constant bit(20) initial dcl 289 ref 401 ARH_TYPE_NO_PROXY constant fixed bin(17,0) initial dcl 3-52 ref 758 DATA_SEG constant fixed bin(17,0) initial dcl 57 set ref 374* 454* 618 E_ACCESS constant bit(3) initial packed unaligned dcl 16-11 ref 489 489 FAULTS_AUDIT_FLAG_INDEX constant fixed bin(17,0) initial dcl 1-49 ref 203 FAULT_NO_ACV constant fixed bin(17,0) initial dcl 7-20 ref 320 FAULT_NO_IPR constant fixed bin(17,0) initial dcl 7-20 ref 318 False constant bit(1) initial dcl 55 ref 180 186 195 227 534 535 540 594 595 610 635 646 660 IPR_Fault_Ctl_Str 000206 constant char(177) initial packed unaligned dcl 309 set ref 380* IPR_Fault_Names 000263 constant char(24) initial array packed unaligned dcl 295 ref 347 IPR_Priv_Mask constant bit(36) initial dcl 307 ref 337 MSG_Access_Mode 000137 constant char(86) initial packed unaligned dcl 475 set ref 473* MSG_Bad_MC 000165 constant char(65) initial packed unaligned dcl 324 set ref 323* MSG_Dir_UID 000023 constant char(75) initial packed unaligned dcl 705 set ref 704* MSG_Expected_Branch 000046 constant char(66) initial packed unaligned dcl 691 set ref 689* MSG_Get_Entry 000112 constant char(84) initial packed unaligned dcl 555 set ref 553* MSG_Get_Path 000067 constant char(74) initial packed unaligned dcl 656 set ref 654* MSG_Meter_Index 000611 constant char(68) initial packed unaligned dcl 208 set ref 207* MSG_Raw_Access 000000 constant char(74) initial packed unaligned dcl 717 set ref 716* PROC_SEG constant fixed bin(17,0) initial dcl 56 set ref 358* 438* R_ACCESS constant bit(3) initial packed unaligned dcl 16-11 ref 487 487 SBL_hw_fault 000610 constant fixed bin(17,0) initial dcl 15-47 set ref 323* SB_access_audit 000607 constant fixed bin(17,0) initial dcl 15-47 set ref 855* SB_hw_fault 000674 constant fixed bin(17,0) initial dcl 15-47 set ref 323* SYSERR_CRASH_SYSTEM 000675 constant fixed bin(17,0) initial dcl 14-7 set ref 689* SYSERR_LOG_OR_PRINT 000667 constant fixed bin(17,0) initial dcl 14-7 set ref 207* 323* 473* 553* 654* 704* 716* 854 SYSERR_UNSUCCESSFUL_ACCESS constant fixed bin(17,0) initial dcl 14-7 ref 854 True constant bit(1) initial dcl 54 ref 337 560 599 606 616 650 734 762 W_ACCESS constant bit(3) initial packed unaligned dcl 16-11 ref 431 431 491 491 a_entry_ptr parameter pointer dcl 530 set ref 525 536* 544* a_have_entry parameter bit(1) dcl 531 set ref 525 535* 540* 562* a_locked_dir parameter bit(1) dcl 529 set ref 525 534* 560* a_mc_ptr parameter pointer dcl 49 ref 20 20 185 a_obj_ptr parameter pointer dcl 528 ref 525 538 544 544 553 553 access 1(15) based structure level 2 packed packed unaligned dcl 10-5 ref 464 access_auth 001120 automatic char(32) packed unaligned dcl 261 set ref 377* 380* 495* 498* access_class 26 based bit(72) level 2 in structure "audit_ssobj_info" dcl 5-13 in procedure "log_fault" set ref 712* 732* access_class 33 based bit(72) level 2 in structure "entry" dcl 12-8 in procedure "log_fault" set ref 618* 625* 712 732 access_mode$raw 000060 constant entry external dcl 154 ref 713 access_operations_$fault_acv_mode 000012 external static bit(36) dcl 113 ref 401 access_operations_$fault_acv_ring 000014 external static bit(36) dcl 115 ref 405 access_operations_$fault_ipr 000010 external static bit(36) dcl 111 ref 342 active_all_rings_data$hcscnt 000016 external static fixed bin(17,0) dcl 117 ref 538 597 active_hardcore_data$access_audit_count 000022 external static fixed bin(35,0) array dcl 125 set ref 214* 214 active_hardcore_data$access_audit_cpu_time 000024 external static fixed bin(71,0) array dcl 129 set ref 215* 215 active_hardcore_data$access_audit_num_meters 000020 external static fixed bin(17,0) dcl 123 ref 205 210 active_hardcore_data$access_audit_pagefaults 000026 external static fixed bin(35,0) array dcl 131 set ref 217* 217 addr builtin function dcl 93 ref 182 317 462 462 601 602 696 756 839 844 855 855 anonymous 14(03) based bit(1) level 3 packed packed unaligned dcl 3-18 set ref 766* arh_header_ based structure level 1 dcl 3-26 arh_user_info_ based structure level 1 dcl 3-39 audit_event_flags based structure level 1 dcl 2-5 audit_flag 25(22) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 728* audit_flag 32(06) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 728 audit_record_header based structure level 1 dcl 3-18 set ref 839 840 audit_record_ptr 000402 automatic pointer dcl 3-16 set ref 756* 758 760 762 763 763 763 765 766 767 768 769 771 773 774 775 839 840 audit_ssobj_info based structure level 1 dcl 5-13 set ref 699* 844 845 audit_ssobj_info_ptr 000404 automatic pointer dcl 5-11 set ref 696* 699 700 701 707 710 711 712 713 713 719 720 722 723 724 725 726 727 728 729 730 731 732 844 845 authorization 16 based bit(72) level 3 dcl 3-18 set ref 768* authorization_range 20 based bit(72) array level 3 dcl 3-18 set ref 769* 771* baseptr builtin function dcl 94 ref 356 356 419 419 430 430 470 470 621 621 639 639 bin_info_array 001234 automatic structure array level 1 dcl 833 set ref 855 855 bs 4 based bit(1) level 2 packed packed unaligned dcl 12-8 ref 687 ca 5 based bit(18) level 2 packed packed unaligned dcl 6-56 ref 352 415 char100 001256 automatic char(100) dcl 878 set ref 880* 882 char8 001254 automatic char(8) dcl 877 set ref 880* code 000100 automatic fixed bin(35,0) dcl 62 set ref 430* 431 470* 471 473* 473* 544* 545 545* 547 547* 549 549 551 553* 553* 562 612* 614 631 637 654* 654* 701* 702 713* 714 code1 001164 automatic fixed bin(35,0) dcl 589 set ref 639* 640 convert_access_operation_ 000064 constant entry external dcl 156 ref 346 409 convert_status_code_ 000066 constant entry external dcl 158 ref 880 copysw 32(03) based bit(1) level 2 packed packed unaligned dcl 12-8 ref 423 data_is_slt_seg 001070 automatic bit(1) dcl 257 set ref 374* 380* 454* 460 498* data_path_ok 001071 automatic bit(1) dcl 258 set ref 374* 380* 454* 498* data_seg_class 001060 automatic char(32) packed unaligned dcl 256 set ref 374* 380* 454* 498* data_seg_no 000651 automatic fixed bin(17,0) dcl 253 set ref 351* 356 356 374* 380* 414* 419 419 430 430 454* 462 470 470 473* 498* data_seg_offset 000652 automatic fixed bin(18,0) dcl 254 set ref 352* 380* 380* 415* 498* 498* data_seg_path 000653 automatic varying char(528) dcl 255 set ref 374* 380* 454* 498* dirsw 25(18) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 724* dirsw 32 based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 724 display_access_class_ 000062 constant entry external dcl 155 ref 377 495 618 622 625 dseg$ 000030 external static fixed bin(17,0) dcl 134 set ref 462 dtem 22 based bit(36) level 2 in structure "audit_ssobj_info" dcl 5-13 in procedure "log_fault" set ref 711* dtem 3 based bit(36) level 2 in structure "entry" dcl 12-8 in procedure "log_fault" ref 711 ec parameter fixed bin(35,0) dcl 875 set ref 872 880* entry based structure level 1 dcl 12-8 entry_ptr 000102 automatic pointer dcl 63 set ref 194 194 226 226 356* 419* 423 423 618 684 687 689* 701 701 704 704 710 711 712 713* 716* 722 723 724 725 726 727 728 729 730 731 732 entry_uid 21 based bit(36) level 2 dcl 5-13 set ref 710* entrypt_sw 25(24) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 730* entrypt_sw 32(08) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 730 error_table_$invalidsegno 000032 external static fixed bin(35,0) dcl 135 ref 549 631 error_table_$mylock 000034 external static fixed bin(35,0) dcl 137 ref 545 error_table_$noentry 000036 external static fixed bin(35,0) dcl 138 ref 549 637 error_table_$root 000040 external static fixed bin(35,0) dcl 139 ref 547 even_inst 6 based bit(36) level 2 dcl 6-56 set ref 380* 498* event_flags 2 based bit(36) level 3 in structure "audit_record_header" dcl 3-18 in procedure "log_fault" set ref 775* event_flags 000104 automatic structure level 1 dcl 64 in procedure "log_fault" set ref 183* 775 ex_mode 24 based bit(36) level 2 dcl 5-13 set ref 713* 720* ex_mode_str 001132 automatic bit(36) dcl 264 set ref 430* 470* ex_ring_brackets 35(09) based bit(3) array level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 723 ex_ring_brackets 25(09) based bit(3) array level 2 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 723* fault_desc 001072 automatic varying char(80) dcl 259 set ref 346* 347* 347 380* 409* 410* 410 498* fd 1 based structure level 2 in structure "scux" packed packed unaligned dcl 6-207 in procedure "log_fault" ref 337 347 fd 1 based structure level 2 in structure "scu" packed packed unaligned dcl 6-56 in procedure "log_fault" ref 401 410 fi_num 1(30) based bit(5) level 2 packed packed unaligned dcl 6-56 ref 318 320 final_cpu 000106 automatic fixed bin(71,0) dcl 66 set ref 213* 215 final_pagefaults 000110 automatic fixed bin(17,0) dcl 67 set ref 213* 217 fixed builtin function dcl 95 ref 318 320 349 350 351 352 412 413 414 415 465 466 467 flags 25(18) based structure level 2 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" flags 0(18) based structure level 3 in structure "audit_record_header" packed packed unaligned dcl 3-18 in procedure "log_fault" fs_get$ref_name 000074 constant entry external dcl 162 ref 639 fs_modes$locked 000072 constant entry external dcl 160 ref 430 470 get_pathname_ 000070 constant entry external dcl 159 ref 612 group_id parameter char(32) dcl 782 ref 779 788 have_entry_sw 000111 automatic bit(1) dcl 68 set ref 356* 419* 423 684 header based structure level 2 dcl 3-18 i 000112 automatic fixed bin(17,0) dcl 69 set ref 203* 205 210* 214 214 215 215 217 217 791* 792 797 797 800 802* 803 808 808 811 ilc 4 based bit(18) level 2 packed packed unaligned dcl 6-56 ref 350 413 index builtin function dcl 96 ref 347 410 791 802 info_type based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 5-13 set ref 700* initial_cpu 000114 automatic fixed bin(71,0) dcl 70 set ref 177* 215 initial_pagefaults 000116 automatic fixed bin(17,0) dcl 71 set ref 177* 217 ioa_$rsnpnnl 000076 constant entry external dcl 163 ref 380 498 l_entry_ptr 001166 automatic pointer dcl 591 set ref 621* 622 625 627 627 l_group_id 001216 automatic char(32) packed unaligned dcl 786 set ref 788* 791 794 797 800* 800 802 805 808 811 l_have_entry 001170 automatic bit(1) dcl 592 set ref 621* 622 l_locked_dir 001165 automatic bit(1) dcl 590 set ref 621* 627 len 2 001234 automatic fixed bin(17,0) array level 2 dcl 833 set ref 840* 845* 850* length builtin function dcl 97 ref 181 level$get 000100 constant entry external dcl 164 ref 378 496 765 local_audit_header 000117 automatic structure level 1 dcl 72 set ref 756 local_ssobj_info 000143 automatic structure level 1 dcl 74 set ref 696 lock$dir_unlock 000102 constant entry external dcl 165 ref 194 226 627 locked_dir 000173 automatic bit(1) dcl 76 set ref 186* 192 195* 223 227* 356* 419* master_dir 32(09) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 731 master_dir 25(25) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 731* mc based structure level 1 dcl 6-12 mcp 000406 automatic pointer dcl 6-10 set ref 185* 317 323* min builtin function dcl 98 ref 347 410 mode_chars 001133 automatic char(4) packed unaligned dcl 265 set ref 459* 480* 486* 487* 489* 489 491* 491 498* mode_str 001131 automatic bit(36) dcl 263 set ref 430* 431 464* 470* 479* 484 487 489 491 msg_text based char packed unaligned dcl 87 set ref 855* msg_text_buff 000176 automatic char(512) dcl 79 set ref 181 182 380* 498* msg_text_len 000376 automatic fixed bin(21,0) dcl 81 set ref 181* 380* 498* 855 855 msg_text_ptr 000400 automatic pointer dcl 82 set ref 182* 855 multiple_class 25(21) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 727* multiple_class 32(05) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 727 n_audit_access_types constant fixed bin(17,0) initial dcl 1-35 ref 203 n_audit_objects constant fixed bin(17,0) initial dcl 1-31 ref 203 n_locks 001117 automatic fixed bin(17,0) dcl 260 set ref 354* 380 380* 380 417* 498 498* 498 n_pieces 001244 automatic fixed bin(17,0) dcl 836 set ref 846* 851* 855* name 2 based char(32) array level 3 packed packed unaligned dcl 8-31 ref 604 name_seg_ptr based pointer level 2 dcl 8-13 ref 603 namep 000414 automatic pointer dcl 8-7 set ref 603* 604 names 1 based structure array level 2 dcl 8-31 names_ptr based bit(18) level 2 packed packed unaligned dcl 9-48 ref 603 null builtin function dcl 99 ref 423 536 622 684 849 object_info_valid_sw 000174 automatic bit(1) dcl 77 set ref 180* 734* 773 842 object_is_valid 0(19) based bit(1) level 4 packed packed unaligned dcl 3-18 set ref 773* odd_inst 7 based bit(36) level 2 dcl 6-56 set ref 380* 498* oper_code 000175 automatic bit(36) dcl 78 set ref 184* 342* 346 346 401* 405* 409 409 774 operation_code 1 based bit(36) level 3 dcl 3-18 set ref 774* owb 1(05) based bit(1) level 3 packed packed unaligned dcl 6-56 ref 423 p 001234 automatic pointer array level 2 dcl 833 set ref 839* 844* 849* parent_uid_path 1 based bit(36) array level 2 dcl 5-13 set ref 701* 707* path_ok_sw parameter bit(1) dcl 586 set ref 578 595* 606* 616* 635* 646* 650* 660* pds$access_authorization 000042 external static bit(72) dcl 140 set ref 377* 495* 768 pds$block_lock_count 000044 external static fixed bin(17,0) dcl 142 ref 354 417 pds$max_access_authorization 000046 external static bit(72) dcl 143 ref 771 pds$process_group_id 000050 external static char(32) dcl 145 set ref 207* 323* 380* 473* 498* 553* 654* 704* 716* 763* 766 pds$process_id 000052 external static bit(36) dcl 146 ref 767 per_process_sw 32(02) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 725 per_process_sw 25(19) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 725* person 4 based char(22) level 3 in structure "audit_record_header" packed packed unaligned dcl 3-18 in procedure "log_fault" set ref 763* person parameter char(22) packed unaligned dcl 783 in procedure "parse_group_id" set ref 779 789* 794* 797* pointer builtin function dcl 100 ref 194 194 226 226 544 544 603 627 627 701 701 ppr based structure level 2 packed packed unaligned dcl 6-56 priv_op 0(03) 000104 automatic bit(1) level 2 packed packed unaligned dcl 64 set ref 337* proc_is_slt_seg 000647 automatic bit(1) dcl 251 set ref 358* 380* 438* 498* proc_path_ok 000650 automatic bit(1) dcl 252 set ref 358* 380* 438* 498* proc_seg_class 000637 automatic char(32) packed unaligned dcl 250 set ref 358* 380* 438* 498* proc_seg_no 000430 automatic fixed bin(17,0) dcl 247 set ref 349* 358* 380* 412* 438* 498* proc_seg_offset 000431 automatic fixed bin(18,0) dcl 248 set ref 350* 380* 380* 413* 498* 498* proc_seg_path 000432 automatic varying char(528) dcl 249 set ref 358* 380* 438* 498* process_id 15 based bit(36) level 3 dcl 3-18 set ref 767* project 11(18) based char(9) level 3 in structure "audit_record_header" packed packed unaligned dcl 3-18 in procedure "log_fault" set ref 763* project parameter char(9) packed unaligned dcl 784 in procedure "parse_group_id" set ref 779 789* 805* 808* psr 0(03) based bit(15) level 3 packed packed unaligned dcl 6-56 ref 349 412 r1 0(24) based bit(3) level 2 packed packed unaligned dcl 10-5 ref 465 r2 0(27) based bit(3) level 2 packed packed unaligned dcl 10-5 ref 466 r3 0(30) based bit(3) level 2 packed packed unaligned dcl 10-5 ref 467 raw_mode 23 based bit(36) level 2 dcl 5-13 set ref 713* 719* ref_name 001154 automatic char(32) packed unaligned dcl 588 set ref 639* 642 ring 001130 automatic fixed bin(17,0) dcl 262 in procedure "interpret_machine_conditions" set ref 378* 380* 496* 498* ring 14 based fixed bin(3,0) level 3 in structure "audit_record_header" packed packed unsigned unaligned dcl 3-18 in procedure "log_fault" set ref 765* ring_brackets 001134 automatic fixed bin(3,0) array dcl 266 in procedure "interpret_machine_conditions" set ref 430* 465* 466* 467* 470* 478* 498* ring_brackets 25 based bit(3) array level 2 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 722* ring_brackets 35 based bit(3) array level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 722 rtrim builtin function dcl 101 ref 346 409 489 491 safety_sw 32(04) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 726 safety_sw 25(20) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 726* scu based structure level 1 dcl 6-56 in procedure "log_fault" scu 30 based bit(36) array level 2 in structure "mc" packed packed unaligned dcl 6-12 in procedure "log_fault" set ref 317 scup 000410 automatic pointer dcl 6-54 set ref 317* 318 320 337 347 349 350 351 352 380 380 401 410 412 413 414 415 423 423 498 498 scux based structure level 1 dcl 6-207 sdw based structure level 1 dcl 10-5 sdwa based structure array level 1 dcl 10-24 set ref 462 sdwp 000420 automatic pointer dcl 10-3 set ref 462* 464 465 466 467 security_oosw 25(23) based bit(1) level 3 in structure "audit_ssobj_info" packed packed unaligned dcl 5-13 in procedure "log_fault" set ref 729* security_oosw 32(07) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 12-8 in procedure "log_fault" ref 729 seg 10 based structure array level 2 dcl 8-13 set ref 602 seg_class parameter char(32) packed unaligned dcl 584 set ref 578 605* 618* 622* 625* 626* 634* 645* 649* 659* seg_no parameter fixed bin(17,0) dcl 582 set ref 578 597 602 612* 621 621 639 639 654* seg_path parameter varying char(528) dcl 583 set ref 578 604* 612* 633* 642* 643 658* segnam based structure level 1 dcl 8-31 segno builtin function dcl 102 ref 538 553 553 704 704 size builtin function dcl 103 ref 840 845 slt based structure level 1 dcl 8-13 slt$ 000054 external static fixed bin(17,0) dcl 147 set ref 601 slt_sw parameter bit(1) dcl 585 set ref 578 594* 599* 610* slte based structure level 1 dcl 9-48 sltep 000416 automatic pointer dcl 9-8 set ref 602* 603 sltp 000412 automatic pointer dcl 8-7 set ref 601* 602 603 string builtin function dcl 104 ref 337 347 401 410 464 subject 4 based structure level 2 dcl 3-18 subject_is_process 0(18) based bit(1) level 4 packed packed unaligned dcl 3-18 set ref 762* substr builtin function dcl 105 ref 464 766 797 800 808 811 sum$getbranch_root_my 000104 constant entry external dcl 166 ref 544 sys_info$access_class_floor 000056 external static bit(72) dcl 148 set ref 622* 769 syserr 000106 constant entry external dcl 167 ref 207 473 553 654 689 704 716 syserr$binary 000110 constant entry external dcl 168 ref 323 syserr$multiple_binary 000112 constant entry external dcl 169 ref 855 syserr_code 001245 automatic fixed bin(17,0) dcl 837 set ref 854* 855* tag 13(27) based char(1) level 3 in structure "audit_record_header" packed packed unaligned dcl 3-18 in procedure "log_fault" set ref 763* tag parameter char(1) packed unaligned dcl 785 in procedure "parse_group_id" set ref 779 789* 811* tpr 2 based structure level 2 packed packed unaligned dcl 6-56 tsr 2(03) based bit(15) level 3 packed packed unaligned dcl 6-56 ref 351 414 type based fixed bin(9,0) level 3 in structure "audit_record_header" packed packed unsigned unaligned dcl 3-18 in procedure "log_fault" set ref 758* type parameter fixed bin(17,0) dcl 581 in procedure "get_known_seg_name_and_class" ref 578 618 uid 2 based bit(36) level 2 dcl 12-8 ref 710 uid_path_util$get 000116 constant entry external dcl 171 ref 701 unspec builtin function dcl 106 set ref 183* 184* 342* 346 346 401* 405* 409 409 699* 774 775 usage_values 000114 constant entry external dcl 170 ref 177 213 version 0(09) based fixed bin(9,0) level 3 packed packed unsigned unaligned dcl 3-18 set ref 760* w_off 1(06) based bit(1) level 3 packed packed unaligned dcl 6-56 ref 423 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AAB_channel internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_dial_service internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_ia_abs internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_ia_abs_proxy internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_ia_int_dmn internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_mseg_msg internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_pnt_entry internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_rcp_object internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 AAB_ss_link internal static fixed bin(9,0) initial packed unsigned unaligned dcl 4-18 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 ANNOUNCE internal static fixed bin(17,0) initial dcl 14-7 ARH_TYPE_PROXY internal static fixed bin(17,0) initial dcl 3-50 A_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 BEEP internal static fixed bin(17,0) initial dcl 14-7 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 CRASH internal static fixed bin(17,0) initial dcl 14-7 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 16-33 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 FAULT_NO_CMD internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_CON internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_DF0 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_DF1 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_DF2 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_DF3 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_DIV internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_DRL internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_EXF internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_F1 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_F2 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_F3 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_LUF internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_MME internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_MME2 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_MME3 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_MME4 internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_OFL internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_ONC internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_PAR internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_SDF internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_STR internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_SUF internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_TRB internal static fixed bin(17,0) initial dcl 7-20 FAULT_NO_TRO internal static fixed bin(17,0) initial dcl 7-20 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 JUST_LOG internal static fixed bin(17,0) initial dcl 14-7 LOG internal static fixed bin(17,0) initial dcl 14-7 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 packed unaligned dcl 16-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 NONE internal static fixed bin(2,0) initial unsigned dcl 1-58 N_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-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 packed unaligned dcl 16-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 SBL_access_audit internal static fixed bin(17,0) initial dcl 15-47 SBL_config_deck internal static fixed bin(17,0) initial dcl 15-47 SBL_disk_err internal static fixed bin(17,0) initial dcl 15-47 SBL_end_of_table internal static fixed bin(17,0) initial dcl 15-47 SBL_fnp_poll internal static fixed bin(17,0) initial dcl 15-47 SBL_ibm3270_mde internal static fixed bin(17,0) initial dcl 15-47 SBL_io_err internal static fixed bin(17,0) initial dcl 15-47 SBL_io_err_detail internal static fixed bin(17,0) initial dcl 15-47 SBL_mdc_del_uidpath internal static fixed bin(17,0) initial dcl 15-47 SBL_mmdam internal static fixed bin(17,0) initial dcl 15-47 SBL_mos_err internal static fixed bin(17,0) initial dcl 15-47 SBL_mpc_poll internal static fixed bin(17,0) initial dcl 15-47 SBL_ocdcm_err internal static fixed bin(17,0) initial dcl 15-47 SBL_random_segdamage internal static fixed bin(17,0) initial dcl 15-47 SBL_read_nc internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_10 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_12 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_14 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_15 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_18 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_4 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_6 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_7 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_8 internal static fixed bin(17,0) initial dcl 15-47 SBL_unused_9 internal static fixed bin(17,0) initial dcl 15-47 SBL_verify_lock internal static fixed bin(17,0) initial dcl 15-47 SBL_vtoc_salv_dam internal static fixed bin(17,0) initial dcl 15-47 SBL_vtoce internal static fixed bin(17,0) initial dcl 15-47 SBL_zerpag internal static fixed bin(17,0) initial dcl 15-47 SB_access_audit_data_class internal static varying char(16) initial dcl 15-21 SB_char_data_classes internal static varying char(16) initial array dcl 15-89 SB_config_deck internal static fixed bin(17,0) initial dcl 15-47 SB_config_deck_data_class internal static varying char(16) initial dcl 15-21 SB_disk_err internal static fixed bin(17,0) initial dcl 15-47 SB_end_of_table internal static fixed bin(17,0) initial dcl 15-47 SB_fnp_poll internal static fixed bin(17,0) initial dcl 15-47 SB_fnp_poll_data_class internal static varying char(16) initial dcl 15-21 SB_hwfault_data_class internal static varying char(16) initial dcl 15-21 SB_ibm3270_mde internal static fixed bin(17,0) initial dcl 15-47 SB_ibm3270_mde_data_class internal static varying char(16) initial dcl 15-21 SB_io_err internal static fixed bin(17,0) initial dcl 15-47 SB_io_err_detail internal static fixed bin(17,0) initial dcl 15-47 SB_io_status_data_class internal static varying char(16) initial dcl 15-21 SB_mdc_del_uidpath internal static fixed bin(17,0) initial dcl 15-47 SB_mdc_del_uidpath_data_class internal static varying char(16) initial dcl 15-21 SB_mmdam internal static fixed bin(17,0) initial dcl 15-47 SB_mmdam_data_class internal static varying char(16) initial dcl 15-21 SB_mos_data_class internal static varying char(16) initial dcl 15-21 SB_mos_err internal static fixed bin(17,0) initial dcl 15-47 SB_mpc_poll internal static fixed bin(17,0) initial dcl 15-47 SB_mpc_poll_data_class internal static varying char(16) initial dcl 15-21 SB_ocdcm_err internal static fixed bin(17,0) initial dcl 15-47 SB_random_segdamage internal static fixed bin(17,0) initial dcl 15-47 SB_read_nc internal static fixed bin(17,0) initial dcl 15-47 SB_segdamage_data_class internal static varying char(16) initial dcl 15-21 SB_unused_10 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_12 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_14 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_15 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_18 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_4 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_6 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_7 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_8 internal static fixed bin(17,0) initial dcl 15-47 SB_unused_9 internal static fixed bin(17,0) initial dcl 15-47 SB_verify_lock internal static fixed bin(17,0) initial dcl 15-47 SB_voldamage_data_class internal static varying char(16) initial dcl 15-21 SB_vtoc_salv_dam internal static fixed bin(17,0) initial dcl 15-47 SB_vtoce internal static fixed bin(17,0) initial dcl 15-47 SB_vtoce_data_class internal static varying char(16) initial dcl 15-21 SB_zerpag internal static fixed bin(17,0) initial dcl 15-47 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 16-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 SPECIAL_AUDIT_OBJECT_INDEX internal static fixed bin(17,0) initial dcl 1-39 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 14-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 14-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 14-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 14-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 14-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 14-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 14-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 14-7 S_ACCESS internal static bit(3) initial packed unaligned dcl 16-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 14-7 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 16-36 abx internal static fixed bin(17,0) initial dcl 6-42 aclp automatic pointer dcl 8-7 acls based structure level 1 dcl 8-45 active_hardcore_data$access_audit_check_count external static fixed bin(35,0) array dcl 127 apx internal static fixed bin(17,0) initial dcl 6-42 audit_binary_expanders internal static varying char(13) initial array dcl 4-46 audit_flags based structure level 1 dcl 1-13 audit_flags_alt based structure level 1 dcl 1-24 audit_link_info based structure level 1 dcl 5-46 audit_link_info_ptr automatic pointer dcl 5-44 audit_link_info_version internal static fixed bin(9,0) initial packed unsigned unaligned dcl 5-54 audit_record_header_proxy based structure level 1 dcl 3-22 audit_ssobj_info_version internal static fixed bin(9,0) initial packed unsigned unaligned dcl 5-39 bbx internal static fixed bin(17,0) initial dcl 6-42 bpx internal static fixed bin(17,0) initial dcl 6-42 dir based structure level 1 dcl 11-11 display_cpu_error_binary_defs internal static fixed bin(17,0) initial array dcl 15-144 dp automatic pointer dcl 11-9 ep automatic pointer dcl 12-6 fv based structure level 1 dcl 7-6 fvp automatic pointer dcl 7-4 lbx internal static fixed bin(17,0) initial dcl 6-42 lpx internal static fixed bin(17,0) initial dcl 6-42 n_audit_flags internal static fixed bin(17,0) initial dcl 1-33 name_seg based structure level 1 dcl 8-26 names based structure level 1 dcl 13-7 names_ptr automatic pointer dcl 8-7 np automatic pointer dcl 13-5 path based structure level 1 dcl 8-40 pathp automatic pointer dcl 8-7 sbx internal static fixed bin(17,0) initial dcl 6-42 slte_uns based structure level 1 dcl 9-10 spx internal static fixed bin(17,0) initial dcl 6-42 syserr_binary_address_damage_mask internal static bit(36) initial packed unaligned dcl 15-142 syserr_binary_mos_mask internal static bit(36) initial packed unaligned dcl 15-139 syserr_binary_seg_damage_mask internal static bit(36) initial packed unaligned dcl 15-140 syserr_binary_vol_damage_mask internal static bit(36) initial packed unaligned dcl 15-141 version_number_2 internal static fixed bin(17,0) initial dcl 11-84 NAMES DECLARED BY EXPLICIT CONTEXT. LOG_FAULT_EXIT 001124 constant label dcl 223 ref 326 427 431 558 access_audit_log_fault_ 000761 constant entry external dcl 20 build_object_info 003122 constant entry internal dcl 681 ref 190 die 003136 constant label dcl 689 set ref 693 error_text 003734 constant entry internal dcl 872 ref 473 473 553 553 654 654 form_audit_record_header 003427 constant entry internal dcl 753 ref 198 get_entry_ptr 002405 constant entry internal dcl 525 ref 356 419 621 get_known_seg_err 003056 constant label dcl 654 set ref 640 get_known_seg_name_and_class 002541 constant entry internal dcl 578 ref 358 374 438 454 interpret_acv_conditions 001544 constant label dcl 401 ref 320 interpret_ipr_conditions 001216 constant label dcl 337 ref 318 interpret_machine_conditions 001142 constant entry internal dcl 244 ref 188 log_fault 000751 constant entry external dcl 20 parse_group_id 003543 constant entry internal dcl 779 ref 763 write_log_message 003652 constant entry internal dcl 830 ref 200 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4556 4676 4064 4566 Length 5506 4064 120 574 471 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME log_fault 1224 external procedure is an external procedure. interpret_machine_conditions internal procedure shares stack frame of external procedure log_fault. get_entry_ptr internal procedure shares stack frame of external procedure log_fault. get_known_seg_name_and_class internal procedure shares stack frame of external procedure log_fault. build_object_info internal procedure shares stack frame of external procedure log_fault. form_audit_record_header internal procedure shares stack frame of external procedure log_fault. parse_group_id internal procedure shares stack frame of external procedure log_fault. write_log_message internal procedure shares stack frame of external procedure log_fault. error_text internal procedure shares stack frame of external procedure log_fault. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME log_fault 000100 code log_fault 000102 entry_ptr log_fault 000104 event_flags log_fault 000106 final_cpu log_fault 000110 final_pagefaults log_fault 000111 have_entry_sw log_fault 000112 i log_fault 000114 initial_cpu log_fault 000116 initial_pagefaults log_fault 000117 local_audit_header log_fault 000143 local_ssobj_info log_fault 000173 locked_dir log_fault 000174 object_info_valid_sw log_fault 000175 oper_code log_fault 000176 msg_text_buff log_fault 000376 msg_text_len log_fault 000400 msg_text_ptr log_fault 000402 audit_record_ptr log_fault 000404 audit_ssobj_info_ptr log_fault 000406 mcp log_fault 000410 scup log_fault 000412 sltp log_fault 000414 namep log_fault 000416 sltep log_fault 000420 sdwp log_fault 000430 proc_seg_no interpret_machine_conditions 000431 proc_seg_offset interpret_machine_conditions 000432 proc_seg_path interpret_machine_conditions 000637 proc_seg_class interpret_machine_conditions 000647 proc_is_slt_seg interpret_machine_conditions 000650 proc_path_ok interpret_machine_conditions 000651 data_seg_no interpret_machine_conditions 000652 data_seg_offset interpret_machine_conditions 000653 data_seg_path interpret_machine_conditions 001060 data_seg_class interpret_machine_conditions 001070 data_is_slt_seg interpret_machine_conditions 001071 data_path_ok interpret_machine_conditions 001072 fault_desc interpret_machine_conditions 001117 n_locks interpret_machine_conditions 001120 access_auth interpret_machine_conditions 001130 ring interpret_machine_conditions 001131 mode_str interpret_machine_conditions 001132 ex_mode_str interpret_machine_conditions 001133 mode_chars interpret_machine_conditions 001134 ring_brackets interpret_machine_conditions 001154 ref_name get_known_seg_name_and_class 001164 code1 get_known_seg_name_and_class 001165 l_locked_dir get_known_seg_name_and_class 001166 l_entry_ptr get_known_seg_name_and_class 001170 l_have_entry get_known_seg_name_and_class 001216 l_group_id parse_group_id 001234 bin_info_array write_log_message 001244 n_pieces write_log_message 001245 syserr_code write_log_message 001254 char8 error_text 001256 char100 error_text THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a r_e_as r_ne_as alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry index_bs_1_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. access_mode$raw convert_access_operation_ convert_status_code_ display_access_class_ fs_get$ref_name fs_modes$locked get_pathname_ ioa_$rsnpnnl level$get lock$dir_unlock sum$getbranch_root_my syserr syserr$binary syserr$multiple_binary uid_path_util$get usage_values THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. access_operations_$fault_acv_mode access_operations_$fault_acv_ring access_operations_$fault_ipr active_all_rings_data$hcscnt 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 dseg$ error_table_$invalidsegno error_table_$mylock error_table_$noentry error_table_$root pds$access_authorization pds$block_lock_count pds$max_access_authorization pds$process_group_id pds$process_id slt$ sys_info$access_class_floor LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 20 000746 177 000766 180 000776 181 000777 182 001001 183 001003 184 001004 185 001005 186 001011 188 001012 190 001013 192 001014 194 001017 195 001030 198 001031 200 001032 203 001033 205 001037 207 001042 210 001062 213 001065 214 001075 215 001104 217 001114 220 001123 223 001124 226 001127 227 001140 230 001141 244 001142 317 001143 318 001146 320 001156 323 001162 326 001215 337 001216 342 001223 346 001226 347 001271 349 001320 350 001324 351 001327 352 001333 354 001336 356 001341 358 001347 374 001351 377 001353 378 001367 380 001376 389 001543 401 001544 405 001554 409 001557 410 001623 412 001652 413 001656 414 001661 415 001665 417 001670 419 001673 423 001701 427 001720 430 001721 431 001744 438 001752 454 001754 459 001756 460 001760 462 001763 464 001770 465 001774 466 002000 467 002004 468 002010 470 002011 471 002034 473 002036 478 002070 479 002101 480 002102 484 002104 486 002106 487 002110 489 002116 491 002150 493 002203 495 002204 496 002220 498 002227 508 002404 525 002405 534 002407 535 002410 536 002411 538 002413 541 002423 544 002424 545 002445 547 002453 549 002457 551 002464 553 002466 558 002530 560 002531 562 002534 564 002540 578 002541 594 002543 595 002544 597 002545 599 002551 601 002553 602 002555 603 002560 604 002565 605 002573 606 002577 607 002601 610 002602 612 002603 614 002624 616 002626 618 002631 621 002654 622 002662 625 002710 626 002730 627 002735 630 002751 631 002752 633 002755 634 002760 635 002764 636 002765 637 002766 639 002770 640 003023 642 003025 643 003034 645 003041 646 003045 647 003046 649 003047 650 003053 652 003055 654 003056 658 003111 659 003114 660 003120 664 003121 681 003122 684 003123 687 003132 689 003136 693 003157 696 003160 699 003162 700 003165 701 003167 702 003204 704 003206 707 003237 710 003250 711 003254 712 003256 713 003262 714 003277 716 003301 719 003326 720 003330 722 003331 723 003342 724 003350 725 003355 726 003362 727 003367 728 003374 729 003401 730 003406 731 003413 732 003420 734 003424 737 003426 753 003427 756 003430 758 003432 760 003434 762 003436 763 003440 765 003461 766 003476 767 003510 768 003512 769 003517 771 003524 773 003531 774 003536 775 003540 777 003542 779 003543 788 003545 789 003551 791 003565 792 003576 794 003577 795 003602 797 003603 800 003611 802 003617 803 003630 805 003631 806 003634 808 003635 811 003643 813 003651 830 003652 839 003653 840 003655 842 003657 844 003661 845 003663 846 003665 847 003667 849 003670 850 003672 851 003673 854 003675 855 003677 857 003733 872 003734 880 003736 882 003751 ----------------------------------------------------------- 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