COMPILATION LISTING OF SEGMENT gcos Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1156.9 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gcos: gc: proc; 7 8 /* 9* 10* This procedure is invoked when a user types the "gcos" command. 11* 12* It interprets all of the command arguments, setting switches 13* and storing values in external static variables, and it 14* verifies the existence of the input segment(s). It then calls 15* gcos_gein_, which processes the gcos job deck and runs the job. 16* 17**/ 18 19 /* 20* 21* Author: T. CASEY MAR 1973 22* Change: T. CASEY OCT 1973 23* FEB 1974 24* APR 1974 25* MAY 1974 26* AUG 1974 27* Change: D. KAYDEN FEB 1975 28* Change: M. R. JORDAN JUN 1976 To process "-smc" control argument. 29* Change: Mel Wilson MAR 1979 For gtss interface and -ident option. 30* Change: Mel Wilson OCT 1979 For gtss ring_bracket compatibility. 31* Change: Dave Ward MAY 1981 DBS entry, source reorganized. 32* Change: Scott Akers DEC 1981 Fix "-syot_dir" control_arg. 33* Change "expand_path_" to "expand_pathname_." 34* 2.5 FEB 1982 Add "-block" control_arg. 35* Change: Ron Barstad 2.5 Sep 1982 Fix usage statement to be only 1 line 36* Change: Ron Barstad 3.0 Feb 1983 Change version to "3.0" for 4JS3 37* Change: Ron Barstad 3.1 83-02-15 Add init for $param vaules to "" 38* Fix bug: was not processing past first 39* -param value! missplaced label end_arg_loop 40* Allow non-control args to start with "-" by adding -string arg 41* Allow null "" param after -param. 42* Change: Ron Barstad 3.2 83-04-28 Delete long gcos$dbs usage message 43* Update spawn & task versions 44* Make default buffer size 4096, remove workspace.acs check 45* Declared some undeclared builtins 46* Change: Ron Barstad 3.3 83-08-02 Added activity_card_num to ext static 47* Change: Ron Barstad 3.4 83-08-10 Added 4js3 control cards 48* 49**/ 50 51 52 me = "gcos (4.0)"; 53 goto gcos_common; 54 55 spawn: entry; 56 temp_spawnflag = "1"b; 57 me = "gcos$spawn (4.0)"; 58 goto gcos_common; 59 60 task: entry; 61 temp_taskflag = "1"b; 62 me = "gcos$task (4.0)"; 63 goto gcos_common; 64 65 dbs: entry; 66 call cu_$arg_ptr (i, pp, lp, code); 67 call gcos_dbs; 68 goto exit_gcos; 69 70 gcos_common: 71 72 on condition (cleanup) begin; 73 simulator_already_active = "0"b; 74 end; 75 76 if simulator_already_active 77 then do; 78 call com_err_ ( 79 0 80 , me 81 , "job already active, you must complete it (""start"")" 82 ||"^/or terminate it (""release"") before starting another one." 83 ); 84 goto fatal_error; 85 end; 86 87 call initialize_routine; /* Do all the init stuff. */ 88 89 call process_args; /* Now, dink around with the args. */ 90 91 92 /* NOW ALL ARGUMENTS HAVE BEEN PROCESSED - SEE IF THERE WERE ANY PROBLEMS */ 93 94 if ^job_deck 95 then do; /* If job deck pathname not given, complain. */ 96 call com_err_ (error_table_$noarg, 97 me, "No job deck pathname given."); 98 goto fatal_error; 99 end; 100 101 if expecting 102 then do; /* If we were waiting for something, complain. */ 103 call com_err_ (error_table_$noarg, 104 me, "^/Could not find expected argument after ""^a"" ", 105 targ); 106 goto fatal_error; 107 end; 108 109 /* check for job deck segment pathname to be used as job id */ 110 111 if id_jd | gcos_ext_stat_$job_id = "" then do; /* default, if not specified */ 112 /* get rid of ".gcos" appendage, if it's there */ 113 i = index (jd_ename, ".gcos"); /* look for .gcos */ 114 if i = 0 then /* if not there */ 115 i = length (rtrim (jd_ename))+1; 116 117 if i > 19 /* If job ID longer than 18 characters, */ 118 then do; /* truncate it and warn user. */ 119 120 i = 19; /* 19 since i-1 is used below */ 121 call com_err_ (0, me, 122 "Job ID too long. Using first 18 chracters" 123 || " (""^a"")", (substr (jd_ename, 1, 18))); 124 125 end; 126 127 gcos_ext_stat_$job_id = substr (jd_ename, 1, i-1); 128 129 end; /* end of id_jd do group */ 130 131 /* SET SYSOUT OPTIONS */ 132 133 if dpo_given then 134 gcos_ext_stat_$save_data.dprint = "1"b; /* if dprint (or dpunch) options given */ 135 else gcos_ext_stat_$dpo = "-dl"; /* the default is delete */ 136 if dpno_given then 137 gcos_ext_stat_$save_data.dpunch = "1"b; /* then dprint (or dpunch) is implied */ 138 else gcos_ext_stat_$dpno = "-dl"; /* the default is delete */ 139 140 if gcos_ext_stat_$save_data.dprint then gcos_ext_stat_$save_data.list = "1"b; /* if dprint (or dpunch) to be done */ 141 if gcos_ext_stat_$save_data.dpunch then gcos_ext_stat_$save_data.raw = "1"b; /* then conversion from bcd is implied */ 142 143 /* see if defaults are to be used */ 144 145 if ^hold_given then do; /* set defaults, if not told to skip it */ 146 if ^gcos_ext_stat_$save_data.raw then /* if nothing said about punch files */ 147 gcos_ext_stat_$save_data.raw, gcos_ext_stat_$save_data.dpunch = "1"b; /* the default is convert and punch */ 148 149 if ^gcos_ext_stat_$save_data.list then /* if nothing said about print files */ 150 gcos_ext_stat_$save_data.list, gcos_ext_stat_$save_data.dprint = "1"b; /* the default is convert and print */ 151 end; /* end of set defaults do group */ 152 153 154 gcos_ext_stat_$dpno = gcos_ext_stat_$dpno || " -raw"; /* raw option always used, since any other 155* way would produce garbage on the cards */ 156 157 /* FUSSY WARNING MESSAGES */ 158 159 if gcos_ext_stat_$save_data.gcos then 160 if gcos_ext_stat_$save_data.no_canonicalize then do; 161 warning_return = ignored_ncan; 162 err_msg = "-no_canonicalize ignored - valid only for ascii job deck segment"; 163 com_err_inconsistent: 164 call com_err_ (0, me, "Warning:" || err_msg); 165 166 goto warning_return; 167 end; 168 169 ignored_ncan: 170 if gcos_ext_stat_$save_data.gcos then if gcos_ext_stat_$save_data.truncate then do; 171 warning_return = ignored_truncate; 172 err_msg = "-truncate ignored - valid only for ascii job deck segment"; 173 goto com_err_inconsistent; 174 end; 175 176 ignored_truncate: 177 178 /* END OF ARGUMENT LIST PROCESSING */ 179 180 /* for debugging arg list processing */ 181 182 if gcos_ext_stat_$stop_code = 1 then do; 183 call ioa_ ("Results of arg list processing:"); 184 call ioa_ ("gcos_ext_stat_$save_data.flgs: ^12.3b", unspec (gcos_ext_stat_$save_data.flgs)); 185 call ioa_ ("job id: ^a", gcos_ext_stat_$job_id); 186 call ioa_ ("temp_dir: ^a", gcos_ext_stat_$temp_dir); 187 call ioa_ ("input seg: ^a", gcos_ext_stat_$input_segment_path); 188 call ioa_ ("jd_ename: ^a", jd_ename); 189 call ioa_ ("dprint options: ^a", gcos_ext_stat_$dpo); 190 call ioa_ ("dpunch options: ^a", gcos_ext_stat_$dpno); 191 call ioa_ ("pdir: ^a", gcos_ext_stat_$pdir); 192 call ioa_ ("save_dir: ^a", gcos_ext_stat_$save_dir); 193 call ioa_ ("nargs: ^d", nargs); 194 call ioa_ ("DB:"); 195 call db; 196 /* to allow looking at others */ 197 /* .q to get out of db */ 198 goto fatal_error; /* to get any necessary cleaning up done */ 199 end; 200 201 gcos_ext_stat_$abort_return = fatal_error; /* set up abort nonlocal goto */ 202 203 gcos_ext_stat_$validation_level = get_ring_ (); /* set up ring numbers for created branches */ 204 if gcos_ext_stat_$save_data.gtssflag & (gcos_ext_stat_$validation_level < 4) then do; 205 gcos_ext_stat_$dir_rings (1) = gcos_ext_stat_$validation_level; 206 gcos_ext_stat_$dir_rings (2), gcos_ext_stat_$dir_rings (3) 207 , gcos_ext_stat_$seg_rings (*) 208 = 4; 209 end; 210 else gcos_ext_stat_$dir_rings (*), gcos_ext_stat_$seg_rings (*) = gcos_ext_stat_$validation_level; 211 212 call gcos_gein_ ; /* go read job deck and run job */ 213 214 fatal_error: /* if an abort occurs, control returns here via a nonlocal 215* transfer to gcos_ext_stat_$abort_return, causing the stack 216* to be cleaned up, and cleanup handlers to be invoked */ 217 simulator_already_active = "0"b; /* allow simulator to be invoked again */ 218 219 exit_gcos: ; 220 221 return; 222 223 gcos_dbs: proc; 224 225 /* Process argument(s) to switch debug switches. 226**/ 227 do i = 1 by 1; 228 call cu_$arg_ptr (i, pp, lp, code); 229 if code ^= 0 then do; 230 if i<2 231 then call print_dbs_usage; 232 goto fatal_error; 233 end; 234 if targ = "-print" | targ = "-pr" then do; 235 do j = 1 to hbound (dbs_names, 1); 236 call ioa_ ( 237 "^3i. ^[ ON^;OFF^] ^a" 238 , j 239 , dbsv (j) 240 , dbs_names (j) 241 ); 242 end; 243 end; 244 else do; 245 if lp<2 then targ_fc, tl = length (targ); /* Use whole targ. */ 246 else do; /* Examine for leading "^" and comma. */ 247 if substr (targ, 1, 1) = "^" then targ_fc = 2; /* Start with 2nd character of targ, exclude "^". */ 248 else targ_fc = 1; /* Start with 1st character of targ. */ 249 tl = index (substr (targ, targ_fc), ","); 250 if tl = 0 then /* No comma in argument string. */ 251 tl = length (targ) - targ_fc + 1; /* Use the whole available string. */ 252 else /* There is a comma. */ 253 tl = tl - 1; /* Use the available string up to the comma. */ 254 end; 255 do j = 1 to hbound (dbs_names, 1); 256 if substr (targ, targ_fc, tl) = dbs_names (j) then do; 257 dbsv (j) = (targ_fc = 1); 258 259 /* Locate the portion of "targ" after the first comma. */ 260 if (targ_fc+tl) > length (targ) then do; /* There is none. */ 261 ta_fc = 1; /* Let 1st character be at one, */ 262 ta_ln = 0; /* but the length is zero (to allow substring). */ 263 end; 264 else do; /* Ther is a comma. */ 265 ta_fc = targ_fc+tl+1; /* Location of 1st character after comma. */ 266 ta_ln = length (targ) - ta_fc +1; /* Number of character. */ 267 end; 268 if substr (targ, targ_fc, tl) = "filecode" then 269 call gcos_mme_inos_$inos_trace_filecode (substr (targ, ta_fc, ta_ln)); 270 else if substr (targ, targ_fc, tl) = "trace_mme" then 271 call gcos_process_mme_$mme_trace (substr (targ, ta_fc, ta_ln)); 272 else if substr (targ, targ_fc, tl) = "stop_mme" then 273 call gcos_process_mme_$mme_stop (substr (targ, ta_fc, ta_ln)); 274 goto dbs_next; 275 end; 276 end; 277 call com_err_ ( /* Report dbs arg error. */ 278 0 279 , "gcos$dbs" 280 , "Arg ^i ""^a"" unknown. Need -print (-pr) or switch name." 281 , i 282 , substr (targ, targ_fc, tl) 283 ); 284 dbs_next: ; 285 end; 286 end; 287 288 return; 289 290 end gcos_dbs; 291 292 print_dbs_usage: proc; /* Prints gcos_dbs usage message. */ 293 call gcos_print_call_ ( 294 "Usage: gcos$dbs arg ..." 295 /* DON'T PRINT THIS: , "args:" 296* , " -print, -pr|Print names of switches." 297* , " name or ^name|Switch name value from following:" 298* , "|attach_file" 299* , "|open_file" 300* , "|msf_test" 301* , "|dollar" 302* , "|nondollar" 303* , "|filecode{,-print,file-code[DEFAULT all codes]}" 304* , "|mme_inos_trace" 305* , "|mme_inos_stop" 306* , "|mme_call" 307* , "|trace_mme{,-print,-all[DEFAULT],-on[DEFAULT],-off,-clear,mme#|mme-name}" 308* , "|stop_mme{,-print,-all[DEFAULT],-on[DEFAULT],-off,-clear,mme#|mme-name}" 309**/ ); 310 311 return; 312 313 end print_dbs_usage; 314 315 initialize_routine: proc; /* Perform initialization */ 316 317 /* INITIALIZE EXTERNAL STATICS USED IN ARGUMENT PROCESSING */ 318 319 simulator_already_active = "1"b; 320 query_info.yes_or_no_sw = "1"b; 321 expecting = "0"b; 322 literal_string = "0"b; 323 buffsize_next = "0"b; 324 string (gcos_ext_stat_$dbs) = string (dbsv); 325 save_data.activity_no = 0; 326 gcos_ext_stat_$incode, 327 gcos_ext_stat_$gf = 0; 328 gcos_ext_stat_$last_mme = 0; 329 gcos_ext_stat_$ldrss = 0; 330 gcos_ext_stat_$max_activities = 63; 331 gcos_ext_stat_$save_data.param = ""; 332 gcos_ext_stat_$tape_buffer_size = 4096; 333 save_data.sqindex = 1; 334 unspec (gcos_ext_stat_$save_data.flgs) = (72)"0"b; /* zero out gcos_ext_stat_$save_data before argument processing */ 335 gcos_ext_stat_$job_id = ""; /* must be initialized to blanks so we can tell whether to 336* set it to default after all args processed */ 337 gcos_ext_stat_$er 338 , gcos_ext_stat_$gcos_slave_area_seg 339 , gcos_ext_stat_$patchfile_ptr 340 , gcos_ext_stat_$pch 341 , gcos_ext_stat_$prt 342 , gcos_ext_stat_$rs 343 , gcos_ext_stat_$saveseg_ptr 344 , gcos_ext_stat_$sig_ptr 345 , gcos_ext_stat_$temp_seg_ptr 346 = null (); 347 gcos_ext_stat_$system_free_pointer = get_system_free_area_ (); 348 /* get pointer to free area for allocating things in */ 349 350 351 gcos_ext_stat_$save_data.spawnflag = temp_spawnflag; /* set entry point gcos_ext_stat_$save_data */ 352 gcos_ext_stat_$save_data.gtssflag = temp_spawnflag; 353 gcos_ext_stat_$save_data.taskflag = temp_taskflag; 354 355 356 /* GET PROCESS, WORKING AND DEFAULT WORKING DIRECTORY PATHNAMES FOR USE IN FILE NAMES */ 357 358 gcos_ext_stat_$temp_dir, /* temp_dir = pdir, by default */ 359 gcos_ext_stat_$pdir = rtrim (get_pdir_ ()); /* put it in ext static varying string */ 360 361 save_data.syot_dir, /* syot_dir and save_dir = wdir, by default */ 362 gcos_ext_stat_$save_dir = rtrim (get_wdir_ ()); /* put in ext static varying string */ 363 364 save_data.pathname_prefix = rtrim (get_default_wdir_ ()) ; /* pathname_prefix = default_wdir_ by default */ 365 save_data.skip_umc = "1"b ; 366 367 return; 368 369 end initialize_routine; 370 371 print_call: proc; 372 373 /* Display on caller's terminal the calling sequence. 374**/ 375 call gcos_print_call_ ( 376 "Usage: gcos JOB_DECK_PATH {-control_args}" 377 /* , "" 378* , "job_deck_path|Pathname of JCL file, can be a Multics segment or GCOS file" 379* ||" regulated by control argument and suffix." 380* , "" 381* , "control_args:" 382* , " -gcos, -gc|Job deck segment is in gcos file format (not required if pathname ends in "".gcos"")." 383* , " -ascii, -aci|Job deck segment is Multics ascii format (to override "".gcos"")." 384* , " -nosave, -nosv|Do not save (make restartable) any activities (in a resumed job)." 385* , " -hold, -hd|Do not perform default conversion and output of sysout files (needed only when some sysout files are to be left in gcos bcd format, since any" 386* ||" of -ls -dp -dpo (or -raw -dpn -dpno) override the defaults for print (punch) files.)." 387* , " -list, -ls|Translate sysout print files to Multics ascii." 388* , " -brief, -bf|Do not print any except fatal error messages on the terminal." 389* , " -long, -lg|Duplicate certain lines from the execution report on the terminal." 390* , " -debug, -db|Give user option of calling debug before aborting job." 391* , " -no_bar,|Do not run slave program in BAR mode (used for debugging.)." 392* , " -nobar, -nb" 393* , " -no_canonicalize,|Do not canonicalize (ascii) job deck segment - it is already" 394* ||" in canonical form (no tabs, and all fields in right columns)." 395* , " -nocan, -no" 396* , " -job_id ID,|ID, used in output file names." 397* , " -id ID" 398* , " ID from:" 399* , " |Job id given as character string (max 18 char)." 400* , " -unique|Use shriekname (result of unique_chars_) as job id." 401* , " -jd_seg, -jd|Use entry name of job deck segment as job id." 402* , "" 403* , " -stop n|Debugging: print results, call db, then return, at stopping point n." 404* , " -temp_dir TD,|TD ispathname of ""gcos pool"" directory, to be used for temporary files." 405* , " -tp TD" 406* , " -syot_dir, -sd|Pathname of ""gcos pool"" directory, to be used for sysout files." 407* , " -smc|Pathname of directory to be used as the gcos SMC in processing prmfl cards." 408* , " -raw|Convert sysout punch files from bcd." 409* , " -dprint, -dp|Dprint -delete converted sysout print files (implies -list)." 410* , " -dpunch, -dpn|Dpunch -delete -raw converted sysout punch files (implies -raw)." 411* , " -dprint_options O,|O are options to use in dprint call (implies -dprint)." 412* , " -dpo O" 413* , " -dpunch_options O,|O are options to use in dpunch call (implies -dpunch)." 414* , " -dpno O" 415* , " -userlib|Allow use of libraries other than the installed ones. (see gcos_gein_)." 416* , " -truncate,|Truncate without warning any ascii input lines longer than 80 characters." 417* , " -tnc, -tc" 418* , " -continue, -ctu|Continue executing job when nonfatal erros occur." 419* , " -lower_case,|Translate BCD sysout and print files to lower case ASCII" 420* ||" (the default is uppercase ASCII, simulating the appearance of BCD printer output)." 421* , " -lc" 422* , " -gtss|Update gtss_user_state_ during execution." 423* , " -ident|Use $ident fields for print & punch banners." 424* , " -block N, -bk N|Specify tape buffer size. (Default = 4096)" 425**/ 426 ); 427 return; 428 end print_call; 429 430 process_args: proc; /* Process the arguments. */ 431 /* PROCESS ARGUMENT LIST */ 432 433 call cu_$arg_count (nargs, code); /* get number of arguments */ 434 if code ^= 0 then do; 435 call com_err_ ( /* arg count failed. */ 436 code 437 , "gcos" 438 ); 439 return; 440 end; 441 if nargs = 0 then do; /* if no args, complain */ 442 usage: ; 443 call com_err_ ( /* Print the USAGE msgs. */ 444 error_table_$noarg 445 , me 446 ); 447 call print_call; 448 /* call print_dbs_usage; */ 449 goto fatal_error; 450 end; 451 452 do i = 1 to nargs; /* process all arguments in this loop */ 453 call cu_$arg_ptr (i, pp, lp, code); /* get pointer to, and length of, argument */ 454 /* targ is declared char(lp) based(pp) */ 455 if code ^= 0 then do; /* if something wrong with it */ 456 call com_err_ (code, me, targ); /* complain, print the arg, if it's there */ 457 goto usage; /* and then go print the usage message */ 458 end; 459 460 461 462 /* NOW, WHAT DO WE HAVE, AND WHAT DO WE NEED? */ 463 464 /* special handling of -string arg: following arg is NOT a control arg */ 465 if ^literal_string /* can have "-string -string" */ 466 then if (targ = "-string" | targ = "-str") then do; 467 literal_string = "1"b; 468 goto end_arg_loop; 469 end; 470 471 /* determine type arg we have */ 472 num_arg = cv_dec_check_ (targ, code); /* in case it is numeric */ 473 if lp = 0 then control = "0"b; 474 else if (substr (targ, 1, 1) = "-" & ^literal_string) 475 then do; 476 control = "1"b; 477 processing_params = "0"b; /* no more params */ 478 end; 479 else control = "0"b; 480 481 /* process substitution parameters for gcos JCL */ 482 if processing_params then do; 483 if i-param_base > hbound (save_data.param, 1) then do; 484 call com_err_ (error_table_$too_many_args, "gcos" 485 , "Maximum number of -parameter arguments is ^d." 486 , hbound (save_data.param, 1)); 487 return; 488 end; 489 if literal_string then param_base = param_base +1; 490 save_data.param (i-param_base) = targ; 491 literal_string = "0"b; 492 goto end_arg_loop; 493 end; 494 495 /* it is a control arg or a value following one */ 496 if expecting then do; /* if we were expecting a value after a control arg */ 497 /* then see if this is it */ 498 if temp_dir_next then do; 499 if control then do; /* if not a pathname, complain */ 500 501 err_msg = "(pathname, between -temp_dir and ^a)"; 502 com_err_noarg: call com_err_ (error_table_$noarg, me, err_msg, targ); 503 if print_usage then goto usage; /* optionally, print the usage message */ 504 goto fatal_error; /* otherwise, quit */ 505 end; 506 507 /* get the directory pathname */ 508 get_dir: ; /* come here from syot_dir */ 509 510 call expand_pathname_ ((substr (targ, 1, lp)), fullname, ename, code); 511 512 if code ^= 0 then goto ex_error; 513 514 call hcs_$status_minf ((fullname), (ename), chase, type, bit_count, code); 515 if code ^= 0 then goto in_error; 516 517 /* make sure it is a directory */ 518 if type ^= 2 | bit_count ^= 0 then do; 519 call com_err_ (0, me, "expected directory path is that of a ^a:^/^a>^a", 520 type_name (type), fullname, ename); 521 goto fatal_error; 522 end; 523 524 /* put pathname back together and save it in external static */ 525 itemp = index (fullname, " "); 526 if itemp = 0 then itemp = 169; 527 528 jtemp = index (ename, " "); 529 if jtemp = 0 then jtemp = 33; 530 fullname = substr (fullname, 1, itemp-1) || ">" || substr (ename, 1, jtemp-1); 531 532 itemp = itemp + jtemp - 1; /* length of full pathname */ 533 534 if temp_dir_next then 535 gcos_ext_stat_$save_dir 536 , gcos_ext_stat_$temp_dir = substr (fullname, 1, itemp); 537 else if syot_dir_next then 538 save_data.syot_dir = substr (fullname, 1, itemp); 539 else save_data.pathname_prefix = substr (fullname, 1, itemp) ; 540 541 542 syot_dir_next, smc_next 543 , expecting, temp_dir_next = "0"b; /* turn off , expecting switches */ 544 545 end; 546 547 else if syot_dir_next then do; 548 if control then do; 549 err_msg = "(pathname, between -syot_dir and ^a)"; 550 goto com_err_noarg; 551 end; 552 goto get_dir; /* share code with temp_dir */ 553 end; 554 555 else if smc_next then do ; 556 557 save_data.skip_umc = "0"b ; 558 559 if control then do ; /* must be a string */ 560 err_msg = "(pathname, between -smc and ^a)" ; 561 goto com_err_noarg ; 562 end ; 563 else goto get_dir ; 564 end ; 565 566 else if stop_code_next then do; 567 568 /* if stop code expected, save it */ 569 if code ^= 0 then do; /* if it was non numeric, complain */ 570 err_msg = "(numeric, between -stop and ^a)"; 571 goto com_err_noarg; 572 end; /* end of non numeric stop code do group */ 573 574 gcos_ext_stat_$stop_code = num_arg; 575 expecting, stop_code_next = "0"b; /* turn off expecting switches */ 576 577 end; 578 579 else if buffsize_next 580 then do; 581 if ^valid_buffsize (targ) 582 then goto fatal_error; /* Bail out if buffer size not legal. 583* Error was reported by valid_buffsize. */ 584 buffsize_next = "0"b; 585 expecting = "0"b; 586 end; 587 588 else if dpo_next then do; 589 gcos_ext_stat_$dpo = targ; /* copy without checking validity */ 590 expecting, dpo_next = "0"b; /* turn off expecting switches */ 591 dpo_given = "1"b; /* remember that we read it */ 592 end; 593 594 else if dpno_next then do; 595 gcos_ext_stat_$dpno = targ; /* copy without checking validity */ 596 expecting, dpno_next = "0"b; /* turn off expecting switches */ 597 dpno_given = "1"b; /* remember that we read it */ 598 599 end; 600 601 else if job_id_next then do; 602 if ^control then do; /* must be a string */ 603 /* impose limit of 18 characters on 604* id (14 more chars max in entry names) */ 605 if lp > 18 then do; 606 lp = 18; /* this cuts end off targ */ 607 608 /* ***** 609* ***** TEMPORARY FIX TO PREVENT DAEMON JOBS FROM COMPLAINING VIA com_err_ 610* ***** REMOVE WHEN DAEMON IS FIXED TO SUPPLY 18 CHAR JOB ID. TAC, 6 JUNE 74 611* ***** 612* */ 613 614 if substr (targ, 7, 1) = "!" then 615 goto ignored_string_end; 616 err_msg = targ; /* this puts first 18 chars of targ in err_msg */ 617 warning_return = ignored_string_end; /* come back here */ 618 com_err_id_too_long: call com_err_ (0, me, "job id too long; using first 18 characters: ^a", err_msg); 619 goto warning_return; /* continue processing */ 620 end; /* end too long do group */ 621 622 ignored_string_end: 623 gcos_ext_stat_$job_id = targ; 624 end; /* end of job id = string do group */ 625 626 else if targ = "-unique" then do; /* unique job id wanted */ 627 gcos_ext_stat_$job_id = unique_chars_ ("0"b); 628 end; /* end of -unique do group */ 629 630 631 else if targ = "-jd" | targ = "-jd_seg" then do; /* jd seg name wanted as job id */ 632 id_jd = "1"b; /* might not have jd seg path yet. remember to use it later */ 633 end; /* end of -jd do group */ 634 635 /* NOTE* WE CAN NEVER USE THE SNUMB AS THE JOB ID 636* (UNLESS THE DAEMON GIVES IT TO US AS -id ) 637* SINCE WE HAVE TO USE IT IN FILE PATHNAMES BEFORE WE 638* START READING THE JOB DECK TO GET THE SNUMB CARD */ 639 640 else do; /* control arg after -id. complain */ 641 err_msg = "(job id, between -job_id and ^a)"; 642 goto com_err_noarg; 643 end; 644 645 expecting, job_id_next = "0"b; /* turn off expecting switches */ 646 end; 647 648 else do; /* should never get here */ 649 err_msg = "ERROR IN GCOS. Flags not reset properly."; 650 goto com_err_noarg; 651 end; /* end of ERROR IN GCOS do group */ 652 end; 653 654 655 else if control then do; /* if a control arg */ 656 if targ = "-gc" | targ = "-gcos" then gcos_ext_stat_$save_data.gcos = "1"b; 657 658 else if targ = "-nosv" | targ = "-nosave" then gcos_ext_stat_$save_data.nosave = "1"b; 659 660 661 else if targ = "-hd" | targ = "-hold" then hold_given = "1"b; 662 663 else if targ = "-ls" | targ = "-list" then gcos_ext_stat_$save_data.list = "1"b; 664 665 else if targ = "-bf" | targ = "-brief" then gcos_ext_stat_$save_data.brief = "1"b; 666 667 else if targ = "-lg" | targ = "-long" then gcos_ext_stat_$save_data.long = "1"b; 668 669 else if targ = "-db" | targ = "-debug" then gcos_ext_stat_$save_data.debug = "1"b; 670 671 else if targ = "-nb" | targ = "-nobar" | targ = "-no_bar" then gcos_ext_stat_$save_data.no_bar = "1"b; 672 673 else if targ = "-tnc" | targ = "-tc" | targ = "-truncate" then gcos_ext_stat_$save_data.truncate = "1"b; 674 675 else if targ = "-ctu" | targ = "-continue" then gcos_ext_stat_$save_data.continue = "1"b; 676 677 else if targ = "-userlib" then gcos_ext_stat_$save_data.userlib = "1"b; 678 679 else if targ = "-no" | targ = "-no_canonicalize" | targ = "-nocan" then 680 gcos_ext_stat_$save_data.no_canonicalize = "1"b; 681 682 else if targ = "-aci" | targ = "-ascii" then do; 683 ascii_given = "1"b; 684 gcos_ext_stat_$save_data.gcos = "0"b; 685 end; 686 687 else if targ = "-id" | targ = "-job_id" then expecting, job_id_next = "1"b; 688 689 else if targ = "-stop" then expecting, stop_code_next = "1"b; 690 691 else if targ = "-td" | targ = "-temp_dir" then expecting, temp_dir_next = "1"b; 692 693 else if targ = "-sd" | targ = "-syot_dir" then expecting, syot_dir_next = "1"b; 694 695 else if targ = "-raw" then gcos_ext_stat_$save_data.raw = "1"b; 696 697 else if targ = "-dp" | targ = "-dprint" then gcos_ext_stat_$save_data.dprint = "1"b; 698 699 else if targ = "-dpn" | targ = "-dpunch" then gcos_ext_stat_$save_data.dpunch = "1"b; 700 701 else if targ = "-dpo" | targ = "-dprint_options" then expecting, dpo_next = "1"b; 702 703 else if targ = "-dpno" | targ = "-dpunch_options" then expecting, dpno_next = "1"b; 704 705 else if targ = "-lc" | targ = "-lower_case" then gcos_ext_stat_$save_data.lower_case = "1"b; 706 707 else if targ = "-unique" then do; /* unique not after job id - complain */ 708 unexpected_id: /* can come here from below, too */ 709 err_msg = "immediately following -job_id"; 710 call com_err_ (0, me, "-unique out of place - only allowed following -job_id"); 711 goto fatal_error; 712 end; 713 714 else if targ = "-jd" | targ = "-jd_seg" then goto unexpected_id; /* -jd not after -id so complain */ 715 716 else if targ = "-smc" then expecting, smc_next = "1"b ; 717 718 else if (targ = "-parameter" | targ = "-pm" | targ = "-param") then do; 719 processing_params = "1"b; 720 param_base = i; 721 end; 722 723 else if targ = "-gtss" then gcos_ext_stat_$save_data.gtssflag = "1"b; 724 725 else if targ = "-ident" then gcos_ext_stat_$save_data.identflag = "1"b; 726 727 else if targ = "-block" | targ = "-bk" then expecting, buffsize_next = "1"b; 728 729 730 else do; /* complain about unrecognized control argument */ 731 call com_err_ (error_table_$badopt, me, targ); 732 goto fatal_error; 733 end; 734 end; 735 736 737 /* IT MUST BE A PATHNAME. DO WE WANT ONE? */ 738 739 /* since we were not expecting anything special, it is either the job deck pathname, or an error */ 740 741 else if ^job_deck then do; /* if job deck pathname not read yet, this must be it */ 742 743 job_deck = "1"b; /* remember that we read it */ 744 745 call expand_pathname_ ((substr (targ, 1, lp)), fullname, ename, code); 746 if code ^= 0 then do; /* if unable to expand... */ 747 ex_error: call com_err_ (code, me, targ); /* print error and */ 748 goto fatal_error; /* exit stage left */ 749 end; 750 751 jd_ename = ename; /* save entry name for possible use in job id */ 752 753 /* See if the segment is there */ 754 755 call hcs_$status_minf ((fullname), (ename), chase, type, bit_count, code); 756 if code ^= 0 then do; /* if any problem */ 757 in_error: call com_err_ (code, me, "^a>^a", fullname, ename); /* print error msg and */ 758 goto fatal_error; /* exit stage rear */ 759 end; 760 761 if bit_count = 0 then do; /* put out error msg if zero length segment */ 762 call com_err_ (0, me, "zero length job deck segment: ^a>^a", fullname, ename); 763 goto fatal_error; 764 end; 765 766 /* if it looks OK, save its pathname for later use */ 767 768 itemp = index (fullname, " "); /* find first blank */ 769 if itemp = 0 then itemp = 169; /* if none, 168 char dirname */ 770 gcos_ext_stat_$input_segment_path = substr (fullname, 1, itemp-1)||">"; 771 772 itemp = index (ename, " "); /* find end */ 773 if itemp = 0 then itemp = 33; 774 gcos_ext_stat_$input_segment_path = gcos_ext_stat_$input_segment_path||substr (ename, 1, itemp-1); 775 776 /* if segment has suffix ".gcos", then it is in gcos file format, as 777* gotten from the gcos daemon, gcos utility, or IMCV tape */ 778 779 if ^ascii_given then /* (unless told to ignore .gcos by -ascii) */ 780 if lp > length (".gcos") then 781 if substr (targ, lp-length (".gcos")+1, length (".gcos")) = ".gcos" then 782 gcos_ext_stat_$save_data.gcos = "1"b; 783 end; /* end processing of job deck pathname */ 784 785 else do; /* complain about unrecognized NON-control argument */ 786 call com_err_ (0, me, "Unidentified non-control argument: ^a", targ); 787 goto usage; /* and go print usage message */ 788 end; 789 790 literal_string = "0"b; /* just once */ 791 792 end_arg_loop: ; 793 end; 794 795 796 return; 797 798 end process_args; 799 800 valid_buffsize: proc (charbuffsize) returns (bit(1)); /* Check buffer size for validity, report errors 801* if it's not kosher. Set gcos_ext_stat_$tape_buffer_size 802* if it's O.K. */ 803 804 dcl charbuffsize char (*) parm; 805 dcl buffsize fixed bin (35); 806 807 808 code = 0; 809 810 buffsize = cv_dec_check_ (ltrim (rtrim (charbuffsize)), code); 811 812 813 if buffsize < 1 814 | buffsize > 4096 815 | code ^= 0 816 then do; 817 code = error_table_$bad_conversion; 818 call com_err_ (code, me, 819 "Could not use ""^a"" as buffer size." 820 || "^/Permissible values are 1 <= buffsize <= 4096^/^/", 821 ltrim (rtrim (charbuffsize))); 822 goto exit_valid_buffsize; 823 end; 824 825 gcos_ext_stat_$tape_buffer_size = buffsize; 826 827 exit_valid_buffsize: ; 828 829 return (code = 0); 830 831 end valid_buffsize; 832 833 /* Variables for gcos: */ 834 /* IDENTIFIER ATTRIBUTES */ 835 dcl addr builtin; 836 dcl bit_count fixed bin(24) /* length of input segment in bits */; 837 dcl buffsize_next bit (1); 838 dcl chase fixed bin(1) init (1); 839 dcl cleanup condition; 840 dcl code fixed bin(35) /* return param. for passing error codes */; 841 dcl com_err_ entry options(variable); 842 dcl cu_$arg_count entry (fixed bin, fixed bin(35)); 843 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin(21), fixed bin(35)); 844 dcl cv_dec_check_ entry (char(*), fixed bin(35)) returns (fixed bin); 845 dcl db entry options(variable); 846 dcl dbsv (36)bit(1)static int init((36)(1)"0"b); 847 dcl ename char (32) /* holds entry name of input seg */; 848 dcl error_table_$badopt fixed bin(35) ext static; 849 dcl error_table_$bad_conversion fixed bin(35) ext static; 850 dcl error_table_$big_ws_req fixed bin(35) ext static; 851 dcl error_table_$noarg fixed bin(35) ext static; 852 dcl error_table_$too_many_args fixed bin(35) ext static; 853 dcl err_msg char(100) varying /* varying error message, to save com_err_ calls */; 854 dcl expand_pathname_ entry (char(*), char(*), char(*), fixed bin(35)); 855 dcl fullname char(168) /* holds pathname of input seg */; 856 dcl gcos_gein_ entry; 857 dcl gcos_mme_inos_$inos_trace_filecode entry(char(*)); 858 dcl gcos_process_mme_$mme_stop entry(char(*)); 859 dcl gcos_process_mme_$mme_trace entry(char(*)); 860 dcl gcos_print_call_ entry options(variable); 861 dcl get_default_wdir_ entry returns (char(168) aligned); 862 dcl get_pdir_ entry returns (char(168) aligned); 863 dcl get_ring_ entry returns (fixed bin(3)); 864 dcl get_system_free_area_ entry returns (ptr); 865 dcl get_wdir_ entry returns (char(168) aligned); 866 dcl hbound builtin; 867 dcl i fixed bin(17); 868 dcl index builtin; 869 dcl ioa_ entry options(variable); 870 dcl j fixed bin(24); 871 dcl jd_ename char(32) /* to hold job deck entry name for possible -id -jd */; 872 dcl length builtin; 873 dcl literal_string bit(1); /* allow non control args to start with - */ 874 dcl ltrim builtin; 875 dcl me char(16) /* command name, for error messages */; 876 dcl null builtin; 877 dcl rtrim builtin; 878 dcl send_message_ entry (char(*), char(*), char(*), fixed bin(35)); 879 dcl simulator_already_active bit (1) aligned int static init ("0"b); 880 dcl size builtin; 881 dcl string builtin; 882 dcl substr builtin; 883 dcl targ_fc fixed bin(24); 884 dcl ta_fc fixed bin(24); 885 dcl ta_ln fixed bin; 886 dcl tl fixed bin(24); 887 dcl type fixed bin(2) /* entry type returned by status_minf calls */; 888 dcl unique_chars_ entry (bit (*)) returns (char(15)); 889 dcl unspec builtin; 890 dcl warning_return label local /* to continue after warning messages */; 891 892 893 dcl type_name (0:2) char(8) int static init ( 894 "link", 895 "segment", 896 "msf"); 897 898 dcl 1 statbuff automatic aligned like status_branch.short; 899 900 dcl lp fixed bin(21), /* length of argument */ 901 pp ptr, /* pointer to argument */ 902 targ char(lp) based (pp); /* argument from command line */ 903 904 dcl (print_usage, /* switch on to print usage message */ 905 control, /* switch on if arg begins with "-" */ 906 expecting, /* switch on if specific argument expected next */ 907 stop_code_next, /* switch on when stop code expected next */ 908 dpo_next, /* switch on when dprint options expected next */ 909 dpno_next, /* switch on when dpunch options expected next */ 910 job_id_next, /* switch on when job id expected next */ 911 temp_dir_next, /* switch on when temp dir expected next */ 912 syot_dir_next, /* switch on when syot dir expected next */ 913 smc_next, /* switch on when ssmc dir expected next */ 914 id_jd, /* switch on when jd seg name wanted as job id */ 915 job_deck, /* switch on when job deck path read */ 916 hold_given, /* switch on if hold option read */ 917 processing_params, /* switch on if -parameter control argument has been encountered */ 918 dpo_given, /* switch on if dpo option read */ 919 dpno_given, /* switch on if dpno option given */ 920 temp_spawnflag, /* switch on if entry via gcos$spawn */ 921 temp_taskflag, /* switch on if entry via gcos$task */ 922 ascii_given) /* switch on if -ascii given */ 923 bit (1) init ("0"b); /* switches initially off */ 924 925 dcl (nargs, /* number of arguments */ 926 num_arg, /* place to put converted numeric argument */ 927 param_base, /* argument number of the -parameter control argument */ 928 jtemp, 929 itemp) /* temporary */ 930 fixed bin(17)init (0); 931 932 dcl hcs_$status_ entry (char(*), char(*), fixed bin(1), ptr, ptr, fixed bin(35)); 933 dcl hcs_$status_minf entry (char(*) aligned, char(*) aligned, fixed bin(1), 934 fixed bin(2), fixed bin(24), fixed bin(35)); 935 1 1 /* BEGIN INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 1 2 /* 1 3* Changes to gcos_ext_stat_ must be made here AND gcos_ext_stat_.cds 1 4**/ 1 5 /* July 77 (MRJ) Mike Jordan. */ 1 6 /* Change: Mel Wilson Oct 1979 for gtss compatibility (Bell Canada). */ 1 7 /* Change: A. N. Kepner, March, 1978 to allow courtesy call i/o within cc routines. */ 1 8 /* Change: Dave Ward 06/01/81 Reorganized to eliminate alm object (using cds). Use of like structures. */ 1 9 /* Change: Scott C. Akers 01/26/82 Add tape_buffer_size for GEINOS processing. */ 1 10 /* Change: Ron Barstad 83-08-02 Added activity_card_num for execution report */ 1 11 /* Increased size of statistics for 4js3 MMEs */ 1 12 1 13 dcl gcos_ext_stat_$abort_reason char(128) varying /* abort reason from gcos pgm */ ext; 1 14 dcl gcos_ext_stat_$abort_return label /* abort return point */ ext; 1 15 dcl gcos_ext_stat_$activity_card_num pic "9999" ext; /* card number defining current activity */ 1 16 dcl gcos_ext_stat_$activity_name char(8) /* name of activity to be run */ ext; 1 17 dcl gcos_ext_stat_$activity_start_time fixed bin(71) /* TOD start of activity */ ext; 1 18 dcl gcos_ext_stat_$card_num pic "9999" /* ordinal number of card in input stream */ ext; 1 19 dcl gcos_ext_stat_$dbs (36)bit(1) /* Debugging switch. */ ext; 1 20 dcl gcos_ext_stat_$default_nondollar char(2) /* filecode where nondollar cards go by default */ ext; 1 21 dcl gcos_ext_stat_$dir_rings (3) fixed bin(3) /* ring brackets for created catalogs */ ext; 1 22 dcl gcos_ext_stat_$dpno char(100) varying /* arguments for call to dpunch */ ext; 1 23 dcl gcos_ext_stat_$dpo char(100) varying /* arguments for call to dprint */ ext; 1 24 dcl gcos_ext_stat_$endfc char(2) /* endfc value for endcopy processing */ ext; 1 25 dcl gcos_ext_stat_$er ptr /* fib pointer for *er */ ext; 1 26 dcl gcos_ext_stat_$etc_filecode char(2) /* filecode where $ ETC cards should be written */ ext; 1 27 dcl gcos_ext_stat_$gcos_slave_area_seg ptr /* pointer to gcos slave area segment */ ext; 1 28 dcl gcos_ext_stat_$gf fixed bin(24)/* sw used by getfield rtn */ ext; 1 29 dcl gcos_ext_stat_$incode fixed bin(24) /* switches to control incode processing */ ext; 1 30 dcl gcos_ext_stat_$increment_hold fixed bin(24) /* Holds increment for courtesy call returns. */ ext; 1 31 dcl gcos_ext_stat_$initial_cpu_time fixed bin(71) /* vcu time at activity start */ ext; 1 32 dcl gcos_ext_stat_$input_segment_path char(168) varying /* pathname of input segment */ ext; 1 33 dcl gcos_ext_stat_$jcl_warnings fixed bin(24) /* number warnings issued processing control cards */ ext; 1 34 dcl gcos_ext_stat_$job_cpu_time fixed bin(71) /* cpu usage at job start */ ext; 1 35 dcl gcos_ext_stat_$job_id char(18) varying /* unique job id for file naming */ ext; 1 36 dcl gcos_ext_stat_$job_real_time fixed bin(71) /* job start time in microseconds */ ext; 1 37 dcl gcos_ext_stat_$last_mme fixed bin(24)/* number of last mme executed */ ext; 1 38 dcl gcos_ext_stat_$ldrss fixed bin(24) /* loader shared stg. */ ext; 1 39 dcl gcos_ext_stat_$max_activities fixed bin(24)/* max activities in a job */ ext; 1 40 dcl gcos_ext_stat_$max_mem fixed bin(19) /* maximum memory available to an activity */ ext; 1 41 dcl gcos_ext_stat_$mme_rtrn label /* where to return at activity end */ ext; 1 42 dcl gcos_ext_stat_$nondollar char(2) /* non-dollar card file code */ ext; 1 43 dcl gcos_ext_stat_$nongcos char(2) /* filecode where nongcos dollar cards go */ ext; 1 44 dcl gcos_ext_stat_$normal_return label /* nonlocal goto for normal termination */ ext; 1 45 dcl gcos_ext_stat_$patchfile_ptr ptr /* pointer to patchfile */ ext; 1 46 dcl gcos_ext_stat_$pathname_prefix char(168)var ext; 1 47 dcl gcos_ext_stat_$pch ptr /* pointer to fib for syspunch collector file */ ext; 1 48 dcl gcos_ext_stat_$pdir char(168) varying /* pathname of process directory */ ext; 1 49 dcl gcos_ext_stat_$prt ptr /* pointer to fib for sysprint collector file */ ext; 1 50 dcl gcos_ext_stat_$rs ptr /* pointer to fib for geload r* collector file */ ext; 1 51 dcl gcos_ext_stat_$saveseg_ptr ptr /* pointer to save segment used by save/restart */ ext; 1 52 dcl gcos_ext_stat_$save_dir char(168) varying /* pathname of temp save directory */ ext; 1 53 dcl gcos_ext_stat_$seg_rings (3) fixed bin(3) /* ring brackets for created files */ ext; 1 54 dcl gcos_ext_stat_$sig_ptr ptr /* saved pointer to signal_ */ ext; 1 55 dcl gcos_ext_stat_$skip_umc bit(1) ext; 1 56 dcl gcos_ext_stat_$snumb bit (30) aligned /* snumb of the current job */ ext; 1 57 dcl gcos_ext_stat_$sought_label char(8) /* Label from GOTO, IF, or WHEN card */ ext; 1 58 dcl gcos_ext_stat_$statistics (3*44) fixed bin(24) /* mme usage statistics- 3 per mme */ ext; 1 59 dcl gcos_ext_stat_$stop_code fixed bin(24) /* debugging, print results and stop. */ ext; 1 60 dcl gcos_ext_stat_$storage_limit fixed bin(19) /* activity storage limit */ ext; 1 61 dcl gcos_ext_stat_$sysout_limit fixed bin(35) /* sysout line limit */ ext; 1 62 dcl gcos_ext_stat_$sysout_lines fixed bin(35) /* sysout lines used */ ext; 1 63 dcl gcos_ext_stat_$system_free_pointer ptr /* pointer to area for allocating in ext; set by gcos */ ext; 1 64 dcl gcos_ext_stat_$tape_buffer_size fixed bin(35) external static; /* tape buffer size for GEINOS. */ 1 65 dcl gcos_ext_stat_$temp_dir char(168) varying /* pathname of directory to hold temp files */ ext; 1 66 dcl gcos_ext_stat_$temp_seg_ptr ptr ext; 1 67 dcl gcos_ext_stat_$termination_code bit (18) /* termination code from gcos_mme_bort_ */ ext; 1 68 dcl gcos_ext_stat_$time_limit fixed bin(71) /* activity time limit */ ext; 1 69 dcl gcos_ext_stat_$userid char(12) /* the USERID */ ext; 1 70 dcl gcos_ext_stat_$validation_level fixed bin(3) /* current ring of execution */ ext; 1 71 1 72 /* Courtesy Call Queue 1 73* A queue for courtesy call addresses which must be saved during 1 74* execution of courtesy call routines. A courtesy call address is 1 75* saved each time a MME GEROUT or MME GEINOS, which specifies a 1 76* courtesy call, is executed within a courtesy call routine. Each 1 77* time a MME GEENDC is executed a courtesy call address will be 1 78* removed from this FIFO queue and the corresponding courtesy call 1 79* routine executed until the queue is empty. The FIFO "queue" is 1 80* implemented in a circular fashion. "next_avail" points to the 1 81* next empty location in the queue. "next_out" points to the 1 82* entry in the queue which has been in the queue longest. When 1 83* entering or removing entries from the queue the appropriate index 1 84* is incremented modulo the length of the queue. By convention the 1 85* queue is empty when "next_avail" equals "next_out". A 1 86* second convention is that the queue is considered to overflow 1 87* during an attempt to add an entry to the queue which would force 1 88* "next_avail" to "catch up" with "next_out". This means that 1 89* the last empty position in the queue will never be used. 1 90**/ 1 91 1 92 dcl 1 gcos_ext_stat_$courtesy_call_control aligned ext 1 93 , 3 courtesy_call 1 94 , 4 hold like save_machine_conditions /* Mach. conds. restored on courtesy call returns. */ 1 95 , 4 next_avail fixed bin(24) /* next available empty location in cc_queue. */ 1 96 , 4 next_out fixed bin(24) /* next entry to remove from cc_queue. */ 1 97 , 4 queue (6) fixed bin(24) 1 98 ; 1 99 2 1 /* BEGIN INCLUDE FILE gcos_save_mc.incl.pl1 (Wardd Multics) 09/12/81 0905.9 mst Sat */ 2 2 2 3 /* Structure to isolate the definition of the size of the 2 4*space needed to store he machine conditions structure (mc). 2 5**/ 2 6 dcl 1 save_machine_conditions based 2 7 , 3 save_space bit(1728) 2 8 ; 2 9 2 10 /* END INCLUDE FILE gcos_save_mc.incl.pl1 */ 1 100 1 101 1 102 dcl 1 gcos_ext_stat_$fct aligned ext, 1 103 3 fct (40) like fct_entry; 3 1 /* BEGIN INCLUDE FILE gcos_fct_entry.incl.pl1 (Wardd Multics) 05/30/81 1758.6 mst Sat */ 3 2 3 3 dcl 1 fct_entry aligned based, 3 4 2 filecode char(2) aligned, /* file code (or blank) */ 3 5 /* flags */ 3 6 2 sysout bit(1) unaligned, /* 1=file is sysout or dac */ 3 7 2 dac bit(1) unaligned, /* 1=file is dac,0=file is sysout */ 3 8 2 pad bit(34) unaligned, /* unused */ 3 9 2 fibptr ptr aligned /* ptr to fib for this file */ 3 10 ; 3 11 3 12 /* END INCLUDE FILE gcos_fct_entry.incl.pl1 */ 1 104 1 105 1 106 dcl 1 gcos_ext_stat_$save_data aligned ext, 1 107 3 save_data like save_data_entry; 4 1 /* BEGIN INCLUDE FILE gcos_save_data_entry.incl.pl1 (Wardd Multics) 07/01/81 1339.9 mst Wed */ 4 2 /* Change: Dave Ward 07/01/81 include gcos_flags_. */ 4 3 /* Change: Dave Ward 09/10/81 fib changed to fibs & likened to fib. */ 4 4 4 5 dcl 1 save_data_entry aligned based 4 6 ,3 flgs like flags /* system wide flgs */ 4 7 ,3 actid char(8) /* activity no. and accnt i.d. */ 4 8 ,3 short_actid bit(36) aligned /* short form of activity id */ 4 9 ,3 ident char(60) /* holds ident info from snumb card */ 4 10 ,3 psw bit(36) aligned /* program switch word */ 4 11 ,3 last_execute_act_no fixed bin(24)/* activity number of last $ EXECUTE card in job */ 4 12 ,3 activity_no fixed bin(24)/* activity number */ 4 13 ,3 job_time_limit fixed bin(71) /* job time limit */ 4 14 ,3 job_sysout_limit fixed bin(24)/* job sysout line limit */ 4 15 ,3 sysout_queue (10) char(32) /* sysout queue */ 4 16 ,3 sysout_queue_media (10) fixed bin(24)/* medium (print,punch) of each file on queue */ 4 17 ,3 sqindex fixed bin(24)/* curr offset in sysout queue */ 4 18 ,3 pathname_prefix char(168)varying /* prefix for gcos cfdescs */ 4 19 ,3 skip_umc aligned bit(1) /* flag to tell if we should skip umc names */ 4 20 ,3 job_deck pointer /* pointer to seg holding canonicalized job deck */ 4 21 ,3 jd_size fixed bin(24)/* size in words of job deck */ 4 22 ,3 jd_position fixed bin(24) /* position of current block of job deck */ 4 23 ,3 jd_rem_block_len fixed bin(24)/* words remaining in current block of job deck */ 4 24 ,3 syot_dir char(168)varying /* pathname of directory to hold sysout files */ 4 25 ,3 fibs (40) like fib 4 26 ,3 param (32) char(57)varying /* parameters */ 4 27 ; 4 28 5 1 /* BEGIN INCLUDE FILE gcos_flags.incl.pl1 (Wardd Multics) 07/01/81 1344.7 mst Wed */ 5 2 /* Change: Mel Wilson 03/01/79 to add gtssflag & identflag */ 5 3 /* Change: Dave Ward 07/01/81 revised, mad apart of gcos_ext_stat_. */ 5 4 5 5 5 6 /* Declaration of Simulator Wide Flags */ 5 7 5 8 dcl 1 flags aligned based, 5 9 2 ( 5 10 pad1, /* no longer used */ 5 11 copy, /* 1=copy option on|0=off */ 5 12 snumb, /* 1=snumb card read|0=not */ 5 13 ident, /* 1=ident card read|0=not */ 5 14 activ, /* 1=activity being defined|0=not */ 5 15 cc, /* 1=courtesy call active|0=not */ 5 16 pad2, /* no longer used */ 5 17 cksum, /* 1=don't check checksums|0=do */ 5 18 pad3, /* no longer used */ 5 19 wrapup, /* 1=processing wrapup after abort */ 5 20 5 21 /* FOLLOWING ADDED AFTER MARCH 73 */ 5 22 5 23 nosave, /* 1=disable save/restart function,0=not */ 5 24 pad4, /* no longer used */ 5 25 gcos, /* 1=job deck segment in gcos file format */ 5 26 raw, /* 1=sysout punch files to be converted to raw bit strings */ 5 27 list, /* 1=sysout print files to be converted to ascii */ 5 28 brief, /* 1=print nothing but fatal error messages on terminal */ 5 29 debug, /* 1=give option to call debug before aborting */ 5 30 no_canonicalize, /* 1=do NOT canonicalize job deck */ 5 31 5 32 /* 18 bits into first word */ 5 33 5 34 pad5, /* no longer used */ 5 35 dpunch, /* 1=dpunch sysout punch files;0=don't */ 5 36 dprint, /* 1=dprint sysout print files,0=don't */ 5 37 userid, /* 1=userid card read,0=not */ 5 38 userlib, /* 1= -userlib ctl arg given, see gcos_gein_ */ 5 39 dstar, /* 1=current activity card written on d* */ 5 40 write_etc, /* 1 tells get_cc_field to write $ ETC cards on etc_filecode */ 5 41 prev_act_abort, /* turned on by abort and off by $ BREAK */ 5 42 this_act_abort, /* turned on by abort to select abort disp codes */ 5 43 abort_subact, /* 1=processing abort subactivity */ 5 44 dump, /* 1=dump option given on activity card */ 5 45 nondollar, /* 1=reading nondollar card deck in gein */ 5 46 endjob, /* 1=cc_endjob already called once in this job */ 5 47 abort_card, /* 1=the terminator for this activity was a $ ABORT card */ 5 48 truncate, /* 1=truncate option given:truncate long ascii input lines */ 5 49 continue, /* 1=continue option given:continue after nonfatal errors */ 5 50 rout, /* 1=gcos_mme_rout_ was called in this activity */ 5 51 seeking, /* 1=gein is looking for a label and/or terminator */ 5 52 5 53 /* end of first word */ 5 54 5 55 seeking_terminator, /* 1=gein is looking for a terminator */ 5 56 lower_case, /* 1=lower case print conversion wanted */ 5 57 no_bar, /* 1=do not run slave program in BAR mode */ 5 58 long, /* 1=print some lines from execution reort on terminal */ 5 59 endfc, /* 1=process endfc option on endcopy card */ 5 60 gtssflag, /* 1=update gtss_user_state_ during execution */ 5 61 identflag, /* 1= use $ident banner info for print & punch */ 5 62 spawnflag, /* 1= entry due to tss spawn */ 5 63 taskflag /* 1= entry due to tss drl task */ 5 64 ) bit(1) unal, 5 65 2 pad6 bit(27)unal 5 66 ; 5 67 5 68 /* END INCLUDE FILE gcos_flags.incl.pl1 */ 4 29 4 30 4 31 /* END INCLUDE FILE gcos_save_data_entry.incl.pl1 */ 1 108 1 109 6 1 /* BEGIN INCLUDE FILE gcos_file_info_block_.incl.pl1 DAK - APRIL 74 */ 6 2 6 3 /* Declaration of File Information Block (fib) 6 4* 6 5* Change: Mel Wilson 11/01/79 for gtss compatibility 6 6* Change: Dave Ward 05/20/81 *_file constants. 6 7* Change: Dave Ward 05/29/81 separated fct structures. 6 8* Change: Dave Ward 09/02/81 provision for tape density 6250, dens_hist 2 bits (not 3). 6 9**/ 6 10 dcl 1 fib aligned based (fibptr) /* fib structure */ 6 11 6 12 , 2 buffer ptr aligned /* pointer to current buffer (gcos_write_) */ 6 13 , 2 buffer_indx fixed bin /* Index to buffer in use. */ 6 14 , 2 stream char(8)unal /* stream name for attaching this file */ 6 15 , 2 pathnm char(168)unal /* pathname (for disk, print or punch files) */ 6 16 , 2 unique_file_id bit(36) /* multics unique segment id for file */ 6 17 , 2 indicators /* five words of flags */ 6 18 6 19 , 3 indicators_word_1 6 20 , 4 used bit(1) unal /* 1=fib used, 0=fib used */ 6 21 , 4 attached bit(1) unal /* 1=stream is attached */ 6 22 , 4 type bit(1) unal /* 1=random, 0=linked */ 6 23 , 4 perm bit(1) unal /* 1=permanent file, 0=not */ 6 24 , 4 print bit(1) unal /* 1=file type is printer */ 6 25 , 4 punch bit(1) unal /* 1=file type is punch */ 6 26 , 4 reader bit(1) unal /* 1=file type is card reader */ 6 27 , 4 tape bit(1) unal /* 1=file type is tape */ 6 28 , 4 console bit(1) unal /* 1=file type is console typewriter */ 6 29 , 4 read bit(1) unal /* 1=read access permitted */ 6 30 , 4 write bit(1) unal /* 1=write access permitted */ 6 31 , 4 null bit(1) unal /* 1=file is null */ 6 32 , 4 purge bit(1) unal /* 1=purge file at time on release */ 6 33 , 4 gein bit(1) unal /* 1 = this file contains data cards from the job deck */ 6 34 , 4 disp bit(2) unal /* disposition code: 6 35* 00 = dismount 6 36* 01 = release 6 37* 10 = save 6 38* 11 = continue */ 6 39 , 4 adisp bit(2) unal /* abort disp - same codes as disp */ 6 40 , 4 order bit(1) unal /* 1 = write, 0 = read or other */ 6 41 , 4 mode bit(2) unal /* tape i/o mode 6 42* 00 = binary 6 43* 01 = decimal 6 44* 10 = nine */ 6 45 , 4 tracks bit(2) unal /* tape request code: 6 46* 00 = installation default 6 47* 01 = 7 track 6 48* 10 = 9 track */ 6 49 , 4 density bit(4) unal /* tape density from $ TAPE card 6 50* 0000 = site standard high 6 51* 0001 = 200 bpi 6 52* 0010 = 556 bpi 6 53* 0100 = 800 bpi 6 54* 1001 = 1600 bpi 6 55* 1100 = 6250 bpi 6 56* 1111 = handler capable of any appropriate denisty */ 6 57 , 4 dens_hist bit(2) unal /* density history for MME GEFADD */ 6 58 , 4 forced_acl_flag bit(1) unal /* 1 => acl forced for gtss file (2.4) */ 6 59 , 4 fill bit(6) unal /* reserved for future use */ 6 60 , 3 indicators_word_2 6 61 , 4 plud bit(18) unal /* primary log unit designator */ 6 62 /* bcd channel and channel number */ 6 63 6 64 , 4 slud bit(18) unal /* secondary log. unit designator */ 6 65 /* bcd channel and channel number */ 6 66 , 3 indicators_word_3 6 67 , 4 serial_no bit(30) unal /* tape serial number */ 6 68 , 4 pad bit( 6) unal /* unused */ 6 69 , 3 indicators_word_4 6 70 , 4 tape_name bit(72) unal /* tape name */ 6 71 6 72 , 2 current fixed bin(21) /* current file position */ 6 73 , 2 last fixed bin(21) /* eof for sequential disk files */ 6 74 , 2 size fixed bin(24) /* offset of end of file in words */ 6 75 , 2 init_size fixed bin(24) /* file size at start of activity */ 6 76 , 2 init_posit fixed bin(24) /* file position at start of activity */ 6 77 , 2 iocount fixed bin(35) /* total no. of i/o operations */ 6 78 , 2 rec_len fixed bin(24) /* length of current record (gcos_write_) */ 6 79 , 2 command_count fixed bin(17) unal /* size of command table for device (gcos_mme_inos_) */ 6 80 , 2 command_index fixed bin(17) unal /* pointer to command table entry (gcos_mme_inos_) */ 6 81 , 2 error_retry fixed bin(17) unal /* error retry counter */ 6 82 , 2 seq_no fixed bin(17) unal /* tape reel sequence no */ 6 83 ; 6 84 dcl fibptr ptr /* pointer to current fib in gcos_ext_stat_ */; 6 85 6 86 /* File usage classification constants: */ 6 87 dcl linked_file bit(1)static int options(constant)init("0"b); 6 88 dcl random_file bit(1)static int options(constant)init("1"b); 6 89 dcl read_file bit(1)static int options(constant)init("0"b); 6 90 dcl write_file bit(1)static int options(constant)init("1"b); 6 91 6 92 /* END INCLUDE FILE gcos_file_info_block_.incl.pl1 */ 1 110 1 111 1 112 dcl 1 gcos_ext_stat_$mc like mc /* machine condition from abort or fault */ ext; 7 1 /* */ 7 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 7 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 7 4 /* Modified 07/07/76 by Morris for fault register data */ 7 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 7 6 /* Modified '82 to make values constant */ 7 7 7 8 /* words 0-15 pointer registers */ 7 9 7 10 dcl mcp ptr; 7 11 7 12 dcl 1 mc based (mcp) aligned, 7 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 7 14 (2 regs, /* registers */ 7 15 3 x (0:7) bit (18), /* index registers */ 7 16 3 a bit (36), /* accumulator */ 7 17 3 q bit (36), /* q-register */ 7 18 3 e bit (8), /* exponent */ 7 19 3 pad1 bit (28), 7 20 3 t bit (27), /* timer register */ 7 21 3 pad2 bit (6), 7 22 3 ralr bit (3), /* ring alarm register */ 7 23 7 24 2 scu (0:7) bit (36), 7 25 7 26 2 mask bit (72), /* mem controller mask at time of fault */ 7 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 7 28 2 errcode fixed bin (35), /* fault handler's error code */ 7 29 2 fim_temp, 7 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 7 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 7 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 7 33 2 fault_reg bit (36), /* fault register */ 7 34 2 pad2 bit (1), 7 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 7 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 7 37 2 fault_time bit (54), /* time of fault */ 7 38 7 39 2 eis_info (0:7) bit (36)) unaligned; 7 40 7 41 7 42 dcl (apx fixed bin init (0), 7 43 abx fixed bin init (1), 7 44 bpx fixed bin init (2), 7 45 bbx fixed bin init (3), 7 46 lpx fixed bin init (4), 7 47 lbx fixed bin init (5), 7 48 spx fixed bin init (6), 7 49 sbx fixed bin init (7)) internal static options (constant); 7 50 7 51 7 52 7 53 7 54 dcl scup ptr; 7 55 7 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 7 57 7 58 7 59 /* WORD (0) */ 7 60 7 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 7 62 3 prr bit (3), /* procedure ring register */ 7 63 3 psr bit (15), /* procedure segment register */ 7 64 3 p bit (1), /* procedure privileged bit */ 7 65 7 66 2 apu, /* APPENDING UNIT STATUS */ 7 67 3 xsf bit (1), /* ext seg flag - IT modification */ 7 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 7 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 7 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 7 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 7 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 7 73 3 dsptw bit (1), /* Fetch of DSPTW */ 7 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 7 75 3 sdwp bit (1), /* Fetch of SDW paged */ 7 76 3 ptw bit (1), /* Fetch of PTW */ 7 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 7 78 3 fap bit (1), /* Fetch of final address paged */ 7 79 3 fanp bit (1), /* Fetch of final address non-paged */ 7 80 3 fabs bit (1), /* Fetch of final address absolute */ 7 81 7 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 7 83 7 84 7 85 /* WORD (1) */ 7 86 7 87 2 fd, /* FAULT DATA */ 7 88 3 iro bit (1), /* illegal ring order */ 7 89 3 oeb bit (1), /* out of execute bracket */ 7 90 3 e_off bit (1), /* no execute */ 7 91 3 orb bit (1), /* out of read bracket */ 7 92 3 r_off bit (1), /* no read */ 7 93 3 owb bit (1), /* out of write bracket */ 7 94 3 w_off bit (1), /* no write */ 7 95 3 no_ga bit (1), /* not a gate */ 7 96 3 ocb bit (1), /* out of call bracket */ 7 97 3 ocall bit (1), /* outward call */ 7 98 3 boc bit (1), /* bad outward call */ 7 99 3 inret bit (1), /* inward return */ 7 100 3 crt bit (1), /* cross ring transfer */ 7 101 3 ralr bit (1), /* ring alarm register */ 7 102 3 am_er bit (1), /* associative memory fault */ 7 103 3 oosb bit (1), /* out of segment bounds */ 7 104 3 paru bit (1), /* processor parity upper */ 7 105 3 parl bit (1), /* processor parity lower */ 7 106 3 onc_1 bit (1), /* op not complete type 1 */ 7 107 3 onc_2 bit (1), /* op not complete type 2 */ 7 108 7 109 2 port_stat, /* PORT STATUS */ 7 110 3 ial bit (4), /* illegal action lines */ 7 111 3 iac bit (3), /* illegal action channel */ 7 112 3 con_chan bit (3), /* connect channel */ 7 113 7 114 2 fi_num bit (5), /* (fault/interrupt) number */ 7 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 7 116 7 117 7 118 /* WORD (2) */ 7 119 7 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 7 121 3 trr bit (3), /* temporary ring register */ 7 122 3 tsr bit (15), /* temporary segment register */ 7 123 7 124 2 pad2 bit (9), 7 125 7 126 2 cpu_no bit (3), /* CPU number */ 7 127 7 128 2 delta bit (6), /* tally modification DELTA */ 7 129 7 130 7 131 /* WORD (3) */ 7 132 7 133 2 word3 bit (18), 7 134 7 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 7 136 3 tsna, /* Word 1 status */ 7 137 4 prn bit (3), /* Word 1 PR number */ 7 138 4 prv bit (1), /* Word 1 PR valid bit */ 7 139 3 tsnb, /* Word 2 status */ 7 140 4 prn bit (3), /* Word 2 PR number */ 7 141 4 prv bit (1), /* Word 2 PR valid bit */ 7 142 3 tsnc, /* Word 3 status */ 7 143 4 prn bit (3), /* Word 3 PR number */ 7 144 4 prv bit (1), /* Word 3 PR valid bit */ 7 145 7 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 7 147 7 148 7 149 /* WORD (4) */ 7 150 7 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 7 152 7 153 2 ir, /* INDICATOR REGISTERS */ 7 154 3 zero bit (1), /* zero indicator */ 7 155 3 neg bit (1), /* negative indicator */ 7 156 3 carry bit (1), /* carryry indicator */ 7 157 3 ovfl bit (1), /* overflow indicator */ 7 158 3 eovf bit (1), /* eponent overflow */ 7 159 3 eufl bit (1), /* exponent underflow */ 7 160 3 oflm bit (1), /* overflow mask */ 7 161 3 tro bit (1), /* tally runout */ 7 162 3 par bit (1), /* parity error */ 7 163 3 parm bit (1), /* parity mask */ 7 164 3 bm bit (1), /* ^bar mode */ 7 165 3 tru bit (1), /* truncation mode */ 7 166 3 mif bit (1), /* multi-word instruction mode */ 7 167 3 abs bit (1), /* absolute mode */ 7 168 3 hex bit (1), /* hexadecimal exponent mode */ 7 169 3 pad bit (3), 7 170 7 171 7 172 /* WORD (5) */ 7 173 7 174 2 ca bit (18), /* COMPUTED ADDRESS */ 7 175 7 176 2 cu, /* CONTROL UNIT STATUS */ 7 177 3 rf bit (1), /* on first cycle of repeat instr */ 7 178 3 rpt bit (1), /* repeat instruction */ 7 179 3 rd bit (1), /* repeat double instruction */ 7 180 3 rl bit (1), /* repeat link instruciton */ 7 181 3 pot bit (1), /* IT modification */ 7 182 3 pon bit (1), /* return type instruction */ 7 183 3 xde bit (1), /* XDE from Even location */ 7 184 3 xdo bit (1), /* XDE from Odd location */ 7 185 3 poa bit (1), /* operation preparation */ 7 186 3 rfi bit (1), /* tells CPU to refetch instruction */ 7 187 3 its bit (1), /* ITS modification */ 7 188 3 if bit (1), /* fault occured during instruction fetch */ 7 189 7 190 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 7 191 7 192 7 193 /* WORDS (6,7) */ 7 194 7 195 2 even_inst bit (36), /* even instruction of faulting pair */ 7 196 7 197 2 odd_inst bit (36); /* odd instruction of faulting pair */ 7 198 7 199 7 200 7 201 7 202 7 203 7 204 /* ALTERNATE SCU DECLARATION */ 7 205 7 206 7 207 dcl 1 scux based (scup) aligned, 7 208 7 209 (2 pad0 bit (36), 7 210 7 211 2 fd, /* GROUP II FAULT DATA */ 7 212 3 isn bit (1), /* illegal segment number */ 7 213 3 ioc bit (1), /* illegal op code */ 7 214 3 ia_am bit (1), /* illegal address - modifier */ 7 215 3 isp bit (1), /* illegal slave procedure */ 7 216 3 ipr bit (1), /* illegal procedure */ 7 217 3 nea bit (1), /* non existent address */ 7 218 3 oobb bit (1), /* out of bounds */ 7 219 3 pad bit (29), 7 220 7 221 2 pad2 bit (36), 7 222 7 223 2 pad3a bit (18), 7 224 7 225 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 7 226 3 prn bit (3), /* PR number */ 7 227 3 prv bit (1), /* PR valid bit */ 7 228 7 229 2 pad3b bit (6)) unaligned, 7 230 7 231 2 pad45 (0:1) bit (36), 7 232 7 233 2 instr (0:1) bit (36); /* Instruction ARRAY */ 7 234 7 235 7 236 7 237 /* END INCLUDE FILE mc.incl.pl1 */ 1 113 1 114 1 115 dcl 1 gcos_ext_stat_$gcos_gtss ext 1 116 , 3 gcos_gtss_ext 1 117 , 4 u_state_ptr ptr 1 118 , 4 snumb_index fixed bin(24) 1 119 , 4 home_path char(168) 1 120 ; 1 121 1 122 /* END INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 936 937 8 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 8 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 8 3 /* version number changed to 4, 08/10/78 WOS */ 8 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 8 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 8 6 8 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 8 8 2 version fixed bin, /* version of this structure - must be set, see below */ 8 9 2 switches aligned, /* various bit switch values */ 8 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 8 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 8 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 8 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 8 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 8 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 8 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 8 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 8 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 8 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 8 20 8 21 /* Limit of data defined for version 2 */ 8 22 8 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 8 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 8 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 8 26 /* minimum of 30 seconds required for repeat */ 8 27 /* otherwise, no repeat will occur */ 8 28 /* Limit of data defined for version 4 */ 8 29 8 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 8 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 8 32 8 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 8 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 8 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 8 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 8 37 8 38 /* END INCLUDE FILE query_info.incl.pl1 */ 938 939 9 1 /* BEGIN INCLUDE FILE gcos_dbs_names.incl.pl1 (Wardd Multics) 06/08/81 1626.9 mst Mon */ 9 2 9 3 dcl dbs_names (11)char(14)var static int options(constant)init( 9 4 /* 1 */ "attach_file" 9 5 , /* 2 */ "dollar" 9 6 , /* 3 */ "filecode" 9 7 , /* 4 */ "mme_call" 9 8 , /* 5 */ "mme_inos_trace" 9 9 , /* 6 */ "trace_mme" 9 10 , /* 7 */ "nondollar" 9 11 , /* 8 */ "open_file" 9 12 , /* 9 */ "msf_test" 9 13 , /* 10 */ "stop_mme" 9 14 , /* 11 */ "mme_inos_stop" 9 15 ); 9 16 9 17 dcl ( 9 18 dbs_attach_file defined(gcos_ext_stat_$dbs(1)) 9 19 ,dbs_dollar defined(gcos_ext_stat_$dbs(2)) 9 20 ,dbs_filecode defined(gcos_ext_stat_$dbs(3)) 9 21 ,dbs_mme_call defined(gcos_ext_stat_$dbs(4)) 9 22 ,dbs_mme_inos_trace defined(gcos_ext_stat_$dbs(5)) 9 23 ,dbs_trace_mme defined(gcos_ext_stat_$dbs(6)) 9 24 ,dbs_nondollar defined(gcos_ext_stat_$dbs(7)) 9 25 ,dbs_open_file defined(gcos_ext_stat_$dbs(8)) 9 26 ,dbs_msf_test defined(gcos_ext_stat_$dbs(9)) 9 27 ,dbs_stop_mme defined(gcos_ext_stat_$dbs(10)) 9 28 ,dbs_mme_inos_stop defined(gcos_ext_stat_$dbs(11)) 9 29 ) bit(1); 9 30 9 31 /* END INCLUDE FILE gcos_dbs_names.incl.pl1 */ 940 941 10 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 10 2 10 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 10 4 10 5 /* This include file contains branch and link structures returned by 10 6* hcs_$status_ and hcs_$status_long. */ 10 7 10 8 dcl 1 status_branch aligned based (status_ptr), 10 9 2 short aligned, 10 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 10 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 10 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 10 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 10 14 3 dtu bit (36) unaligned, /* date/time last used */ 10 15 3 mode bit (5) unaligned, /* caller's effective access */ 10 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 10 17 3 pad1 bit (8) unaligned, 10 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 10 19 10 20 /* Limit of information returned by hcs_$status_ */ 10 21 10 22 2 long aligned, 10 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 10 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 10 25 3 lvid bit (36) unaligned, /* logical volume ID */ 10 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 10 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 10 28 3 pad2 bit (8) unaligned, 10 29 3 copy_switch bit (1) unaligned, /* copy switch */ 10 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 10 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 10 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 10 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 10 34 3 pad3 bit (5) unaligned, 10 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 10 36 3 uid bit (36) unaligned; /* unique ID */ 10 37 10 38 dcl 1 status_link aligned based (status_ptr), 10 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 10 40 2 nnames fixed bin (16) unaligned unsigned, 10 41 2 names_relp bit (18) unaligned, 10 42 2 dtem bit (36) unaligned, 10 43 2 dtd bit (36) unaligned, 10 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 10 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 10 46 10 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 10 48 based (pointer (status_area_ptr, status_branch.names_relp)), 10 49 /* array of names returned */ 10 50 status_pathname character (status_link.pathname_length) aligned 10 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 10 52 /* link target path */ 10 53 status_area_ptr pointer, 10 54 status_ptr pointer; 10 55 10 56 dcl (Link initial (0), 10 57 Segment initial (1), 10 58 Directory initial (2)) fixed bin internal static options (constant); 10 59 /* values for type fields declared above */ 10 60 10 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 942 943 end gcos; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1035.9 gcos.pl1 >spec>on>7105>gcos.pl1 936 1 09/09/83 1714.4 gcos_ext_stat_.incl.pl1 >ldd>include>gcos_ext_stat_.incl.pl1 1-100 2 03/27/82 0424.8 gcos_save_mc.incl.pl1 >ldd>include>gcos_save_mc.incl.pl1 1-104 3 03/27/82 0424.8 gcos_fct_entry.incl.pl1 >ldd>include>gcos_fct_entry.incl.pl1 1-108 4 03/27/82 0424.8 gcos_save_data_entry.incl.pl1 >ldd>include>gcos_save_data_entry.incl.pl1 4-29 5 09/09/83 1714.4 gcos_flags.incl.pl1 >ldd>include>gcos_flags.incl.pl1 1-110 6 03/27/82 0424.8 gcos_file_info_block_.incl.pl1 >ldd>include>gcos_file_info_block_.incl.pl1 1-113 7 12/15/83 1100.4 mc.incl.pl1 >ldd>include>mc.incl.pl1 938 8 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 940 9 03/27/82 0424.8 gcos_dbs_names.incl.pl1 >ldd>include>gcos_dbs_names.incl.pl1 942 10 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. activity_no 26 000170 external static fixed bin(24,0) level 3 dcl 1-106 set ref 325* answer_iocbp 6 000314 automatic pointer initial level 2 dcl 8-7 set ref 8-7* ascii_given 000306 automatic bit(1) initial unaligned dcl 904 set ref 683* 779 904* bit_count 000100 automatic fixed bin(24,0) dcl 836 set ref 514* 518 755* 761 brief 0(15) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 665* buffsize 000402 automatic fixed bin(35,0) dcl 805 set ref 810* 813 813 825 buffsize_next 000101 automatic bit(1) unaligned dcl 837 set ref 323* 579 584* 727* charbuffsize parameter char unaligned dcl 804 ref 800 810 810 818 818 chase 000102 automatic fixed bin(1,0) initial dcl 838 set ref 514* 755* 838* cleanup 000104 stack reference condition dcl 839 ref 70 code 000112 automatic fixed bin(35,0) dcl 840 set ref 66* 228* 229 433* 434 435* 453* 455 456* 472* 510* 512 514* 515 569 745* 746 747* 755* 756 757* 808* 810* 813 817* 818* 829 com_err_ 000020 constant entry external dcl 841 ref 78 96 103 121 163 277 435 443 456 484 502 519 618 710 731 747 757 762 786 818 continue 0(33) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 675* control 000265 automatic bit(1) initial unaligned dcl 904 set ref 473* 476* 479* 499 548 559 602 655 904* cp_escape_control 1(02) 000314 automatic bit(2) initial level 3 packed unaligned dcl 8-7 set ref 8-7* cu_$arg_count 000022 constant entry external dcl 842 ref 433 cu_$arg_ptr 000024 constant entry external dcl 843 ref 66 228 453 cv_dec_check_ 000026 constant entry external dcl 844 ref 472 810 db 000030 constant entry external dcl 845 ref 195 dbs_names 000000 constant varying char(14) initial array dcl 9-3 set ref 235 236* 255 256 dbsv 000010 internal static bit(1) initial array unaligned dcl 846 set ref 236* 257* 324 debug 0(16) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 669* dpno_given 000303 automatic bit(1) initial unaligned dcl 904 set ref 136 597* 904* dpno_next 000271 automatic bit(1) initial unaligned dcl 904 set ref 594 596* 703* 904* dpo_given 000302 automatic bit(1) initial unaligned dcl 904 set ref 133 591* 904* dpo_next 000270 automatic bit(1) initial unaligned dcl 904 set ref 588 590* 701* 904* dprint 0(20) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 133* 140 149* 697* dpunch 0(19) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 136* 141 146* 699* ename 000113 automatic char(32) unaligned dcl 847 set ref 510* 514 519* 528 530 745* 751 755 757* 762* 772 774 err_msg 000123 automatic varying char(100) dcl 853 set ref 162* 163 172* 501* 502* 549* 560* 570* 616* 618* 641* 649* 708* error_table_$bad_conversion 000034 external static fixed bin(35,0) dcl 849 ref 817 error_table_$badopt 000032 external static fixed bin(35,0) dcl 848 set ref 731* error_table_$noarg 000036 external static fixed bin(35,0) dcl 851 set ref 96* 103* 443* 502* error_table_$too_many_args 000040 external static fixed bin(35,0) dcl 852 set ref 484* expand_pathname_ 000042 constant entry external dcl 854 ref 510 745 expecting 000266 automatic bit(1) initial unaligned dcl 904 set ref 101 321* 496 542* 575* 585* 590* 596* 645* 687* 689* 691* 693* 701* 703* 716* 727* 904* explanation_len 14 000314 automatic fixed bin(21,0) initial level 2 dcl 8-7 set ref 8-7* explanation_ptr 12 000314 automatic pointer initial level 2 dcl 8-7 set ref 8-7* fct_entry based structure level 1 dcl 3-3 fib based structure level 1 dcl 6-10 flags based structure level 1 dcl 5-8 flgs 000170 external static structure level 3 dcl 1-106 set ref 184 184 334* fullname 000155 automatic char(168) unaligned dcl 855 set ref 510* 514 519* 525 530* 530 534 537 539 745* 755 757* 762* 768 770 gcos 0(12) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 159 169 656* 684* 779* gcos_ext_stat_$abort_return 000076 external static label variable dcl 1-14 set ref 201* gcos_ext_stat_$dbs 000100 external static bit(1) array unaligned dcl 1-19 set ref 324* gcos_ext_stat_$dir_rings 000102 external static fixed bin(3,0) array dcl 1-21 set ref 205* 206* 206* 210* gcos_ext_stat_$dpno 000104 external static varying char(100) dcl 1-22 set ref 138* 154* 154 190* 595* gcos_ext_stat_$dpo 000106 external static varying char(100) dcl 1-23 set ref 135* 189* 589* gcos_ext_stat_$er 000110 external static pointer dcl 1-25 set ref 337* gcos_ext_stat_$gcos_slave_area_seg 000112 external static pointer dcl 1-27 set ref 337* gcos_ext_stat_$gf 000114 external static fixed bin(24,0) dcl 1-28 set ref 326* gcos_ext_stat_$incode 000116 external static fixed bin(24,0) dcl 1-29 set ref 326* gcos_ext_stat_$input_segment_path 000120 external static varying char(168) dcl 1-32 set ref 187* 770* 774* 774 gcos_ext_stat_$job_id 000122 external static varying char(18) dcl 1-35 set ref 111 127* 185* 335* 622* 627* gcos_ext_stat_$last_mme 000124 external static fixed bin(24,0) dcl 1-37 set ref 328* gcos_ext_stat_$ldrss 000126 external static fixed bin(24,0) dcl 1-38 set ref 329* gcos_ext_stat_$max_activities 000130 external static fixed bin(24,0) dcl 1-39 set ref 330* gcos_ext_stat_$patchfile_ptr 000132 external static pointer dcl 1-45 set ref 337* gcos_ext_stat_$pch 000134 external static pointer dcl 1-47 set ref 337* gcos_ext_stat_$pdir 000136 external static varying char(168) dcl 1-48 set ref 191* 358* gcos_ext_stat_$prt 000140 external static pointer dcl 1-49 set ref 337* gcos_ext_stat_$rs 000142 external static pointer dcl 1-50 set ref 337* gcos_ext_stat_$save_data 000170 external static structure level 1 dcl 1-106 gcos_ext_stat_$save_dir 000146 external static varying char(168) dcl 1-52 set ref 192* 361* 534* gcos_ext_stat_$saveseg_ptr 000144 external static pointer dcl 1-51 set ref 337* gcos_ext_stat_$seg_rings 000150 external static fixed bin(3,0) array dcl 1-53 set ref 206* 210* gcos_ext_stat_$sig_ptr 000152 external static pointer dcl 1-54 set ref 337* gcos_ext_stat_$stop_code 000154 external static fixed bin(24,0) dcl 1-59 set ref 176 574* gcos_ext_stat_$system_free_pointer 000156 external static pointer dcl 1-63 set ref 347* gcos_ext_stat_$tape_buffer_size 000160 external static fixed bin(35,0) dcl 1-64 set ref 332* 825* gcos_ext_stat_$temp_dir 000162 external static varying char(168) dcl 1-65 set ref 186* 358* 534* gcos_ext_stat_$temp_seg_ptr 000164 external static pointer dcl 1-66 set ref 337* gcos_ext_stat_$validation_level 000166 external static fixed bin(3,0) dcl 1-70 set ref 203* 204 205 210 gcos_gein_ 000044 constant entry external dcl 856 ref 212 gcos_mme_inos_$inos_trace_filecode 000046 constant entry external dcl 857 ref 268 gcos_print_call_ 000054 constant entry external dcl 860 ref 293 375 gcos_process_mme_$mme_stop 000050 constant entry external dcl 858 ref 272 gcos_process_mme_$mme_trace 000052 constant entry external dcl 859 ref 270 get_default_wdir_ 000056 constant entry external dcl 861 ref 364 get_pdir_ 000060 constant entry external dcl 862 ref 358 get_ring_ 000062 constant entry external dcl 863 ref 203 get_system_free_area_ 000064 constant entry external dcl 864 ref 347 get_wdir_ 000066 constant entry external dcl 865 ref 361 gtssflag 1(05) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 204 352* 723* hbound builtin function dcl 866 ref 235 255 483 484 484 hcs_$status_minf 000074 constant entry external dcl 933 ref 514 755 hold_given 000300 automatic bit(1) initial unaligned dcl 904 set ref 145 661* 904* i 000227 automatic fixed bin(17,0) dcl 867 set ref 66* 113* 114 114* 117 120* 127 227* 228* 230 277* 452* 453* 483 490 720* id_jd 000276 automatic bit(1) initial unaligned dcl 904 set ref 111 632* 904* identflag 1(06) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 725* index builtin function dcl 868 ref 113 249 525 528 768 772 ioa_ 000070 constant entry external dcl 869 ref 183 184 185 186 187 188 189 190 191 192 193 194 236 itemp 000313 automatic fixed bin(17,0) initial dcl 925 set ref 525* 526 526* 530 532* 532 534 537 539 768* 769 769* 770 772* 773 773* 774 925* j 000230 automatic fixed bin(24,0) dcl 870 set ref 235* 236* 236 236* 255* 256 257* jd_ename 000231 automatic char(32) unaligned dcl 871 set ref 113 114 121 127 188* 751* job_deck 000277 automatic bit(1) initial unaligned dcl 904 set ref 94 741 743* 904* job_id_next 000272 automatic bit(1) initial unaligned dcl 904 set ref 601 645* 687* 904* jtemp 000312 automatic fixed bin(17,0) initial dcl 925 set ref 528* 529 529* 530 532 925* length builtin function dcl 872 ref 114 245 250 260 266 779 779 779 list 0(14) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 140* 149 149* 663* literal_string 000241 automatic bit(1) unaligned dcl 873 set ref 322* 465 467* 474 489 491* 790* literal_sw 1(05) 000314 automatic bit(1) initial level 3 packed unaligned dcl 8-7 set ref 8-7* long 1(03) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 667* lower_case 1(01) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 705* lp 000260 automatic fixed bin(21,0) dcl 900 set ref 66* 103 103 228* 234 234 245 245 247 249 250 256 260 266 268 268 268 270 270 270 272 272 272 277 277 453* 456 456 465 465 472 472 473 474 490 502 502 510 510 581 581 589 595 605 606* 614 616 622 626 631 631 656 656 658 658 661 661 663 663 665 665 667 667 669 669 671 671 671 673 673 673 675 675 677 679 679 679 682 682 687 687 689 691 691 693 693 695 697 697 699 699 701 701 703 703 705 705 707 714 714 716 718 718 718 723 725 727 727 731 731 745 745 747 747 779 779 779 786 786 ltrim builtin function dcl 874 ref 810 810 818 818 mc based structure level 1 dcl 7-12 me 000242 automatic char(16) unaligned dcl 875 set ref 52* 57* 62* 78* 96* 103* 121* 163* 443* 456* 502* 519* 618* 710* 731* 747* 757* 762* 786* 818* nargs 000307 automatic fixed bin(17,0) initial dcl 925 set ref 193* 433* 441 452 925* no_bar 1(02) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 671* no_canonicalize 0(17) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 159 679* nosave 0(10) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 658* null builtin function dcl 876 ref 8-7 8-7 8-7 337 num_arg 000310 automatic fixed bin(17,0) initial dcl 925 set ref 472* 574 925* padding 1(07) 000314 automatic bit(29) initial level 3 packed unaligned dcl 8-7 set ref 8-7* param 5202 000170 external static varying char(57) array level 3 dcl 1-106 set ref 331* 483 484 484 490* param_base 000311 automatic fixed bin(17,0) initial dcl 925 set ref 483 489* 489 490 720* 925* pathname_prefix 166 000170 external static varying char(168) level 3 dcl 1-106 set ref 364* 539* pp 000262 automatic pointer dcl 900 set ref 66* 103 228* 234 234 245 247 249 250 256 260 266 268 268 268 270 270 270 272 272 272 277 277 453* 456 465 465 472 474 490 502 510 581 589 595 614 616 622 626 631 631 656 656 658 658 661 661 663 663 665 665 667 667 669 669 671 671 671 673 673 673 675 675 677 679 679 679 682 682 687 687 689 691 691 693 693 695 697 697 699 699 701 701 703 703 705 705 707 714 714 716 718 718 718 723 725 727 727 731 745 747 779 786 print_usage 000264 automatic bit(1) initial unaligned dcl 904 set ref 503 904* processing_params 000301 automatic bit(1) initial unaligned dcl 904 set ref 477* 482 719* 904* prompt_after_explanation 1(06) 000314 automatic bit(1) initial level 3 packed unaligned dcl 8-7 set ref 8-7* query_code 3 000314 automatic fixed bin(35,0) initial level 2 dcl 8-7 set ref 8-7* query_info 000314 automatic structure level 1 dcl 8-7 question_iocbp 4 000314 automatic pointer initial level 2 dcl 8-7 set ref 8-7* raw 0(13) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 141* 146 146* 695* repeat_time 10 000314 automatic fixed bin(71,0) initial level 2 dcl 8-7 set ref 8-7* rtrim builtin function dcl 877 ref 114 358 361 364 810 810 818 818 save_data 000170 external static structure level 2 dcl 1-106 save_data_entry based structure level 1 dcl 4-5 save_machine_conditions based structure level 1 packed unaligned dcl 2-6 short based structure level 2 dcl 10-8 simulator_already_active 000011 internal static bit(1) initial dcl 879 set ref 73* 76 214* 319* skip_umc 241 000170 external static bit(1) level 3 dcl 1-106 set ref 365* 557* smc_next 000275 automatic bit(1) initial unaligned dcl 904 set ref 542* 555 716* 904* spawnflag 1(07) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 351* sqindex 165 000170 external static fixed bin(24,0) level 3 dcl 1-106 set ref 333* status_branch based structure level 1 dcl 10-8 status_code 2 000314 automatic fixed bin(35,0) initial level 2 dcl 8-7 set ref 8-7* stop_code_next 000267 automatic bit(1) initial unaligned dcl 904 set ref 566 575* 689* 904* string builtin function dcl 881 set ref 324* 324 substr builtin function dcl 882 ref 121 127 247 249 256 268 268 268 270 270 270 272 272 272 277 277 474 510 530 530 534 537 539 614 745 770 774 779 suppress_name_sw 1(01) 000314 automatic bit(1) initial level 3 packed unaligned dcl 8-7 set ref 8-7* suppress_spacing 1(04) 000314 automatic bit(1) initial level 3 packed unaligned dcl 8-7 set ref 8-7* switches 1 000314 automatic structure level 2 dcl 8-7 syot_dir 247 000170 external static varying char(168) level 3 dcl 1-106 set ref 361* 537* syot_dir_next 000274 automatic bit(1) initial unaligned dcl 904 set ref 537 542* 547 693* 904* ta_fc 000247 automatic fixed bin(24,0) dcl 884 set ref 261* 265* 266 268 268 270 270 272 272 ta_ln 000250 automatic fixed bin(17,0) dcl 885 set ref 262* 266* 268 268 270 270 272 272 targ based char unaligned dcl 900 set ref 103* 234 234 245 247 249 250 256 260 266 268 268 268 270 270 270 272 272 272 277 277 456* 465 465 472* 474 490 502* 510 581* 589 595 614 616 622 626 631 631 656 656 658 658 661 661 663 663 665 665 667 667 669 669 671 671 671 673 673 673 675 675 677 679 679 679 682 682 687 687 689 691 691 693 693 695 697 697 699 699 701 701 703 703 705 705 707 714 714 716 718 718 718 723 725 727 727 731* 745 747* 779 786* targ_fc 000246 automatic fixed bin(24,0) dcl 883 set ref 245* 247* 248* 249 250 256 257 260 265 268 270 272 277 277 taskflag 1(08) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 353* temp_dir_next 000273 automatic bit(1) initial unaligned dcl 904 set ref 498 534 542* 691* 904* temp_spawnflag 000304 automatic bit(1) initial unaligned dcl 904 set ref 56* 351 352 904* temp_taskflag 000305 automatic bit(1) initial unaligned dcl 904 set ref 61* 353 904* tl 000251 automatic fixed bin(24,0) dcl 886 set ref 245* 249* 250 250* 252* 252 256 260 265 268 270 272 277 277 truncate 0(32) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 169 673* type 000252 automatic fixed bin(2,0) dcl 887 set ref 514* 518 519 755* type_name 000012 internal static char(8) initial array unaligned dcl 893 set ref 519* unique_chars_ 000072 constant entry external dcl 888 ref 627 unspec builtin function dcl 889 set ref 184 184 334* userlib 0(22) 000170 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 677* warning_return 000254 automatic label variable local dcl 890 set ref 161* 166 171* 617* 619 yes_or_no_sw 1 000314 automatic bit(1) initial level 3 packed unaligned dcl 8-7 set ref 8-7* 320* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Directory internal static fixed bin(17,0) initial dcl 10-56 Link internal static fixed bin(17,0) initial dcl 10-56 Segment internal static fixed bin(17,0) initial dcl 10-56 abx internal static fixed bin(17,0) initial dcl 7-42 addr builtin function dcl 835 apx internal static fixed bin(17,0) initial dcl 7-42 bbx internal static fixed bin(17,0) initial dcl 7-42 bpx internal static fixed bin(17,0) initial dcl 7-42 dbs_attach_file defined bit(1) unaligned dcl 9-17 dbs_dollar defined bit(1) unaligned dcl 9-17 dbs_filecode defined bit(1) unaligned dcl 9-17 dbs_mme_call defined bit(1) unaligned dcl 9-17 dbs_mme_inos_stop defined bit(1) unaligned dcl 9-17 dbs_mme_inos_trace defined bit(1) unaligned dcl 9-17 dbs_msf_test defined bit(1) unaligned dcl 9-17 dbs_nondollar defined bit(1) unaligned dcl 9-17 dbs_open_file defined bit(1) unaligned dcl 9-17 dbs_stop_mme defined bit(1) unaligned dcl 9-17 dbs_trace_mme defined bit(1) unaligned dcl 9-17 error_table_$big_ws_req external static fixed bin(35,0) dcl 850 fibptr automatic pointer dcl 6-84 gcos_ext_stat_$abort_reason external static varying char(128) dcl 1-13 gcos_ext_stat_$activity_card_num external static picture(4) unaligned dcl 1-15 gcos_ext_stat_$activity_name external static char(8) unaligned dcl 1-16 gcos_ext_stat_$activity_start_time external static fixed bin(71,0) dcl 1-17 gcos_ext_stat_$card_num external static picture(4) unaligned dcl 1-18 gcos_ext_stat_$courtesy_call_control external static structure level 1 dcl 1-92 gcos_ext_stat_$default_nondollar external static char(2) unaligned dcl 1-20 gcos_ext_stat_$endfc external static char(2) unaligned dcl 1-24 gcos_ext_stat_$etc_filecode external static char(2) unaligned dcl 1-26 gcos_ext_stat_$fct external static structure level 1 dcl 1-102 gcos_ext_stat_$gcos_gtss external static structure level 1 unaligned dcl 1-115 gcos_ext_stat_$increment_hold external static fixed bin(24,0) dcl 1-30 gcos_ext_stat_$initial_cpu_time external static fixed bin(71,0) dcl 1-31 gcos_ext_stat_$jcl_warnings external static fixed bin(24,0) dcl 1-33 gcos_ext_stat_$job_cpu_time external static fixed bin(71,0) dcl 1-34 gcos_ext_stat_$job_real_time external static fixed bin(71,0) dcl 1-36 gcos_ext_stat_$max_mem external static fixed bin(19,0) dcl 1-40 gcos_ext_stat_$mc external static structure level 1 unaligned dcl 1-112 gcos_ext_stat_$mme_rtrn external static label variable dcl 1-41 gcos_ext_stat_$nondollar external static char(2) unaligned dcl 1-42 gcos_ext_stat_$nongcos external static char(2) unaligned dcl 1-43 gcos_ext_stat_$normal_return external static label variable dcl 1-44 gcos_ext_stat_$pathname_prefix external static varying char(168) dcl 1-46 gcos_ext_stat_$skip_umc external static bit(1) unaligned dcl 1-55 gcos_ext_stat_$snumb external static bit(30) dcl 1-56 gcos_ext_stat_$sought_label external static char(8) unaligned dcl 1-57 gcos_ext_stat_$statistics external static fixed bin(24,0) array dcl 1-58 gcos_ext_stat_$storage_limit external static fixed bin(19,0) dcl 1-60 gcos_ext_stat_$sysout_limit external static fixed bin(35,0) dcl 1-61 gcos_ext_stat_$sysout_lines external static fixed bin(35,0) dcl 1-62 gcos_ext_stat_$termination_code external static bit(18) unaligned dcl 1-67 gcos_ext_stat_$time_limit external static fixed bin(71,0) dcl 1-68 gcos_ext_stat_$userid external static char(12) unaligned dcl 1-69 hcs_$status_ 000000 constant entry external dcl 932 lbx internal static fixed bin(17,0) initial dcl 7-42 linked_file internal static bit(1) initial unaligned dcl 6-87 lpx internal static fixed bin(17,0) initial dcl 7-42 mcp automatic pointer dcl 7-10 query_info_version_3 internal static fixed bin(17,0) initial dcl 8-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 8-34 query_info_version_5 internal static fixed bin(17,0) initial dcl 8-35 query_info_version_6 internal static fixed bin(17,0) initial dcl 8-36 random_file internal static bit(1) initial unaligned dcl 6-88 read_file internal static bit(1) initial unaligned dcl 6-89 sbx internal static fixed bin(17,0) initial dcl 7-42 scu based structure level 1 dcl 7-56 scup automatic pointer dcl 7-54 scux based structure level 1 dcl 7-207 send_message_ 000000 constant entry external dcl 878 size builtin function dcl 880 spx internal static fixed bin(17,0) initial dcl 7-42 statbuff automatic structure level 1 dcl 898 status_area_ptr automatic pointer dcl 10-47 status_entry_names based char(32) array dcl 10-47 status_link based structure level 1 dcl 10-38 status_pathname based char dcl 10-47 status_ptr automatic pointer dcl 10-47 write_file internal static bit(1) initial unaligned dcl 6-90 NAMES DECLARED BY EXPLICIT CONTEXT. com_err_id_too_long 004373 constant label dcl 618 com_err_inconsistent 001636 constant label dcl 163 ref 173 com_err_noarg 003617 constant label dcl 502 ref 550 561 571 642 650 dbs 001236 constant entry external dcl 65 dbs_next 002753 constant label dcl 284 ref 274 end_arg_loop 005744 constant label dcl 792 ref 468 492 ex_error 005411 constant label dcl 747 ref 512 exit_gcos 002351 constant label dcl 219 ref 68 exit_valid_buffsize 006146 constant label dcl 827 ref 822 fatal_error 002347 constant label dcl 214 ref 84 98 106 198 201 232 449 504 521 581 711 732 748 758 763 gc 001156 constant entry external dcl 6 gcos 001166 constant entry external dcl 6 gcos_common 001263 constant label dcl 70 ref 53 58 63 gcos_dbs 002353 constant entry internal dcl 223 ref 67 get_dir 003652 constant label dcl 508 ref 552 559 ignored_ncan 001677 constant label dcl 169 ref 161 ignored_string_end 004425 constant label dcl 622 ref 614 617 ignored_truncate 001717 constant label dcl 176 ref 171 in_error 005506 constant label dcl 757 ref 515 initialize_routine 003001 constant entry internal dcl 315 ref 87 print_call 003262 constant entry internal dcl 371 ref 447 print_dbs_usage 002760 constant entry internal dcl 292 ref 230 process_args 003300 constant entry internal dcl 430 ref 89 spawn 001201 constant entry external dcl 55 task 001221 constant entry external dcl 60 unexpected_id 005167 constant label dcl 708 set ref 714 usage 003336 constant label dcl 442 ref 457 503 787 valid_buffsize 005750 constant entry internal dcl 800 ref 581 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6772 7164 6173 7002 Length 7742 6173 172 541 577 10 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gc 634 external procedure is an external procedure. on unit on line 70 64 on unit gcos_dbs internal procedure shares stack frame of external procedure gc. print_dbs_usage internal procedure shares stack frame of external procedure gc. initialize_routine internal procedure shares stack frame of external procedure gc. print_call internal procedure shares stack frame of external procedure gc. process_args internal procedure shares stack frame of external procedure gc. valid_buffsize internal procedure shares stack frame of external procedure gc. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 dbsv gc 000011 simulator_already_active gc 000012 type_name gc STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gc 000100 bit_count gc 000101 buffsize_next gc 000102 chase gc 000112 code gc 000113 ename gc 000123 err_msg gc 000155 fullname gc 000227 i gc 000230 j gc 000231 jd_ename gc 000241 literal_string gc 000242 me gc 000246 targ_fc gc 000247 ta_fc gc 000250 ta_ln gc 000251 tl gc 000252 type gc 000254 warning_return gc 000260 lp gc 000262 pp gc 000264 print_usage gc 000265 control gc 000266 expecting gc 000267 stop_code_next gc 000270 dpo_next gc 000271 dpno_next gc 000272 job_id_next gc 000273 temp_dir_next gc 000274 syot_dir_next gc 000275 smc_next gc 000276 id_jd gc 000277 job_deck gc 000300 hold_given gc 000301 processing_params gc 000302 dpo_given gc 000303 dpno_given gc 000304 temp_spawnflag gc 000305 temp_taskflag gc 000306 ascii_given gc 000307 nargs gc 000310 num_arg gc 000311 param_base gc 000312 jtemp gc 000313 itemp gc 000314 query_info gc 000402 buffsize valid_buffsize THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return enable shorten_stack ext_entry int_entry set_cs_eis index_cs_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr cv_dec_check_ db expand_pathname_ gcos_gein_ gcos_mme_inos_$inos_trace_filecode gcos_print_call_ gcos_process_mme_$mme_stop gcos_process_mme_$mme_trace get_default_wdir_ get_pdir_ get_ring_ get_system_free_area_ get_wdir_ hcs_$status_minf ioa_ unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_conversion error_table_$badopt error_table_$noarg error_table_$too_many_args gcos_ext_stat_$abort_return gcos_ext_stat_$dbs gcos_ext_stat_$dir_rings gcos_ext_stat_$dpno gcos_ext_stat_$dpo gcos_ext_stat_$er gcos_ext_stat_$gcos_slave_area_seg gcos_ext_stat_$gf gcos_ext_stat_$incode gcos_ext_stat_$input_segment_path gcos_ext_stat_$job_id gcos_ext_stat_$last_mme gcos_ext_stat_$ldrss gcos_ext_stat_$max_activities gcos_ext_stat_$patchfile_ptr gcos_ext_stat_$pch gcos_ext_stat_$pdir gcos_ext_stat_$prt gcos_ext_stat_$rs gcos_ext_stat_$save_data gcos_ext_stat_$save_dir gcos_ext_stat_$saveseg_ptr gcos_ext_stat_$seg_rings gcos_ext_stat_$sig_ptr gcos_ext_stat_$stop_code gcos_ext_stat_$system_free_pointer gcos_ext_stat_$tape_buffer_size gcos_ext_stat_$temp_dir gcos_ext_stat_$temp_seg_ptr gcos_ext_stat_$validation_level LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 838 001071 904 001073 925 001116 8 7 001123 6 001155 52 001174 53 001177 55 001200 56 001207 57 001211 58 001217 60 001220 61 001227 62 001231 63 001234 65 001235 66 001244 67 001261 68 001262 70 001263 73 001277 74 001300 76 001301 78 001304 84 001330 87 001331 89 001332 94 001333 96 001335 98 001361 101 001362 103 001364 106 001417 111 001420 113 001431 114 001440 117 001454 120 001456 121 001460 127 001514 133 001527 135 001534 136 001541 138 001546 140 001553 141 001560 145 001565 146 001567 149 001576 154 001605 159 001620 161 001626 162 001631 163 001636 166 001675 169 001677 171 001706 172 001711 173 001716 176 001717 183 001723 184 001736 185 001762 186 002005 187 002027 188 002053 189 002075 190 002116 191 002142 192 002162 193 002204 194 002226 195 002241 198 002246 201 002247 203 002253 204 002261 205 002271 206 002272 209 002311 210 002312 212 002343 214 002347 219 002351 221 002352 223 002353 227 002354 228 002356 229 002373 230 002375 232 002401 234 002402 235 002414 236 002421 242 002456 243 002460 245 002461 247 002467 248 002476 249 002500 250 002516 252 002524 255 002526 256 002533 257 002545 260 002556 261 002563 262 002565 263 002566 265 002567 266 002571 268 002575 270 002624 272 002652 274 002677 276 002701 277 002703 284 002753 286 002755 288 002757 292 002760 293 002761 311 003000 315 003001 319 003002 320 003005 321 003007 322 003010 323 003011 324 003012 325 003014 326 003016 328 003020 329 003021 330 003022 331 003024 332 003037 333 003041 334 003043 335 003047 337 003050 347 003062 351 003070 352 003077 353 003104 358 003111 361 003157 364 003226 365 003257 367 003261 371 003262 375 003263 427 003277 430 003300 433 003301 434 003312 435 003314 439 003333 441 003334 442 003336 443 003337 447 003354 449 003355 452 003356 453 003365 455 003402 456 003404 457 003430 465 003431 467 003445 468 003447 472 003450 473 003474 474 003500 476 003507 477 003511 478 003512 479 003513 482 003514 483 003516 484 003522 487 003556 489 003557 490 003562 491 003602 492 003603 496 003604 498 003606 499 003610 501 003612 502 003617 503 003647 504 003651 508 003652 510 003653 512 003710 514 003713 515 003756 518 003760 519 003765 521 004030 525 004031 526 004042 528 004045 529 004056 530 004061 532 004113 534 004120 537 004151 539 004166 542 004177 545 004203 547 004204 548 004206 549 004210 550 004215 552 004216 555 004217 557 004221 559 004224 560 004226 561 004233 566 004234 569 004236 570 004240 571 004245 574 004246 575 004251 577 004253 579 004254 581 004256 584 004277 585 004300 586 004301 588 004302 589 004304 590 004316 591 004320 592 004322 594 004323 595 004325 596 004337 597 004341 599 004343 601 004344 602 004346 605 004350 606 004352 614 004354 616 004361 617 004370 618 004373 619 004424 622 004425 624 004440 626 004441 627 004446 628 004474 631 004475 632 004505 633 004507 641 004510 642 004515 645 004516 646 004520 649 004521 650 004526 652 004527 655 004530 656 004532 658 004547 661 004563 663 004576 665 004612 667 004626 669 004643 671 004657 673 004700 675 004720 677 004734 679 004744 682 004764 683 004774 684 004776 685 005001 687 005002 689 005016 691 005026 693 005042 695 005056 697 005066 699 005102 701 005116 703 005132 705 005146 707 005163 708 005167 710 005174 711 005221 714 005222 716 005232 718 005242 719 005256 720 005260 721 005262 723 005263 725 005274 727 005305 731 005321 732 005344 734 005345 741 005346 743 005350 745 005352 746 005406 747 005411 748 005435 751 005436 755 005441 756 005504 757 005506 758 005541 761 005542 762 005544 763 005601 768 005602 769 005613 770 005616 772 005641 773 005653 774 005656 779 005672 783 005706 786 005707 787 005742 790 005743 792 005744 793 005745 796 005747 800 005750 808 005761 810 005762 813 006042 817 006051 818 006054 822 006141 825 006143 827 006146 829 006147 ----------------------------------------------------------- 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