COMPILATION LISTING OF SEGMENT check_info_segs Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 02/16/88 1418.7 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Check directories for new info segments. 12* 13* This command remarks about any file in a directory in the "info_segments" 14* search list or in user-supplied directories with the dtem greater than the 15* last_time_looked. The last_time_looked is kept in the user's default 16* value segment. 17* 18* The active function returns the selected info seg names separated by spaces 19* 20* Rewritten 24-Oct-78 by Monte Davidoff. 21* Modified February 1979 by Michael R. Jordan for unsigned changes to star_structures.incl.pl1. */ 22 /* No_s bug obtaining dtcm's fixed 12/12/79 S. Herbst */ 23 /* Implement [cis], -absolute_pathname, and fix bugs 06/11/80 S. Herbst */ 24 /* Implement -time_checked Sept 1980 Marshall Presser */ 25 /* Implement discarding of duplicates when same segment identified twice 81/02/11 Paul Benjamin */ 26 /* Modified: 14 January 1982 by G. Palter to convert to using the default value segment */ 27 /* Modified 08/08/83 by Jim Lippard to improve performance, make -brief without 28* -call useful, and to not talk about zero length segs as having changed */ 29 /* Modified 05/25/84 by Jim Lippard to fix bug in link checking and to make 30* check_links just free star structures on cleanup rather than returning 31* (which could result in the message "No changed info segments" being 32* printed) */ 33 34 /* format: style4,delnl,insnl,ifthenstmt,ifthen */ 35 36 check_info_segs: 37 cis: 38 procedure () options (variable); 39 40 dcl arg_count fixed binary; 41 dcl arg_length fixed binary (21); 42 dcl arg_ptr pointer; 43 dcl argx fixed binary; 44 dcl call_str_length fixed binary (21); 45 dcl call_str_ptr pointer; 46 dcl change_sw bit (1); 47 dcl code fixed binary (35); 48 dcl complain entry variable options (variable); 49 dcl dir_name char (168); 50 dcl duplicate bit (1); 51 dcl entryname char (32); 52 dcl last_time_looked fixed binary (71); 53 dcl link_array_entry_length fixed binary; 54 dcl link_array_ptr ptr; 55 dcl return_len fixed binary (21); 56 dcl return_ptr pointer; 57 dcl target_dname char (168); 58 dcl target_ename char (32); 59 dcl temp_segment_ptr (2) ptr; 60 dcl uid_list_count fixed binary; 61 dcl uid_list_index fixed binary; 62 dcl uid_list_ptr ptr; 63 dcl 1 link_array aligned based (link_array_ptr), 64 2 n_links fixed bin (21), 65 2 links (0 refer (link_array.n_links)), 66 3 check_dname char (168) aligned, 67 3 print_dname char (168) aligned, 68 3 check_ename char (32) aligned, 69 3 print_ename char (32) aligned, 70 3 check bit (1) aligned, 71 3 n_passes fixed bin; 72 dcl 1 sw, 73 2 absp bit (1), 74 2 af bit (1), 75 2 brief bit (1), 76 2 call bit (1), 77 2 long bit (1), 78 2 pathname bit (1), 79 2 update bit (1), 80 2 check_time bit (1); 81 dcl time_checked char (24); 82 dcl type fixed binary (2); 83 dcl update_time fixed binary (71); 84 85 dcl arg_string char (arg_length) based (arg_ptr); 86 dcl return_arg char (return_len) varying based (return_ptr); 87 dcl uid_list (uid_list_count) bit (36) based (uid_list_ptr) aligned; 88 89 dcl (addr, binary, clock, currentsize, divide, empty, hbound, index, length, null, rtrim, substr, wordno) builtin; 90 91 dcl (cleanup, program_interrupt) condition; 92 93 dcl DEFAULT_VALUE_SEGMENT pointer static options (constant) initial (null ()); 94 dcl PERMANENT_VALUE bit (36) aligned static options (constant) initial ("01"b); 95 dcl CIS_VALUE_NAME character (17) static options (constant) initial ("check_info_segs._"); 96 dcl TERMINATE_FILE bit (4) internal static options (constant) initial ("0010"b); 97 dcl NO_CHASE fixed bin (1) int static options (constant) init (0); 98 dcl TRUE bit (1) internal static options (constant) initial ("1"b); 99 dcl FALSE bit (1) internal static options (constant) initial ("0"b); 100 101 dcl command char (32) internal static options (constant) initial ("check_info_segs"); 102 103 dcl error_table_$badopt fixed binary (35) external static; 104 dcl error_table_$no_dir fixed binary (35) external static; 105 dcl error_table_$noentry fixed binary (35) external static; 106 dcl error_table_$nomatch fixed binary (35) external static; 107 dcl error_table_$not_act_fnc fixed binary (35) external static; 108 dcl error_table_$oldnamerr fixed binary (35) external static; 109 110 dcl active_fnc_err_ entry () options (variable); 111 dcl active_fnc_err_$suppress_name entry () options (variable); 112 dcl com_err_ entry () options (variable); 113 dcl com_err_$suppress_name entry () options (variable); 114 dcl convert_date_to_binary_ entry (char (*), fixed binary (71), fixed binary (35)); 115 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 116 dcl cu_$arg_ptr entry (fixed binary, pointer, fixed binary (21), fixed binary (35)); 117 dcl cu_$cp entry (pointer, fixed binary (21), fixed binary (35)); 118 dcl date_time_ entry (fixed binary (71), char (*)); 119 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed binary (35)); 120 dcl get_system_free_area_ entry () returns (pointer); 121 dcl get_temp_segments_ entry (char (*), (*) ptr, fixed bin (35)); 122 dcl hcs_$get_link_target entry (char (*), char (*), char (*), char (*), fixed bin (35)); 123 dcl hcs_$star_dir_list_ 124 entry (char (*), char (*), fixed binary (3), pointer, fixed binary, fixed binary, pointer, pointer, 125 fixed binary (35)); 126 dcl hcs_$status_long entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 127 dcl hcs_$status_minf entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24), fixed bin (35)); 128 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 129 dcl ioa_ entry () options (variable); 130 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 131 dcl release_temp_segment_ entry (char (*), ptr, fixed bin (35)); 132 dcl requote_string_ entry (char (*)) returns (char (*)); 133 dcl search_paths_$get entry (char (*), bit (36), char (*), pointer, pointer, fixed binary, pointer, fixed binary (35)); 134 dcl sort_items_indirect_$char entry (ptr, ptr, fixed bin (21)); 135 dcl sys_info$maxlinks ext fixed bin; 136 dcl sys_info$max_seg_size fixed bin (35) ext static; 137 dcl terminate_file_ entry (ptr, fixed bin (24), bit (*), fixed bin (35)); 138 dcl user_info_ entry (char (*)); 139 dcl user_info_$homedir entry (char (*)); 140 dcl value_$get_data entry (ptr, bit (36) aligned, char (*), ptr, ptr, fixed bin (18), fixed bin (35)); 141 dcl value_$get_path entry (char (*), fixed bin (35)); 142 dcl value_$set_data 143 entry (ptr, bit (36) aligned, char (*), ptr, fixed bin (18), ptr, ptr, fixed bin (18), fixed bin (35)); 144 dcl value_$set_path entry (char (*), bit (1), fixed bin (35)); 145 146 /* */ 147 148 call cu_$af_return_arg (arg_count, return_ptr, return_len, code); 149 if code = error_table_$not_act_fnc then do; 150 sw.af = FALSE; 151 complain = com_err_; 152 end; 153 else do; 154 sw.af = TRUE; 155 complain = active_fnc_err_; 156 return_arg = ""; 157 end; 158 159 link_array_ptr = null (); 160 sl_info_p = null (); 161 star_entry_ptr = null (); 162 star_names_ptr = null (); 163 uid_list_ptr = null (); 164 165 on cleanup call cleanup_; 166 167 last_time_looked = 0; /* none yet supplied */ 168 sw.absp = FALSE; 169 sw.brief = FALSE; 170 sw.call = FALSE; 171 sw.long = FALSE; 172 sw.pathname = FALSE; 173 sw.check_time = FALSE; 174 sw.update = TRUE; 175 change_sw = FALSE; 176 call_str_length = 0; 177 178 179 do argx = 1 to arg_count; 180 181 call cu_$arg_ptr (argx, arg_ptr, arg_length, code); 182 if code ^= 0 then do; 183 call complain (code, command, "Fetching argument #^d.", argx); 184 return; 185 end; 186 187 if arg_string = "-absolute_pathname" | arg_string = "-absp" then sw.absp = TRUE; 188 189 else if arg_string = "-brief" | arg_string = "-bf" then 190 if sw.af then 191 go to BAD_OPT; 192 else sw.brief = TRUE; 193 194 else if arg_string = "-call" then do; 195 if sw.af then go to BAD_OPT; 196 sw.call = TRUE; 197 argx = argx + 1; 198 call cu_$arg_ptr (argx, call_str_ptr, call_str_length, code); 199 if code ^= 0 then do; 200 call complain (code, command, "Missing command line after -call."); 201 return; 202 end; 203 end; 204 205 else if arg_string = "-date" | arg_string = "-dt" then do; 206 sw.update = FALSE; 207 argx = argx + 1; 208 call cu_$arg_ptr (argx, arg_ptr, arg_length, code); 209 if code ^= 0 then do; 210 call complain (code, command, "Missing date after -date."); 211 return; 212 end; 213 214 call convert_date_to_binary_ (arg_string, last_time_looked, code); 215 if code ^= 0 then do; 216 call complain (code, command, "^a", arg_string); 217 return; 218 end; 219 220 if last_time_looked > clock () then do; 221 call complain (0, command, "The date/time is in the future. ^a", arg_string); 222 return; 223 end; 224 end; 225 226 else if arg_string = "-long" | arg_string = "-lg" then 227 if sw.af then 228 go to BAD_OPT; 229 else sw.long = TRUE; 230 231 else if arg_string = "-no_update" | arg_string = "-nud" then sw.update = FALSE; 232 233 else if arg_string = "-time_checked" | arg_string = "-tmck" then sw.check_time = TRUE; 234 235 else if arg_string = "-pathname" | arg_string = "-pn" then do; 236 sw.pathname = TRUE; 237 argx = argx + 1; 238 call cu_$arg_ptr (argx, arg_ptr, arg_length, code); 239 if code ^= 0 then do; 240 call complain (code, command, "Missing star pathname after -pathname."); 241 return; 242 end; 243 244 call expand_pathname_ (arg_string, dir_name, entryname, code); 245 if code ^= 0 then do; 246 call complain (code, command, "^a", arg_string); 247 return; 248 end; 249 end; 250 251 else if is_control_arg (arg_string) then do; 252 BAD_OPT: 253 call complain (error_table_$badopt, command, "^a", arg_string); 254 return; 255 end; 256 257 else do; 258 if sw.af then 259 call active_fnc_err_$suppress_name (0, command, "Usage: [^a {-control_args}]", command); 260 else call com_err_$suppress_name (0, command, "Usage: ^a {-control_args}", command); 261 return; 262 end; 263 end; 264 265 if sw.af & sw.check_time then 266 if arg_count > 1 then do; 267 call complain (0, command, "The -time_checked control argument is incompatible with any others."); 268 return; 269 end; 270 271 /* */ 272 273 if last_time_looked = 0 then /* if user didn't supply a date/time on the command line */ 274 call get_time (last_time_looked); 275 276 if sw.check_time then do; 277 call date_time_ (last_time_looked, time_checked); 278 if sw.af then 279 if last_time_looked = 0 then do; 280 call complain (0, command, 281 "There is no initial date in the user profile on when info segments were last checked."); 282 return; 283 end; 284 else do; 285 return_arg = requote_string_ (time_checked); 286 return; 287 end; 288 289 else do; 290 if last_time_looked = 0 then do; 291 call complain (0, command, 292 "There is no initial date in the user profile on when info segments were last checked."); 293 return; 294 end; 295 else call ioa_ ("Info segments were last checked on ^a", time_checked); 296 if arg_count = 1 then return; 297 end; 298 end; 299 300 update_time = clock (); /* avoids missing segments if -call is used */ 301 302 if sw.update & last_time_looked = 0 then do; 303 if ^sw.af then 304 call ioa_ ("^a: ^a", command, 305 "Initializing date stored in default value segment on which info segments were last checked."); 306 call put_time (update_time); 307 return; 308 end; 309 310 call get_temp_segments_ (command, temp_segment_ptr, code); 311 if code ^= 0 then do; 312 call complain (code, command); 313 call cleanup_; 314 return; 315 end; 316 317 uid_list_ptr = temp_segment_ptr (1); 318 link_array_ptr = temp_segment_ptr (2); 319 320 uid_list_count = 0; 321 link_array.n_links = 0; 322 323 if sw.pathname then do; 324 do argx = 1 to arg_count; 325 326 call cu_$arg_ptr (argx, arg_ptr, arg_length, code); 327 if code = 0 then 328 if arg_string = "-pathname" | arg_string = "-pn" then do; 329 argx = argx + 1; 330 call cu_$arg_ptr (argx, arg_ptr, arg_length, code); 331 call expand_pathname_ (arg_string, dir_name, entryname, code); 332 call check_directory (dir_name, entryname); 333 end; 334 else if arg_string = "-call" | arg_string = "-date" | arg_string = "-dt" then argx = argx + 1; 335 end; 336 end; 337 else do; 338 call search_paths_$get ("info_segments", sl_control_default, "", null (), get_system_free_area_ (), 339 sl_info_version_1, sl_info_p, code); 340 if code ^= 0 then do; 341 call complain (code, command, "info_segments"); 342 call cleanup_; 343 return; 344 end; 345 346 do argx = 1 to sl_info.num_paths; 347 call check_directory (sl_info.paths (argx).pathname, "**.info"); 348 end; 349 end; 350 351 call check_links (); 352 353 if ^change_sw & ^sw.brief & ^sw.af then call ioa_ ("No changed info segments."); 354 355 if sw.update then call put_time (update_time); 356 357 RETURN_FROM_CHECK_INFO_SEGS: 358 call cleanup_; 359 360 return; 361 362 /* */ 363 364 /* Check a directory for changed info segments */ 365 366 check_directory: 367 procedure (dir_name, star_name); 368 369 dcl dir_name char (*); /* (Input) directory to search */ 370 dcl star_name char (*); /* (Input) star name of segments to check */ 371 372 dcl entryx fixed binary; 373 374 375 on program_interrupt goto done_checking_dir; 376 377 star_select_sw = star_ALL_ENTRIES_WITH_LINK_PATHS; 378 call hcs_$star_dir_list_ (dir_name, star_name, star_select_sw, get_system_free_area_ (), star_branch_count, 379 star_link_count, star_list_branch_ptr, star_list_names_ptr, code); 380 381 if code ^= 0 & code ^= error_table_$nomatch & code ^= error_table_$no_dir & ^sw.brief then 382 call complain (code, command, "^a", pathname_ (dir_name, star_name)); 383 /* in particular, >doc>iml_info may be empty or non-existent */ 384 385 else do entryx = 1 to hbound (star_links, 1); 386 if star_links (entryx).type = star_SEGMENT then 387 call check_segment (dir_name, star_list_names (star_dir_list_branch (entryx).nindex), dir_name, 388 star_list_names (star_dir_list_branch (entryx).nindex), star_dir_list_branch (entryx).dtem); 389 else if star_links (entryx).type = star_LINK then do; 390 if link_array.n_links > 1 then do; 391 if link_array.n_links = 2 then 392 link_array_entry_length = 393 wordno (addr (link_array.links (2))) - wordno (addr (link_array.links (1))); 394 if currentsize (link_array) + link_array_entry_length > sys_info$max_seg_size then do; 395 call complain ((0), command, "Too many links."); 396 call cleanup_; 397 return; 398 end; 399 end; 400 link_array.n_links = link_array.n_links + 1; 401 star_linkx = entryx; 402 call expand_pathname_ (star_link_pathname, target_dname, target_ename, (0)); 403 link_array.print_dname (link_array.n_links) = dir_name; 404 link_array.print_ename (link_array.n_links) = star_list_names (star_dir_list_branch (entryx).nindex); 405 link_array.check_dname (link_array.n_links) = target_dname; 406 link_array.check_ename (link_array.n_links) = target_ename; 407 link_array.check (link_array.n_links) = TRUE; 408 link_array.n_passes (link_array.n_links) = 1; 409 end; 410 end; 411 412 done_checking_dir: 413 if star_list_names_ptr ^= null () then do; 414 free star_list_names; 415 star_list_names_ptr = null (); 416 end; 417 if star_list_branch_ptr ^= null () then do; 418 free star_links; 419 star_list_branch_ptr = null (); 420 end; 421 422 return; 423 end check_directory; 424 425 /* */ 426 427 /* Check if a segment has been modified */ 428 429 check_segment: 430 procedure (dir_name, entryname, print_dn, print_en, dtm); 431 432 dcl dir_name char (*); /* (Input) directory containing the segment */ 433 dcl entryname char (*); /* (Input) entryname of the segment */ 434 dcl print_dn char (*); /* (Input) directory name of link if link, or seg */ 435 dcl print_en char (*); /* (Input) entryname of link if link, or seg */ 436 dcl dtm bit (36); /* (Input) date-time modified */ 437 438 dcl name char (168); /* name as printed */ 439 dcl pathname char (168); /* absolute pathname */ 440 dcl date_time char (16); 441 dcl modified_time fixed binary (71); 442 443 dcl call_str char (call_str_length) based (call_str_ptr); 444 dcl command_line char (call_str_length + 169) aligned; 445 446 dcl 1 branch like status_branch aligned; 447 448 modified_time = binary (dtm || (16)"0"b, 71); 449 if modified_time >= last_time_looked then do; 450 451 call hcs_$status_long (dir_name, entryname, NO_CHASE, addr (branch), null (), code); 452 453 modified_time = binary (dtcm || (16)"0"b, 71); 454 /* make sure by checking dtcm */ 455 if modified_time >= last_time_looked then do; 456 457 duplicate = FALSE; 458 459 do uid_list_index = 1 to uid_list_count while (^duplicate); 460 if uid_list (uid_list_index) = branch.uid then do; 461 duplicate = TRUE; 462 uid_list_index = uid_list_count; 463 end; 464 end; 465 if duplicate = FALSE then do; 466 uid_list_count = uid_list_count + 1; 467 uid_list (uid_list_count) = branch.uid; 468 if branch.bit_count ^= 0 then do; 469 change_sw = TRUE; /* something has actually changed */ 470 471 if sw.absp then 472 name = pathname_ (print_dn, print_en); 473 /* return absolute pathnames */ 474 else name = print_en; 475 if sw.af then do; 476 if return_arg ^= "" then return_arg = return_arg || " "; 477 if index (rtrim (name), " ") ^= 0 then 478 return_arg = return_arg || requote_string_ (rtrim (name)); 479 else return_arg = return_arg || rtrim (name); 480 end; 481 else if sw.long then do; 482 call date_time_ (modified_time, date_time); 483 call ioa_ ("^a ^a", date_time, name); 484 end; 485 else if ^sw.brief & ^sw.call then call ioa_ ("^a", name); 486 if sw.call then do; 487 command_line = call_str || " " || pathname_ (print_dn, print_en); 488 call cu_$cp (addr (command_line), length (rtrim (command_line)), code); 489 end; 490 end; 491 end; 492 end; 493 end; 494 return; 495 496 end check_segment; 497 498 /* */ 499 500 /* Check the link array */ 501 502 check_links: 503 procedure; 504 dcl (idx, jdx, kdx) fixed binary; 505 dcl array_idx fixed binary (21); 506 dcl num_links fixed binary (21); 507 dcl found bit (1) aligned; 508 dcl same_directory bit (1) aligned; 509 dcl star_area_ptr ptr; 510 dcl star_name char (32); 511 dcl 1 v aligned, 512 2 n_items fixed bin (18), 513 2 vector (link_array.n_links) ptr unaligned; 514 dcl 1 i aligned, 515 2 n fixed bin (18), 516 2 array (link_array.n_links) fixed bin (18); 517 518 i.n = link_array.n_links; 519 v.n_items = link_array.n_links; 520 num_links = link_array.n_links; 521 522 star_select_sw = star_ALL_ENTRIES_WITH_LINK_PATHS; 523 star_area_ptr = get_system_free_area_ (); 524 525 do idx = 1 to link_array.n_links; 526 v.vector (idx) = addr (link_array.check_dname (idx)); 527 end; 528 529 on cleanup call free_star_structures; 530 531 do while (num_links > 0); 532 533 call sort_items_indirect_$char (addr (v), addr (i), length (link_array.check_dname (1))); 534 535 same_directory = FALSE; 536 do idx = 1 to link_array.n_links; 537 array_idx = i.array (idx); 538 if link_array.check (array_idx) then do; 539 if ^same_directory then do; 540 if idx ^= link_array.n_links then 541 if link_array.check_dname (array_idx) = link_array.check_dname (i.array (idx + 1)) then 542 star_name = "**.info"; 543 else star_name = link_array.check_ename (array_idx); 544 else star_name = link_array.check_ename (array_idx); 545 call free_star_structures (); /* in case it's left from last time through */ 546 call hcs_$star_dir_list_ ((link_array.check_dname (array_idx)), star_name, star_select_sw, 547 star_area_ptr, star_branch_count, star_link_count, star_list_branch_ptr, 548 star_list_names_ptr, code); 549 if code ^= 0 then call check_for_noninfo (); 550 end; /* getting star info */ 551 if link_array.check (array_idx) then do; 552 found = FALSE; 553 do jdx = 1 to hbound (star_links, 1) while (^found); 554 do kdx = 1 to star_dir_list_branch (jdx).nnames while (^found); 555 if link_array.check_ename (array_idx) 556 = star_list_names (star_dir_list_branch (jdx).nindex + (kdx - 1)) then do; 557 found = TRUE; 558 if star_links (jdx).type = star_SEGMENT then do; 559 call check_segment ((link_array.check_dname (array_idx)), 560 (link_array.check_ename (array_idx)), 561 (link_array.print_dname (array_idx)), 562 (link_array.print_ename (array_idx)), 563 star_dir_list_branch (jdx).dtem); 564 link_array.check (array_idx) = FALSE; 565 num_links = num_links - 1; 566 end; /* segment */ 567 else if star_links (jdx).type = star_LINK then do; 568 if link_array.n_passes (array_idx) >= sys_info$maxlinks then do; 569 link_array.check (array_idx) = FALSE; 570 num_links = num_links - 1; 571 end; /* too many links */ 572 else do; 573 star_linkx = jdx; 574 call expand_pathname_ (star_link_pathname, target_dname, 575 target_ename, code); 576 if code ^= 0 then do; 577 link_array.check (array_idx) = FALSE; 578 num_links = num_links - 1; 579 end; 580 else do; 581 link_array.check_dname (array_idx) = target_dname; 582 link_array.check_ename (array_idx) = target_ename; 583 link_array.n_passes (array_idx) = 584 link_array.n_passes (array_idx) + 1; 585 end; /* valid target pathname */ 586 end; /* continue chasing link */ 587 end; /* link */ 588 else found = FALSE; 589 end; /* match found */ 590 end; /* kdx loop */ 591 end; /* jdx loop */ 592 if ^found then call check_for_noninfo (); 593 end; /* code = 0 from hcs_ */ 594 if idx ^= link_array.n_links then 595 if link_array.check_dname (array_idx) = link_array.check_dname (i.array (idx + 1)) then 596 same_directory = TRUE; 597 else same_directory = FALSE; 598 else ; 599 end; /* checking */ 600 end; /* idx loop */ 601 end; /* while num_links > 0 */ 602 done_checking_links: 603 call free_star_structures (); 604 return; 605 606 free_star_structures: 607 procedure; 608 if star_list_names_ptr ^= null () then do; 609 free star_list_names; 610 star_list_names_ptr = null (); 611 end; 612 if star_list_branch_ptr ^= null () then do; 613 free star_links; 614 star_list_branch_ptr = null (); 615 end; 616 end free_star_structures; 617 618 check_for_noninfo: 619 procedure (); 620 if substr (link_array.check_ename (array_idx), length (rtrim (link_array.check_ename (array_idx))) - 4, 5) 621 ^= ".info" then do; 622 call hcs_$status_minf ((link_array.check_dname (array_idx)), (link_array.check_ename (array_idx)), 623 NO_CHASE, type, (0), code); 624 if code = 0 then do; 625 if type = Link then 626 call hcs_$get_link_target ((link_array.check_dname (array_idx)), 627 (link_array.check_ename (array_idx)), target_dname, target_ename, code); 628 else do; 629 target_dname = link_array.check_dname (array_idx); 630 target_ename = link_array.check_ename (array_idx); 631 end; 632 if code = 0 then 633 call check_segment (target_dname, target_ename, (link_array.print_dname (array_idx)), 634 (link_array.print_ename (array_idx)), (36)"1"b); 635 end; 636 end; 637 link_array.check (array_idx) = FALSE; 638 num_links = num_links - 1; 639 end check_for_noninfo; 640 end check_links; 641 642 /* */ 643 644 /* Check if an argument is a control arg */ 645 646 is_control_arg: 647 procedure (arg) returns (bit (1)); 648 649 dcl arg char (*); /* (Input) command argument */ 650 651 if arg = "" then 652 return (FALSE); 653 else return (index (arg, "-") = 1); 654 655 end is_control_arg; 656 657 /* */ 658 659 cleanup_: 660 procedure (); 661 662 if sl_info_p ^= null () then do; 663 free sl_info; 664 sl_info_p = null (); 665 end; 666 667 if star_names_ptr ^= null () then do; 668 free star_list_names; 669 star_names_ptr = null (); 670 end; 671 672 if star_entry_ptr ^= null () then do; 673 free star_links; 674 star_entry_ptr = null (); 675 end; 676 677 if uid_list_ptr ^= null () then call release_temp_segment_ (command, uid_list_ptr, code); 678 if link_array_ptr ^= null () then call release_temp_segment_ (command, link_array_ptr, code); 679 680 return; 681 682 end cleanup_; 683 684 /* */ 685 686 /* Fetch the date/time info segments were last check from the value segment: if the time isn't present in the value 687* segment, check the abbrev profile for an old style date/time and copy it to the value segment */ 688 689 get_time: 690 procedure (p_date_time); 691 692 dcl p_date_time fixed binary (71) parameter; 693 694 dcl small_area area (256); 695 dcl based_date_time fixed binary (71) based (date_time_ptr); 696 dcl date_time_ptr pointer; 697 698 call value_$get_data (DEFAULT_VALUE_SEGMENT, PERMANENT_VALUE, CIS_VALUE_NAME, addr (small_area), date_time_ptr, 699 (0), code); 700 701 if (code = error_table_$oldnamerr) | (code = error_table_$noentry) then do; 702 call get_date_time_from_profile (); 703 call value_$get_data (DEFAULT_VALUE_SEGMENT, PERMANENT_VALUE, CIS_VALUE_NAME, addr (small_area), 704 date_time_ptr, (0), code); 705 end; 706 707 if code ^= 0 then /* couldn't find a date/time anywhere */ 708 p_date_time = 0; 709 else p_date_time = based_date_time; 710 711 return; 712 713 714 715 /* Internal to get_time: check for an abbrev style profile and, if present, copy the date/time from it */ 716 717 get_date_time_from_profile: 718 procedure (); 719 720 dcl home_dir character (168); 721 dcl person_id character (24); 722 dcl profile_ename character (32); 723 724 dcl 1 old_profile aligned based (profile_ptr), /* abbrev profile */ 725 2 version fixed binary, 726 2 pad (3) bit (36), 727 2 check_info_time fixed binary (71); 728 dcl profile_ptr pointer; 729 730 call user_info_$homedir (home_dir); 731 call user_info_ (person_id); 732 profile_ename = rtrim (person_id) || ".profile"; 733 734 profile_ptr = null (); 735 736 on cleanup 737 begin; /* just in case (even with such a small window) */ 738 if profile_ptr ^= null () then call terminate_file_ (profile_ptr, (0), TERMINATE_FILE, (0)); 739 profile_ptr = null (); 740 end; 741 742 call initiate_file_ (home_dir, profile_ename, R_ACCESS, profile_ptr, 0b, (0)); 743 744 if profile_ptr ^= null () then do; /* there is a profile */ 745 if old_profile.version = 1 then /* only new style profile has the cis date/time */ 746 call put_time (old_profile.check_info_time); 747 call terminate_file_ (profile_ptr, (0), TERMINATE_FILE, (0)); 748 end; 749 750 return; 751 752 end get_date_time_from_profile; 753 754 end get_time; 755 756 /* */ 757 758 /* Put the updated date/time into the user's value segment */ 759 760 put_time: 761 procedure (p_date_time); 762 763 dcl p_date_time fixed binary (71) parameter; 764 765 call value_$set_data (DEFAULT_VALUE_SEGMENT, PERMANENT_VALUE, CIS_VALUE_NAME, addr (p_date_time), 766 currentsize (p_date_time), null (), (null ()), (0), code); 767 768 if code = error_table_$noentry then do; /* value segment not present: try to create it */ 769 call create_default_value_segment (); 770 call value_$set_data (DEFAULT_VALUE_SEGMENT, PERMANENT_VALUE, CIS_VALUE_NAME, addr (p_date_time), 771 currentsize (p_date_time), null (), (null ()), (0), code); 772 end; 773 774 if code ^= 0 then call com_err_ (code, command, "Attempting to update date/time in default value segment."); 775 776 return; 777 778 779 780 /* Internal to put_time: create the default value segment (if possible) */ 781 782 create_default_value_segment: 783 procedure (); 784 785 dcl value_segment_path character (168); 786 787 call value_$set_path ("", TRUE, code); 788 789 if code = 0 then do; /* created it */ 790 call value_$get_path (value_segment_path, (0)); 791 call com_err_ (0, command, "Created ^a.", value_segment_path); 792 end; 793 794 return; 795 796 end create_default_value_segment; 797 798 end put_time; 799 800 /* */ 801 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 802 803 2 1 /* BEGIN INCLUDE FILE . . . sl_info.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(87-11-16,Lippard), approve(87-12-21,MCR7822), 2 7* audit(88-02-09,Blair), install(88-02-16,MR12.2-1023): 2 8* Modified to add INITIATED_SEGS type. 2 9* 2) change(87-11-19,Lippard), approve(87-12-21,MCR7822), 2 10* audit(88-02-09,Blair), install(88-02-16,MR12.2-1023): 2 11* Added uid to sl_info structure. 2 12* END HISTORY COMMENTS */ 2 13 2 14 2 15 declare 1 sl_info aligned based (sl_info_p), 2 16 2 version fixed binary, /* Must be 1 */ 2 17 2 num_paths fixed binary, /* Number of search paths */ 2 18 2 change_index_p pointer, /* Pointer to search list's update count */ 2 19 2 change_index fixed binary (71), /* This search list's update count */ 2 20 2 pad1 (6) bit (36), /* Must be zero */ 2 21 2 paths (sl_info_num_paths refer (sl_info.num_paths)), 2 22 3 type fixed binary, /* Type of search path */ 2 23 3 code fixed binary (35), /* Standard status code of search path */ 2 24 3 uid bit (36), /* Unique ID */ 2 25 3 pathname char (168) unaligned; /* Search pathname */ 2 26 2 27 declare sl_info_num_paths fixed binary; 2 28 declare sl_info_p pointer; 2 29 declare sl_info_version_1 fixed binary internal static options (constant) initial (1); 2 30 2 31 /* Keyword Types */ 2 32 2 33 declare ABSOLUTE_PATH fixed binary internal static options (constant) initial (0); 2 34 declare UNEXPANDED_PATH fixed binary internal static options (constant) initial (1); 2 35 declare REFERENCING_DIR fixed binary internal static options (constant) initial (3); 2 36 declare WORKING_DIR fixed binary internal static options (constant) initial (4); 2 37 declare PROCESS_DIR fixed binary internal static options (constant) initial (5); 2 38 declare HOME_DIR fixed binary internal static options (constant) initial (6); 2 39 declare INITIATED_SEGS fixed binary internal static options (constant) initial (7); 2 40 2 41 /* END INCLUDE FILE . . . sl_info.incl.pl1 */ 804 805 3 1 /* BEGIN INCLUDE FILE . . . sl_control_s.incl.pl1 */ 3 2 3 3 declare 1 sl_control_s unaligned based (addr (sl_control)), 3 4 2 af_pathname bit (1), /* "1"b => expand active functions */ 3 5 2 pad1 bit (1), /* Must be zero */ 3 6 2 key_ref_dir bit (1), /* "1"b => expand -referencing_dir keyword */ 3 7 2 key_work_dir bit (1), /* "1"b => expand -working_dir keyword */ 3 8 2 key_proc_dir bit (1), /* "1"b => expand -process_dir keyword */ 3 9 2 key_home_dir bit (1), /* "1"b => expand -home_dir keyword */ 3 10 2 pad2 bit (30); /* Must be zero */ 3 11 3 12 declare sl_control bit (36); 3 13 declare sl_control_default bit (36) internal static options (constant) initial ("101111"b); 3 14 3 15 /* END INCLUDE FILE . . . sl_control_s.incl.pl1 */ 806 807 4 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 4 2 4 3 /* This include file contains structures for the hcs_$star_, 4 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 4 5* 4 6* Written 23 October 1978 by Monte Davidoff. 4 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 4 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 4 9**/ 4 10 4 11 /* automatic */ 4 12 4 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 4 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 4 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 4 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 4 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 4 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 4 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 4 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 4 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 4 22 4 23 /* based */ 4 24 4 25 /* hcs_$star_ entry structure */ 4 26 4 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 4 28 2 type fixed binary (2) unsigned unaligned, 4 29 /* storage system type */ 4 30 2 nnames fixed binary (16) unsigned unaligned, 4 31 /* number of names of entry that match star_name */ 4 32 2 nindex fixed binary (18) unsigned unaligned; 4 33 /* index of first name in star_names */ 4 34 4 35 /* hcs_$star_ name structure */ 4 36 4 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 4 38 4 39 /* hcs_$star_list_ branch structure */ 4 40 4 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 4 42 2 type fixed binary (2) unsigned unaligned, 4 43 /* storage system type */ 4 44 2 nnames fixed binary (16) unsigned unaligned, 4 45 /* number of names of entry that match star_name */ 4 46 2 nindex fixed binary (18) unsigned unaligned, 4 47 /* index of first name in star_list_names */ 4 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 4 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 4 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 4 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 4 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 4 53 2 pad bit (7) unaligned, 4 54 2 records fixed binary (18) unsigned unaligned; 4 55 /* records used by branch */ 4 56 4 57 /* hcs_$star_dir_list_ branch structure */ 4 58 4 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 4 60 2 type fixed binary (2) unsigned unaligned, 4 61 /* storage system type */ 4 62 2 nnames fixed binary (16) unsigned unaligned, 4 63 /* number of names of entry that match star_name */ 4 64 2 nindex fixed binary (18) unsigned unaligned, 4 65 /* index of first name in star_list_names */ 4 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 4 67 2 pad bit (36) unaligned, 4 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 4 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 4 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 4 71 2 bit_count fixed binary (24) unaligned; 4 72 /* bit count of the branch */ 4 73 4 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 4 75 4 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 4 77 2 type fixed binary (2) unsigned unaligned, 4 78 /* storage system type */ 4 79 2 nnames fixed binary (16) unsigned unaligned, 4 80 /* number of names of entry that match star_name */ 4 81 2 nindex fixed binary (18) unsigned unaligned, 4 82 /* index of first name in star_list_names */ 4 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 4 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 4 85 2 pathname_len fixed binary (18) unsigned unaligned, 4 86 /* length of the pathname of the link */ 4 87 2 pathname_index fixed binary (18) unsigned unaligned; 4 88 /* index of start of pathname in star_list_names */ 4 89 4 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 4 91 4 92 declare star_list_names char (32) based (star_list_names_ptr) 4 93 dimension (star_links (star_branch_count + star_link_count).nindex 4 94 + star_links (star_branch_count + star_link_count).nnames 4 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 4 96 * binary ( 4 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 4 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 4 99 4 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 4 101 4 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 4 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 4 104 4 105 /* internal static */ 4 106 4 107 /* star_select_sw values */ 4 108 4 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 4 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 4 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 4 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 4 113 fixed binary (3) internal static options (constant) initial (5); 4 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 4 115 fixed binary (3) internal static options (constant) initial (7); 4 116 4 117 /* storage system types */ 4 118 4 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 4 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 4 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 4 122 4 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 808 809 5 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 5 2 5 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 5 4 5 5 /* This include file contains branch and link structures returned by 5 6* hcs_$status_ and hcs_$status_long. */ 5 7 5 8 dcl 1 status_branch aligned based (status_ptr), 5 9 2 short aligned, 5 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 5 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 5 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 5 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 5 14 3 dtu bit (36) unaligned, /* date/time last used */ 5 15 3 mode bit (5) unaligned, /* caller's effective access */ 5 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 5 17 3 pad1 bit (8) unaligned, 5 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 5 19 5 20 /* Limit of information returned by hcs_$status_ */ 5 21 5 22 2 long aligned, 5 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 5 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 5 25 3 lvid bit (36) unaligned, /* logical volume ID */ 5 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 5 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 5 28 3 pad2 bit (8) unaligned, 5 29 3 copy_switch bit (1) unaligned, /* copy switch */ 5 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 5 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 5 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 5 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 5 34 3 pad3 bit (5) unaligned, 5 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 5 36 3 uid bit (36) unaligned; /* unique ID */ 5 37 5 38 dcl 1 status_link aligned based (status_ptr), 5 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 5 40 2 nnames fixed bin (16) unaligned unsigned, 5 41 2 names_relp bit (18) unaligned, 5 42 2 dtem bit (36) unaligned, 5 43 2 dtd bit (36) unaligned, 5 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 5 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 5 46 5 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 5 48 based (pointer (status_area_ptr, status_branch.names_relp)), 5 49 /* array of names returned */ 5 50 status_pathname character (status_link.pathname_length) aligned 5 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 5 52 /* link target path */ 5 53 status_area_ptr pointer, 5 54 status_ptr pointer; 5 55 5 56 dcl (Link initial (0), 5 57 Segment initial (1), 5 58 Directory initial (2)) fixed bin internal static options (constant); 5 59 /* values for type fields declared above */ 5 60 5 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 810 811 812 end check_info_segs; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/16/88 1411.8 check_info_segs.pl1 >spec>install>MR12.2-1023>check_info_segs.pl1 802 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 804 2 02/16/88 1407.4 sl_info.incl.pl1 >spec>install>MR12.2-1023>sl_info.incl.pl1 806 3 01/09/79 1617.9 sl_control_s.incl.pl1 >ldd>include>sl_control_s.incl.pl1 808 4 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.incl.pl1 810 5 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.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. CIS_VALUE_NAME 000013 constant char(17) initial unaligned dcl 95 set ref 698* 703* 765* 770* DEFAULT_VALUE_SEGMENT 000022 constant pointer initial dcl 93 set ref 698* 703* 765* 770* FALSE constant bit(1) initial unaligned dcl 99 ref 150 168 169 170 171 172 173 175 206 231 457 465 535 552 564 569 577 588 597 637 651 Link constant fixed bin(17,0) initial dcl 5-56 ref 625 NO_CHASE 000134 constant fixed bin(1,0) initial dcl 97 set ref 451* 622* PERMANENT_VALUE 000020 constant bit(36) initial dcl 94 set ref 698* 703* 765* 770* R_ACCESS 000011 constant bit(3) initial unaligned dcl 1-11 set ref 742* TERMINATE_FILE 000012 constant bit(4) initial unaligned dcl 96 set ref 738* 747* TRUE 000011 constant bit(1) initial unaligned dcl 98 set ref 154 174 187 192 196 229 233 236 407 461 469 557 594 787* absp 000306 automatic bit(1) level 2 packed unaligned dcl 72 set ref 168* 187* 471 active_fnc_err_ 000024 constant entry external dcl 110 ref 155 active_fnc_err_$suppress_name 000026 constant entry external dcl 111 ref 258 addr builtin function dcl 89 ref 391 391 402 451 451 488 488 526 533 533 533 533 574 698 698 703 703 765 765 770 770 af 0(01) 000306 automatic bit(1) level 2 packed unaligned dcl 72 set ref 150* 154* 189 195 226 258 265 278 303 353 475 arg parameter char unaligned dcl 649 ref 646 651 653 arg_count 000100 automatic fixed bin(17,0) dcl 40 set ref 148* 179 265 296 324 arg_length 000101 automatic fixed bin(21,0) dcl 41 set ref 181* 187 187 189 189 194 205 205 208* 214 214 216 216 221 221 226 226 231 231 233 233 235 235 238* 244 244 246 246 251 251 252 252 326* 327 327 330* 331 331 334 334 334 arg_ptr 000102 automatic pointer dcl 42 set ref 181* 187 187 189 189 194 205 205 208* 214 216 221 226 226 231 231 233 233 235 235 238* 244 246 251 252 326* 327 327 330* 331 334 334 334 arg_string based char unaligned dcl 85 set ref 187 187 189 189 194 205 205 214* 216* 221* 226 226 231 231 233 233 235 235 244* 246* 251* 252* 327 327 331* 334 334 334 argx 000104 automatic fixed bin(17,0) dcl 43 set ref 179* 181* 183* 197* 197 198* 207* 207 208* 237* 237 238* 324* 326* 329* 329 330* 334* 334* 346* 347* array 1 000122 automatic fixed bin(18,0) array level 2 dcl 514 set ref 537 540 594 array_idx 000103 automatic fixed bin(21,0) dcl 505 set ref 537* 538 540 543 544 546 551 555 559 559 559 559 564 568 569 577 581 582 583 583 594 620 620 622 622 625 625 629 630 632 632 637 based_date_time based fixed bin(71,0) dcl 695 ref 709 binary builtin function dcl 89 ref 414 448 453 609 668 bit_count 7(12) 000160 automatic fixed bin(24,0) level 3 packed unsigned unaligned dcl 446 set ref 468 branch 000160 automatic structure level 1 dcl 446 set ref 451 451 brief 0(02) 000306 automatic bit(1) level 2 packed unaligned dcl 72 set ref 169* 192* 353 381 485 call 0(03) 000306 automatic bit(1) level 2 packed unaligned dcl 72 set ref 170* 196* 485 486 call_str based char unaligned dcl 443 ref 487 call_str_length 000105 automatic fixed bin(21,0) dcl 44 set ref 176* 198* 444 487 call_str_ptr 000106 automatic pointer dcl 45 set ref 198* 487 change_sw 000110 automatic bit(1) unaligned dcl 46 set ref 175* 353 469* check 145 based bit(1) array level 3 dcl 63 set ref 407* 538 551 564* 569* 577* 637* check_dname 1 based char(168) array level 3 dcl 63 set ref 405* 526 533 533 540 540 546 559 581* 594 594 622 625 629 check_ename 125 based char(32) array level 3 dcl 63 set ref 406* 543 544 555 559 582* 620 620 622 625 630 check_info_time 4 based fixed bin(71,0) level 2 dcl 724 set ref 745* check_time 0(07) 000306 automatic bit(1) level 2 packed unaligned dcl 72 set ref 173* 233* 265 276 cleanup 000320 stack reference condition dcl 91 ref 165 529 736 clock builtin function dcl 89 ref 220 300 code 000111 automatic fixed bin(35,0) dcl 47 set ref 148* 149 181* 182 183* 198* 199 200* 208* 209 210* 214* 215 216* 238* 239 240* 244* 245 246* 310* 311 312* 326* 327 330* 331* 338* 340 341* 378* 381 381 381 381* 451* 488* 546* 549 574* 576 622* 624 625* 632 677* 678* 698* 701 701 703* 707 765* 768 770* 774 774* 787* 789 com_err_ 000030 constant entry external dcl 112 ref 151 774 791 com_err_$suppress_name 000032 constant entry external dcl 113 ref 260 command 000001 constant char(32) initial unaligned dcl 101 set ref 183* 200* 210* 216* 221* 240* 246* 252* 258* 258* 260* 260* 267* 280* 291* 303* 310* 312* 341* 381* 395* 677* 678* 774* 791* command_line 000160 automatic char dcl 444 set ref 487* 488 488 488 488 complain 000112 automatic entry variable dcl 48 set ref 151* 155* 183 200 210 216 221 240 246 252 267 280 291 312 341 381 395 convert_date_to_binary_ 000034 constant entry external dcl 114 ref 214 cu_$af_return_arg 000036 constant entry external dcl 115 ref 148 cu_$arg_ptr 000040 constant entry external dcl 116 ref 181 198 208 238 326 330 cu_$cp 000042 constant entry external dcl 117 ref 488 currentsize builtin function dcl 89 ref 394 765 765 770 770 date_time 000152 automatic char(16) unaligned dcl 440 set ref 482* 483* date_time_ 000044 constant entry external dcl 118 ref 277 482 date_time_ptr 000764 automatic pointer dcl 696 set ref 698* 703* 709 dir_name 000116 automatic char(168) unaligned dcl 49 in procedure "cis" set ref 244* 331* 332* dir_name parameter char unaligned dcl 432 in procedure "check_segment" set ref 429 451* dir_name parameter char unaligned dcl 369 in procedure "check_directory" set ref 366 378* 381* 381* 386* 386* 403 divide builtin function dcl 89 ref 414 609 668 dtcm 1 000160 automatic bit(36) level 3 packed unaligned dcl 446 set ref 453 dtem 1 based bit(36) array level 2 packed unaligned dcl 4-59 set ref 386* 559* dtm parameter bit(36) unaligned dcl 436 ref 429 448 duplicate 000170 automatic bit(1) unaligned dcl 50 set ref 457* 459 461* 465 empty builtin function dcl 89 ref 694 entryname 000171 automatic char(32) unaligned dcl 51 in procedure "cis" set ref 244* 331* 332* entryname parameter char unaligned dcl 433 in procedure "check_segment" set ref 429 451* entryx 000100 automatic fixed bin(17,0) dcl 372 set ref 385* 386 386 386 386 389 401 404* error_table_$badopt 000010 external static fixed bin(35,0) dcl 103 set ref 252* error_table_$no_dir 000012 external static fixed bin(35,0) dcl 104 ref 381 error_table_$noentry 000014 external static fixed bin(35,0) dcl 105 ref 701 768 error_table_$nomatch 000016 external static fixed bin(35,0) dcl 106 ref 381 error_table_$not_act_fnc 000020 external static fixed bin(35,0) dcl 107 ref 149 error_table_$oldnamerr 000022 external static fixed bin(35,0) dcl 108 ref 701 expand_pathname_ 000046 constant entry external dcl 119 ref 244 331 402 574 found 000105 automatic bit(1) dcl 507 set ref 552* 553 554 557* 588* 592 get_system_free_area_ 000050 constant entry external dcl 120 ref 338 338 378 378 523 get_temp_segments_ 000052 constant entry external dcl 121 ref 310 hbound builtin function dcl 89 ref 385 553 hcs_$get_link_target 000054 constant entry external dcl 122 ref 625 hcs_$star_dir_list_ 000056 constant entry external dcl 123 ref 378 546 hcs_$status_long 000060 constant entry external dcl 126 ref 451 hcs_$status_minf 000062 constant entry external dcl 127 ref 622 home_dir 000100 automatic char(168) unaligned dcl 720 set ref 730* 742* i 000122 automatic structure level 1 dcl 514 set ref 533 533 idx 000100 automatic fixed bin(17,0) dcl 504 set ref 525* 526 526* 536* 537 540 540 594 594* index builtin function dcl 89 ref 477 653 initiate_file_ 000064 constant entry external dcl 128 ref 742 ioa_ 000066 constant entry external dcl 129 ref 295 303 353 483 485 jdx 000101 automatic fixed bin(17,0) dcl 504 set ref 553* 554 555 558 559 567 573* kdx 000102 automatic fixed bin(17,0) dcl 504 set ref 554* 555* last_time_looked 000202 automatic fixed bin(71,0) dcl 52 set ref 167* 214* 220 273 273* 277* 278 290 302 449 455 length builtin function dcl 89 ref 488 488 533 533 620 link_array based structure level 1 dcl 63 set ref 394 link_array_entry_length 000204 automatic fixed bin(17,0) dcl 53 set ref 391* 394 link_array_ptr 000206 automatic pointer dcl 54 set ref 159* 318* 321 390 391 391 391 394 400 400 403 403 404 404 405 405 406 406 407 407 408 408 511 514 518 519 520 525 526 533 533 536 538 540 540 540 543 544 546 551 555 559 559 559 559 564 568 569 577 581 582 583 583 594 594 594 620 620 622 622 625 625 629 630 632 632 637 678 678* links 1 based structure array level 2 dcl 63 set ref 391 391 long 4 000160 automatic structure level 2 in structure "branch" dcl 446 in procedure "check_segment" long 0(04) 000306 automatic bit(1) level 2 in structure "sw" packed unaligned dcl 72 in procedure "cis" set ref 171* 229* 481 modified_time 000156 automatic fixed bin(71,0) dcl 441 set ref 448* 449 453* 455 482* n 000122 automatic fixed bin(18,0) level 2 dcl 514 set ref 518* n_items 000122 automatic fixed bin(18,0) level 2 dcl 511 set ref 519* n_links based fixed bin(21,0) level 2 dcl 63 set ref 321* 390 391 394 400* 400 403 404 405 406 407 408 511 514 518 519 520 525 536 540 594 n_passes 146 based fixed bin(17,0) array level 3 dcl 63 set ref 408* 568 583* 583 name 000100 automatic char(168) unaligned dcl 438 set ref 471* 474* 477 477 477 479 483* 485* nindex 0(18) based fixed bin(18,0) array level 2 in structure "star_links" packed unsigned unaligned dcl 4-76 in procedure "cis" ref 414 609 668 nindex 0(18) based fixed bin(18,0) array level 2 in structure "star_dir_list_branch" packed unsigned unaligned dcl 4-59 in procedure "cis" ref 386 386 404 555 nnames 0(02) based fixed bin(16,0) array level 2 in structure "star_links" packed unsigned unaligned dcl 4-76 in procedure "cis" ref 414 609 668 nnames 0(02) based fixed bin(16,0) array level 2 in structure "star_dir_list_branch" packed unsigned unaligned dcl 4-59 in procedure "cis" ref 554 null builtin function dcl 89 ref 159 160 161 162 163 338 338 412 415 417 419 451 451 608 610 612 614 662 664 667 669 672 674 677 678 734 738 739 744 765 765 765 770 770 770 num_links 000104 automatic fixed bin(21,0) dcl 506 set ref 520* 531 565* 565 570* 570 578* 578 638* 638 num_paths 1 based fixed bin(17,0) level 2 dcl 2-15 ref 346 663 old_profile based structure level 1 dcl 724 p_date_time parameter fixed bin(71,0) dcl 692 in procedure "get_time" set ref 689 707* 709* p_date_time parameter fixed bin(71,0) dcl 763 in procedure "put_time" set ref 760 765 765 765 765 770 770 770 770 pathname 17 based char(168) array level 3 in structure "sl_info" packed unaligned dcl 2-15 in procedure "cis" set ref 347* pathname 0(05) 000306 automatic bit(1) level 2 in structure "sw" packed unaligned dcl 72 in procedure "cis" set ref 172* 236* 323 pathname_ 000070 constant entry external dcl 130 ref 381 381 471 487 pathname_index 3(18) based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 4-76 ref 402 574 pathname_len 3 based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 4-76 ref 402 402 414 574 574 609 668 paths 14 based structure array level 2 dcl 2-15 person_id 000152 automatic char(24) unaligned dcl 721 set ref 731* 732 print_dn parameter char unaligned dcl 434 set ref 429 471* 487* print_dname 53 based char(168) array level 3 dcl 63 set ref 403* 559 632 print_en parameter char unaligned dcl 435 set ref 429 471* 474 487* print_ename 135 based char(32) array level 3 dcl 63 set ref 404* 559 632 profile_ename 000160 automatic char(32) unaligned dcl 722 set ref 732* 742* profile_ptr 000170 automatic pointer dcl 728 set ref 734* 738 738* 739* 742* 744 745 745 747* program_interrupt 000000 stack reference condition dcl 91 ref 375 release_temp_segment_ 000072 constant entry external dcl 131 ref 677 678 requote_string_ 000074 constant entry external dcl 132 ref 285 477 return_arg based varying char dcl 86 set ref 156* 285* 476 476* 476 477* 477 479* 479 return_len 000210 automatic fixed bin(21,0) dcl 55 set ref 148* 156 285 476 477 479 return_ptr 000212 automatic pointer dcl 56 set ref 148* 156 285 476 476 476 477 477 479 479 rtrim builtin function dcl 89 ref 477 477 477 479 488 488 620 732 same_directory 000106 automatic bit(1) dcl 508 set ref 535* 539 594* 597* search_paths_$get 000076 constant entry external dcl 133 ref 338 short 000160 automatic structure level 2 dcl 446 sl_control_default 000000 constant bit(36) initial unaligned dcl 3-13 set ref 338* sl_info based structure level 1 dcl 2-15 set ref 663 sl_info_p 000326 automatic pointer dcl 2-28 set ref 160* 338* 346 347 662 663 664* sl_info_version_1 000105 constant fixed bin(17,0) initial dcl 2-29 set ref 338* small_area 000364 automatic area(256) dcl 694 set ref 694* 698 698 703 703 sort_items_indirect_$char 000100 constant entry external dcl 134 ref 533 star_ALL_ENTRIES_WITH_LINK_PATHS constant fixed bin(3,0) initial dcl 4-114 ref 377 522 star_LINK constant fixed bin(2,0) initial unsigned dcl 4-119 ref 389 414 567 609 668 star_LINKS_ONLY_WITH_LINK_PATHS constant fixed bin(3,0) initial dcl 4-112 ref 414 609 668 star_SEGMENT constant fixed bin(2,0) initial unsigned dcl 4-120 ref 386 558 star_area_ptr 000110 automatic pointer dcl 509 set ref 523* 546* star_branch_count 000330 automatic fixed bin(17,0) dcl 4-13 set ref 378* 385 414 414 414 414 418 546* 553 609 609 609 609 613 668 668 668 668 673 star_dir_list_branch based structure array level 1 dcl 4-59 star_entry_ptr 000332 automatic pointer dcl 4-15 set ref 161* 672 674* star_link_count 000336 automatic fixed bin(17,0) dcl 4-17 set ref 378* 385 414 414 414 414 418 546* 553 609 609 609 609 613 668 668 668 668 673 star_link_pathname based char unaligned dcl 4-102 set ref 402* 574* star_links based structure array level 1 dcl 4-76 ref 385 418 553 613 673 star_linkx 000337 automatic fixed bin(17,0) dcl 4-18 set ref 401* 402 402 402 573* 574 574 574 star_list_branch_ptr 000334 automatic pointer dcl 4-16 set ref 378* 385 386 386 386 386 389 402 402 402 404 414 414 414 414 417 418 419* 546* 553 554 555 558 559 567 574 574 574 609 609 609 609 612 613 614* 668 668 668 668 673 star_list_names based char(32) array unaligned dcl 4-92 set ref 386* 386* 402 404 414 555 574 609 668 star_list_names_ptr 000342 automatic pointer dcl 4-20 set ref 378* 386 386 402 404 412 414 415* 546* 555 574 608 609 610* 668 star_name parameter char unaligned dcl 370 in procedure "check_directory" set ref 366 378* 381* 381* star_name 000112 automatic char(32) unaligned dcl 510 in procedure "check_links" set ref 540* 543* 544* 546* star_names_ptr 000340 automatic pointer dcl 4-19 set ref 162* 667 669* star_select_sw 000344 automatic fixed bin(3,0) dcl 4-21 set ref 377* 378* 414 522* 546* 609 668 status_branch based structure level 1 dcl 5-8 substr builtin function dcl 89 ref 620 sw 000306 automatic structure level 1 packed unaligned dcl 72 sys_info$max_seg_size 000104 external static fixed bin(35,0) dcl 136 ref 394 sys_info$maxlinks 000102 external static fixed bin(17,0) dcl 135 ref 568 target_dname 000214 automatic char(168) unaligned dcl 57 set ref 402* 405 574* 581 625* 629* 632* target_ename 000266 automatic char(32) unaligned dcl 58 set ref 402* 406 574* 582 625* 630* 632* temp_segment_ptr 000276 automatic pointer array dcl 59 set ref 310* 317 318 terminate_file_ 000106 constant entry external dcl 137 ref 738 747 time_checked 000307 automatic char(24) unaligned dcl 81 set ref 277* 285* 295* type 000315 automatic fixed bin(2,0) dcl 82 in procedure "cis" set ref 622* 625 type based fixed bin(2,0) array level 2 in structure "star_links" packed unsigned unaligned dcl 4-76 in procedure "cis" ref 386 389 414 558 567 609 668 uid 11 000160 automatic bit(36) level 3 packed unaligned dcl 446 set ref 460 467 uid_list based bit(36) array dcl 87 set ref 460 467* uid_list_count 000302 automatic fixed bin(17,0) dcl 60 set ref 320* 459 462 466* 466 467 uid_list_index 000303 automatic fixed bin(17,0) dcl 61 set ref 459* 460 462* uid_list_ptr 000304 automatic pointer dcl 62 set ref 163* 317* 460 467 677 677* update 0(06) 000306 automatic bit(1) level 2 packed unaligned dcl 72 set ref 174* 206* 231* 302 355 update_time 000316 automatic fixed bin(71,0) dcl 83 set ref 300* 306* 355* user_info_ 000110 constant entry external dcl 138 ref 731 user_info_$homedir 000112 constant entry external dcl 139 ref 730 v 000122 automatic structure level 1 dcl 511 set ref 533 533 value_$get_data 000114 constant entry external dcl 140 ref 698 703 value_$get_path 000116 constant entry external dcl 141 ref 790 value_$set_data 000120 constant entry external dcl 142 ref 765 770 value_$set_path 000122 constant entry external dcl 144 ref 787 value_segment_path 000106 automatic char(168) unaligned dcl 785 set ref 790* 791* vector 1 000122 automatic pointer array level 2 packed unaligned dcl 511 set ref 526* version based fixed bin(17,0) level 2 dcl 724 ref 745 wordno builtin function dcl 89 ref 391 391 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABSOLUTE_PATH internal static fixed bin(17,0) initial dcl 2-33 A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 Directory internal static fixed bin(17,0) initial dcl 5-56 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 HOME_DIR internal static fixed bin(17,0) initial dcl 2-38 INITIATED_SEGS internal static fixed bin(17,0) initial dcl 2-39 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 PROCESS_DIR internal static fixed bin(17,0) initial dcl 2-37 REFERENCING_DIR internal static fixed bin(17,0) initial dcl 2-35 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Segment internal static fixed bin(17,0) initial dcl 5-56 UNEXPANDED_PATH internal static fixed bin(17,0) initial dcl 2-34 WORKING_DIR internal static fixed bin(17,0) initial dcl 2-36 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 pathname automatic char(168) unaligned dcl 439 sl_control automatic bit(36) unaligned dcl 3-12 sl_control_s based structure level 1 packed unaligned dcl 3-3 sl_info_num_paths automatic fixed bin(17,0) dcl 2-27 star_ALL_ENTRIES internal static fixed bin(2,0) initial dcl 4-111 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 4-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 4-121 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 4-109 star_entries based structure array level 1 dcl 4-27 star_entry_count automatic fixed bin(17,0) dcl 4-14 star_list_branch based structure array level 1 dcl 4-41 star_names based char(32) array unaligned dcl 4-37 status_area_ptr automatic pointer dcl 5-47 status_entry_names based char(32) array dcl 5-47 status_link based structure level 1 dcl 5-38 status_pathname based char dcl 5-47 status_ptr automatic pointer dcl 5-47 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_OPT 001374 constant label dcl 252 ref 189 195 226 RETURN_FROM_CHECK_INFO_SEGS 002447 constant label dcl 357 check_directory 002455 constant entry internal dcl 366 ref 332 347 check_for_noninfo 004742 constant entry internal dcl 618 ref 549 592 check_info_segs 000441 constant entry external dcl 36 check_links 004021 constant entry internal dcl 502 ref 351 check_segment 003246 constant entry internal dcl 429 ref 386 559 632 cis 000432 constant entry external dcl 36 cleanup_ 005263 constant entry internal dcl 659 ref 165 313 342 357 396 create_default_value_segment 006244 constant entry internal dcl 782 ref 769 done_checking_dir 003160 constant label dcl 412 ref 375 done_checking_links 004637 constant label dcl 602 free_star_structures 004645 constant entry internal dcl 606 ref 529 545 602 get_date_time_from_profile 005603 constant entry internal dcl 717 ref 702 get_time 005445 constant entry internal dcl 689 ref 273 is_control_arg 005216 constant entry internal dcl 646 ref 251 put_time 006044 constant entry internal dcl 760 ref 306 355 745 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 7126 7252 6357 7136 Length 7656 6357 124 367 547 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cis 670 external procedure is an external procedure. on unit on line 165 64 on unit check_directory 168 internal procedure enables or reverts conditions. on unit on line 375 64 on unit check_segment 208 internal procedure uses auto adjustable storage. check_links 362 internal procedure uses auto adjustable storage, and enables or reverts conditions. on unit on line 529 64 on unit free_star_structures 67 internal procedure is called by several nonquick procedures. check_for_noninfo internal procedure shares stack frame of internal procedure check_links. is_control_arg internal procedure shares stack frame of external procedure cis. cleanup_ 82 internal procedure is called by several nonquick procedures. get_time internal procedure shares stack frame of external procedure cis. get_date_time_from_profile 162 internal procedure enables or reverts conditions. on unit on line 736 84 on unit put_time 206 internal procedure is called by several nonquick procedures. create_default_value_segment internal procedure shares stack frame of internal procedure put_time. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME check_directory 000100 entryx check_directory check_links 000100 idx check_links 000101 jdx check_links 000102 kdx check_links 000103 array_idx check_links 000104 num_links check_links 000105 found check_links 000106 same_directory check_links 000110 star_area_ptr check_links 000112 star_name check_links 000122 i check_links 000122 v check_links check_segment 000100 name check_segment 000152 date_time check_segment 000156 modified_time check_segment 000160 command_line check_segment 000160 branch check_segment cis 000100 arg_count cis 000101 arg_length cis 000102 arg_ptr cis 000104 argx cis 000105 call_str_length cis 000106 call_str_ptr cis 000110 change_sw cis 000111 code cis 000112 complain cis 000116 dir_name cis 000170 duplicate cis 000171 entryname cis 000202 last_time_looked cis 000204 link_array_entry_length cis 000206 link_array_ptr cis 000210 return_len cis 000212 return_ptr cis 000214 target_dname cis 000266 target_ename cis 000276 temp_segment_ptr cis 000302 uid_list_count cis 000303 uid_list_index cis 000304 uid_list_ptr cis 000306 sw cis 000307 time_checked cis 000315 type cis 000316 update_time cis 000326 sl_info_p cis 000330 star_branch_count cis 000332 star_entry_ptr cis 000334 star_list_branch_ptr cis 000336 star_link_count cis 000337 star_linkx cis 000340 star_names_ptr cis 000342 star_list_names_ptr cis 000344 star_select_sw cis 000364 small_area get_time 000764 date_time_ptr get_time get_date_time_from_profile 000100 home_dir get_date_time_from_profile 000152 person_id get_date_time_from_profile 000160 profile_ename get_date_time_from_profile 000170 profile_ptr get_date_time_from_profile put_time 000106 value_segment_path create_default_value_segment THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ge_a alloc_char_temp cat_realloc_chars call_ent_var_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 alloc_auto_adj enable_op shorten_stack ext_entry int_entry int_entry_desc op_freen_ op_empty_ clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ active_fnc_err_$suppress_name com_err_ com_err_$suppress_name convert_date_to_binary_ cu_$af_return_arg cu_$arg_ptr cu_$cp date_time_ expand_pathname_ get_system_free_area_ get_temp_segments_ hcs_$get_link_target hcs_$star_dir_list_ hcs_$status_long hcs_$status_minf initiate_file_ ioa_ pathname_ release_temp_segment_ requote_string_ search_paths_$get sort_items_indirect_$char terminate_file_ user_info_ user_info_$homedir value_$get_data value_$get_path value_$set_data value_$set_path THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$no_dir error_table_$noentry error_table_$nomatch error_table_$not_act_fnc error_table_$oldnamerr sys_info$max_seg_size sys_info$maxlinks LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 36 000431 148 000446 149 000462 150 000466 151 000470 152 000474 154 000475 155 000477 156 000503 159 000504 160 000506 161 000507 162 000510 163 000511 165 000512 167 000534 168 000536 169 000540 170 000542 171 000544 172 000546 173 000550 174 000552 175 000554 176 000555 179 000556 181 000565 182 000602 183 000604 184 000633 187 000634 189 000651 192 000664 194 000667 195 000673 196 000676 197 000700 198 000701 199 000716 200 000720 201 000743 203 000744 205 000745 206 000755 207 000757 208 000760 209 000775 210 000777 211 001022 214 001023 215 001047 216 001051 217 001102 220 001103 221 001106 222 001141 224 001142 226 001143 229 001156 231 001161 233 001174 235 001207 236 001217 237 001221 238 001222 239 001237 240 001241 241 001264 244 001265 245 001315 246 001317 247 001350 249 001351 251 001352 252 001374 254 001426 258 001427 260 001463 261 001513 263 001514 265 001516 267 001527 268 001553 273 001554 276 001564 277 001567 278 001604 280 001611 282 001635 285 001636 286 001670 290 001672 291 001674 293 001720 295 001721 296 001741 300 001744 302 001746 303 001753 306 002004 307 002012 310 002013 311 002034 312 002036 313 002052 314 002056 317 002057 318 002061 320 002063 321 002064 323 002065 324 002070 326 002077 327 002114 329 002130 330 002131 331 002146 332 002176 333 002212 334 002213 335 002230 336 002232 338 002233 340 002315 341 002317 342 002345 343 002351 346 002352 347 002363 348 002407 351 002411 353 002415 355 002436 357 002447 360 002453 366 002454 375 002475 377 002514 378 002517 381 002577 385 002664 386 002675 389 002754 390 002756 391 002761 394 003000 395 003007 396 003036 397 003043 400 003044 401 003045 402 003047 403 003110 404 003123 405 003141 406 003146 407 003152 408 003154 410 003156 412 003160 414 003165 415 003225 417 003230 418 003234 419 003241 422 003244 429 003245 444 003300 448 003311 449 003322 451 003324 453 003364 455 003370 457 003373 459 003374 460 003406 461 003412 462 003414 464 003416 465 003420 466 003422 467 003423 468 003427 469 003432 471 003434 474 003463 475 003471 476 003475 477 003512 479 003604 480 003617 481 003620 482 003623 483 003640 484 003663 485 003664 486 003706 487 003712 488 003767 494 004017 502 004020 511 004026 514 004034 518 004037 519 004041 520 004042 522 004043 523 004045 525 004053 526 004063 527 004071 529 004073 531 004115 533 004120 535 004141 536 004142 537 004153 538 004155 539 004162 540 004164 543 004206 544 004213 545 004220 546 004224 549 004303 551 004307 552 004315 553 004316 554 004331 555 004347 557 004376 558 004400 559 004407 564 004461 565 004466 566 004470 567 004471 568 004473 569 004477 570 004501 571 004503 573 004504 574 004506 576 004545 577 004550 578 004554 579 004556 581 004557 582 004566 583 004573 587 004574 588 004575 590 004576 591 004600 592 004602 594 004605 597 004633 600 004634 601 004636 602 004637 604 004643 606 004644 608 004652 609 004660 610 004720 612 004724 613 004730 614 004735 616 004741 618 004742 620 004743 622 004774 624 005045 625 005050 629 005120 630 005127 632 005134 637 005206 638 005213 639 005215 646 005216 651 005227 653 005242 659 005262 662 005270 663 005275 664 005303 667 005306 668 005312 669 005352 672 005355 673 005361 674 005366 677 005371 678 005416 680 005444 689 005445 694 005447 698 005452 701 005514 702 005522 703 005526 707 005570 709 005576 711 005601 717 005602 730 005610 731 005620 732 005631 734 005657 736 005662 738 005676 739 005731 740 005734 742 005735 744 005774 745 006000 747 006013 750 006042 760 006043 765 006051 768 006127 769 006134 770 006135 774 006214 776 006243 782 006244 787 006245 789 006267 790 006272 791 006310 794 006342 ----------------------------------------------------------- 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