COMPILATION LISTING OF SEGMENT gcos_attach_file_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-06-29_1714.47_Thu_mdt Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 /* 8* 9* This module will attach a file and associate it with a fib. 10* The fib is assumed to have been initialized by a call to 11* gcos_open_file_. 12* 13* The parameter is a pointer to the fib defining the file. For 14* a perm file, fib.pathnm is the full pathname (168 characters) 15* of a file to be associated with the fib. Otherwise, a 16* scratch file will be created. This file will be created 17* in the sysout directory if the file is print or punch. 18* Otherwise, it will be created in the temporary directory. 19* (The sysout directory is, by default, the working directory, 20* and the temporary directory, the process directory. The 21* user can set them to any other directories, such as a pool 22* directory reserved for short term storage of vary large 23* output files.) 24* 25* If the file size has not been specified in fib.size, it will 26* be set to 3840 words (one GCOS link). The file will be set 27* to the rewound position. 28* 29**/ 30 31 /* 32* 33* Author: Dick Snyder Dec 15, 1970 34* Change: T. Casey Apr 1973, Feb 1974 35* Change: D. Kayden May 1974, Jul 1974, Jan 1975, Mar 1975 36* Change: R.H. Morrison Jun 1975 37* Change: M. R. Jordan Sep 1976 38* Change: Mel Wilson Oct 1979 for gtss compatibility, Jan 1980 for gtss 2.4 39* Change: S.C. Akers Aug 1981 Clean up format 40* Dec 1981 Fix sysout bug. Put printer & punch files 41* in SYSOUT directory, not SAVE directory. 42* FEB 1982 Add tape-buffer size checking, and pass buffer 43* size to tape DIM. 44* Change: R. Barstad Oct 1982 Provide concurrent access control for IDS2 files 45* Channge: R. Barstad Nov 1982 Fix format of actid for console msgs 46**/ 47 48 gcos_attach_file_: proc (fp); 49 50 dcl a_code fixed bin(35) parm; 51 dcl fp ptr parm; 52 53 54 fibptr = fp; 55 reattachsw = "0"b; 56 if fib.console | fib.null then goto done; /* this device does not get attached */ 57 58 if fib.stream ^= "" then 59 file_id = fib.stream; /* file id is provided by caller */ 60 else 61 do i = 1 to hbound (save_data.fibs, 1); /* otherwise use file code for file id */ 62 if fct.fibptr (i) = fibptr then do; /* find first file code for this file */ 63 file_id = fct.filecode (i); 64 goto set_actid; 65 end; 66 end; /* a match must always be found */ 67 68 set_actid: ; 69 if save_data.activity_no = 0 70 | substr (file_id, 6) ^= "" then actid = ""; /* don't put actid with syspunch, etc. */ 71 else 72 if substr (save_data.actid, 7, 1) = "0" then /* activity no. < 10 */ 73 actid = "a" || substr (save_data.actid, 8, 1); /* yes - remove leading zero */ 74 else 75 actid = "a" || substr (save_data.actid, 7, 2); /* ascii activity number */ 76 77 if length (actid) > 0 then name = actid || "_" || file_id; /* now construct stream name */ 78 else name = file_id; 79 fib.stream = name; /* save stream name */ 80 81 if fib.perm then goto attch; /* perm file has a complete pathname already specified */ 82 83 if fib.tape then goto attach_tape; 84 85 /* CONSTRUCT A PATHNAME FOR THE FILE 86* Put print and punch files in a permanent directory so that they 87* can be printed or punched at a later date without disappearing 88* with the process directory when the user is logged out 89* Put other files in a temporary directory (might be process directory or a "pool" directory) 90**/ 91 92 if fib.print | fib.punch then 93 fib.pathnm = save_data.syot_dir; /* Find the SYSOUT directory. */ 94 else 95 if substr (fib.disp, 1, 1) then 96 fib.pathnm = gcos_ext_stat_$save_dir; 97 else fib.pathnm = gcos_ext_stat_$temp_dir; 98 99 /* CONSTRUCT ENTRY NAME OF THE FORM: 100* 101* .a.<+filecode> 102* 103* where the < and > are part of the description - not part of the entry name, and 104* 105* was determined during command argument processing; 106* 107* is the current activity number (omitted if act. no. = 0); 108* 109* <+filecode> is the filecode, with *'s replaced by +'s. 110* (or a name placed in fib.pathnm by the caller) 111* 112**/ 113 fib.pathnm = 114 rtrim (fib.pathnm) 115 || ">" 116 117 || rtrim (gcos_ext_stat_$job_id) 118 || "." 119 || actid 120 || translate (file_id, "+", "*") 121 ; 122 123 124 125 /* Attach file */ 126 127 128 attch: ; 129 if gcos_ext_stat_$save_data.gtssflag then /* create the new entry, setting ring brackets */ 130 if fib.perm | fib.print | fib.punch then do; 131 call expand_pathname_ ((fib.pathnm), dir_name, entryname, code); 132 if code ^= 0 then do; 133 err_msg = "from expand_pathname_ ^a"; 134 goto error_rtrn; 135 end; 136 call user_info_ (persid, projid, acct); 137 call hcs_$append_branchx (dir_name, entryname, 01010b, gcos_ext_stat_$seg_rings 138 , "*." || rtrim (projid) || ".*", 0b, 0b, 0, code); 139 if (code ^= 0) & (code ^= error_table_$namedup) & (code ^= error_table_$incorrect_access) then do; 140 err_msg = "from hcs_$append_branchx ^a"; 141 goto error_rtrn; 142 end; 143 /* do gtss allocation */ 144 145 if fib.perm & (fib.plud ^= "435453"b3) then do; 146 call gcos_verify_tss_access_ (dir_name, entryname, fib.read || fib.write || "0000"b 147 , null (), fib.forced_acl_flag, gcs_status_bits); 148 if gcs_status.status = "4003"b3 then do; 149 code = error_table_$notalloc; 150 err_msg = "No permission on ^a ."; 151 goto error_rtrn; 152 end; 153 else 154 if gcs_status.status ^= "4000"b3 then do; 155 err_msg = "Error verifying access on ^a ."; 156 goto error_rtrn; 157 end; 158 159 /* FOLLOWING CODE BLOCKED FOR 9.0. Provides concurrent access control. 160* call get_lock_id_ (lock_id); 161* call random_$set_seed (fixed (substr (bit(clock (), 72), 38, 35), 35, 0)); 162* alloc_count = 0; 163* alloc_start_blocked = clock (); 164* try_allocation:; 165* call gtss_mcfc_$open (dir_name, entryname, fib.read||fib.write, lock_id, fib.unique_file_id 166* , addr (gcs_status), code); 167* if gcs_status.status = "4004"b3 then do; / * file busy * / 168* alloc_count = alloc_count + 1; 169* if mod (alloc_count, 5) = 0 then do; 170* call date_time_ (alloc_start_blocked, ascii_time); 171* call ioa_ ("Allocation of ^a>^a blocked since ^a, for ^i attempts." 172* , dir_name, entryname, ascii_time, alloc_count); 173* end; 174* call random_$normal (flt_delay); 175* call timer_manager_$sleep (fixed (flt_delay*10.0, 71, 0)+61, "11"b); / * wait 60 seconds average * / 176* gcs_status.status = "4000"b3; 177* goto try_allocation; 178* end; 179* else 180* if code ^= 0 then do; 181* err_msg = "from gtss_mcfc_$open ^a"; 182* goto error_rtrn; 183* end; 184**/ 185 end; 186 187 end; 188 189 /* check for IDS2 file */ 190 if fib.perm & fib.type /* random */ 191 then do; 192 call expand_pathname_ ((fib.pathnm), dir_name, entryname, code); 193 if code ^= 0 then do; 194 err_msg = "from expand_pathname_ ^a"; 195 goto error_rtrn; 196 end; 197 /* check for IDS2 file being initialized in Q2UTIL activity */ 198 if gcos_ext_stat_$activity_name = "q2util" 199 then do; 200 call gcos_ids2_concur_$create_control(dir_name,entryname,code); 201 if code = error_table_$namedup | code = error_table_$segknown 202 then goto try_allocation; 203 if code ^= 0 204 then do; 205 err_msg = "from gcos_ids2_concur_$create_control ^a"; 206 goto error_rtrn; 207 end; 208 end; 209 else /* check if this IDS2 file has an extrinsic id */ 210 if gcos_ids2_concur_$have_xid(dir_name,entryname,code) 211 then do; 212 if code ^= 0 then do; 213 err_msg = "from gcos_ids2_concur_$have_xid ^a"; 214 goto error_rtrn; 215 end; 216 try_allocation: alloc_count = 0; 217 ascii_snumb = substr(gcos_ext_stat_$save_data.actid,1,5); 218 try_alloc_again: call gcos_ids2_concur_$allocate 219 (dir_name, entryname, fib.read, fib.write, 220 busy_status,code); 221 if code^=0 then do; 222 err_msg = "from gcos_ids2_concur_$allocate ^a"; 223 goto error_rtrn; 224 end; 225 if busy_status /* busy */ then do; 226 alloc_count = alloc_count +1; 227 if mod(alloc_count,5) = 0 then do; 228 call date_time_(clock(), ascii_date_time); 229 ascii_time = substr(ascii_date_time, 11,6); 230 call ioa_("*S^5a NEEDS ^2a PRMFL @ ^a", 231 ascii_snumb, file_id, ascii_time); 232 end; 233 call timer_manager_$sleep(50, "11"b); 234 goto try_alloc_again; 235 end; 236 end; 237 end; 238 239 if fib.read & ^fib.write then 240 mode = "r"; 241 else mode = "rw"; 242 243 call ios_$attach (name, "file", fib.pathnm, mode, status); /* attach */ 244 if code ^= 0 then do; 245 err_msg = "from ios_$attach ^a"; 246 goto error_rtrn; 247 end; 248 249 call ios_$setsize (name, 36, status); /* set elsize to one word */ 250 if code ^= 0 then do; /* fatal error */ 251 err_msg = "from ios_$setsize ^a"; 252 goto error_rtrn; 253 end; 254 255 if reattachsw then goto reattach_position; 256 257 if fib.perm then do; /* for permanent files only, determine actual file size */ 258 call ios_$tell (name, "last", "first", fib.last, status); /* get last pointer for fib */ 259 if code ^= 0 then do; /* fatal error */ 260 err_msg = "from ios_$tell last first ^a"; 261 goto error_rtrn; 262 end; 263 fib.size = divide (fib.last+319, 320, 17, 0) * 320; /* round size up to multiple of 320 */ 264 end; 265 if fib.size = 0 then 266 fib.size = 3840; /* if file still has no size, give it one link */ 267 268 if ^fib.perm then do; /* truncate all temporary files */ 269 call ios_$seek (name, "last", "first", 0, status); 270 if code ^= 0 then do; /* fatal error */ 271 err_msg = "from ios_$seek last first ^a"; 272 goto error_rtrn; 273 end; 274 275 fib.last = 0; 276 end; 277 278 if dbs_attach_file then 279 call ioa_ ("gcos_attach_file_ stream=^a, file=^a", fib.stream, fib.pathnm); 280 goto done; 281 282 attach_tape: ; 283 if 284 fib.serial_no = (5)"20"b3 /* 5 BCD spaces. */ 285 | fib.serial_no = (5)"11"b3 /* 5 BCD 9's */ 286 then do; /* => scratch tape. */ 287 scratch = "1"b; 288 label = "scratch"; 289 end; 290 else do; /* => Specific reel designated. */ 291 scratch = "0"b; 292 label = (5)"X"; /* Set initially to length 5. */ 293 call gcos_cv_gebcd_ascii_ ( /* Convert BCD reel number to ascii. */ 294 addr (fib.serial_no) 295 , 5 296 , addrel (addr (label), 1) 297 ); 298 end; 299 if fib.tracks = "01"b then label = label||",7track"; /* 7 track tape requested */ 300 else 301 if fib.tracks = "10"b then label = label||",9track"; /* 9 track tape requested */ 302 /* else use installation default */ 303 label = label || ",blk=" || ltrim (char (gcos_ext_stat_$tape_buffer_size)); 304 do j = 1 to hbound (dens, 1) ; 305 if fib.density = dens (j) then do ; 306 label = label||",den="; 307 label = label||dens_string (j); 308 goto determine_mode ; 309 end ; 310 end ; 311 312 determine_mode: ; 313 314 if fib.write then 315 mode = "rw"; /* attach with ring */ 316 else mode = "r"; /* attach with no ring */ 317 318 call ios_$attach ((name), tape_module, (label), mode, status); 319 if code ^= 0 then /* attach error */ 320 call gcos_error_ (code, "tape attach error: label = ^a", label); 321 322 if scratch then do; 323 call ios_$order ((name), "rewind", null, status); 324 call ios_$write ((name), addr (tape_label), 0, 14, nwr, status); 325 call ios_$order ((name), "rewind", null, status); 326 end; 327 if dbs_attach_file then 328 call ioa_ ("gcos_attach_file_ stream=^a, tape=^a", name, label); 329 330 done: ; 331 fib.attached = "1"b; /* attachment is complete */ 332 return; 333 334 error_rtrn: ; 335 336 /* Come here on all errors from ios_ */ 337 338 if reattachsw then goto reattach_return; 339 call gcos_error_ (code, err_msg, fib.pathnm); /* pass error code on */ 340 return; 341 342 reattach: entry (fp, a_code); 343 344 /* called by gcos_save_$restart */ 345 fibptr = fp; 346 if fib.console | fib.null then 347 goto reattach_return; 348 reattachsw = "1"b; 349 name = fib.stream; 350 goto attch; 351 352 reattach_position: ; 353 if fib.last > 0 then do; /* if file was non-null, see if it exists */ 354 call ios_$tell (name, "last", "first", l, status); 355 if code = 0 then 356 if l = 0 then /* this means file is lost */ 357 code = 1; /* fake an error code */ 358 if code ^= 0 then do; /* real or fake error code */ 359 err_msg = "from ios_$tell last first ^a"; 360 goto reattach_return; 361 end; 362 end; 363 364 call ios_$seek (name, "read", "first", fib.current, status); 365 if code ^= 0 then do; 366 err_msg = "from ios_$seek read first ^a"; 367 goto reattach_return; 368 end; 369 370 if mode = "rw" then 371 call ios_$seek (name, "write", "first", fib.current, status); 372 if code ^= 0 then 373 err_msg = "from ios_$seek write first ^a"; 374 375 reattach_return: ; 376 a_code = code; 377 if code ^= 0 & ^gcos_ext_stat_$save_data.brief then 378 call com_err_ (code, "gcos_attach_file", err_msg, fib.pathnm); 379 return; 380 381 /* Variables for gcos_attach_file_: */ 382 /* IDENTIFIER ATTRIBUTES */ 383 dcl acct char; 384 dcl actid char(3) var; 385 dcl addr builtin; 386 dcl addrel builtin; 387 dcl alloc_count fixed bin(24) /* count of allocation delays for a file */; 388 dcl ascii_date_time char(24); 389 dcl ascii_time char(6); 390 dcl ascii_snumb char(5); 391 dcl busy_status bit(1); 392 dcl char builtin; 393 dcl clock builtin; 394 dcl com_err_ entry options (variable); 395 dcl date_time_ entry (fixed bin(71), char(*)); 396 dcl dens (5) bit(4) int static options(constant) init("0001"b, "0010"b, "0100"b, "1001"b, "1100"b); 397 dcl dens_string (5) char(4) int static options(constant) init("200", "556", "800", "1600", "6250"); 398 dcl dir_name char(168); 399 dcl divide builtin; 400 dcl entryname char(32); 401 dcl error_table_$incorrect_access fixed bin(35)ext; 402 dcl error_table_$namedup fixed bin(35)ext; 403 dcl error_table_$notalloc fixed bin(35)ext; 404 dcl error_table_$segknown fixed bin(35) ext static; 405 dcl err_msg char(100) varying; 406 dcl expand_pathname_ entry (char(*), char(*), char(*), fixed bin(35)); 407 dcl file_id char(8) /* temp */; 408 dcl gcos_cv_gebcd_ascii_ ext entry (ptr, fixed bin(24), ptr); 409 dcl gcos_error_ ext entry options (variable); 410 dcl gcos_ids2_concur_$allocate entry (char(*), char(*), bit(1), bit(1), bit(1), fixed bin (35)); 411 dcl gcos_ids2_concur_$create_control entry (char(*), char(*), fixed bin(35)); 412 dcl gcos_ids2_concur_$have_xid entry (char(*), char(*), fixed bin(35)) returns (bit(1)); 413 dcl gcos_verify_tss_access_ entry (char(*), char(*), bit(6), ptr, bit(1) unal, bit(72)); 414 dcl gcs_status_bits bit(72) based (addr (gcs_status)); 415 dcl hbound builtin; 416 dcl hcs_$append_branchx entry (char(*), char(*), fixed bin(5), (3) fixed bin(3), char(*), fixed bin(1), fixed bin(1), fixed bin(24), fixed bin(35)); 417 dcl ioa_ ext entry options (variable); 418 dcl l fixed bin(21); 419 dcl label char(40)varying aligned; 420 dcl length builtin; 421 dcl ltrim builtin; 422 dcl mod builtin; 423 dcl mode char(2); 424 dcl name char(8); 425 dcl null builtin; 426 dcl nwr fixed bin(21); 427 dcl persid char; 428 dcl projid char(9); 429 dcl reattachsw bit(1) /* reattach entry switch */; 430 dcl rtrim builtin; 431 dcl scratch bit(1) /* scratch tape flag */; 432 dcl substr builtin; 433 dcl tape_module char(5) int static options(constant) init("nstd_"); 434 dcl timer_manager_$sleep entry (fixed bin(71), bit(2)); 435 dcl translate builtin; 436 dcl user_info_ entry (char(*), char(*), char(*)); 437 dcl (i,j)fixed bin(24); 438 439 dcl 1 tape_label aligned int static options(constant), 440 2 identifier (2)bit(36) init("272520200600"b3, "002022634320"b3), /* "GE 600 BTL " */ 441 2 installation bit(36) init("272562202020"b3), /* "ges " */ 442 2 rsn bit(36) init((6)"20"b3), /* " " */ 443 2 fsn bit(36) init((6)"20"b3), /* " " */ 444 2 rlsn bit(36) init("202000000001"b3), 445 2 crdate bit(36) init("0"b), 446 2 rdays bit(36) init("0"b), 447 2 filename bit(72) init("0"b), 448 2 data (4)bit(36) init((4) (6)"20"b3); 449 450 dcl 1 gcs_status, 451 2 status bit(12) unal init("4000"b3), 452 2 pad1 bit(60) unal; 453 454 /* variables for gtss concurrency control -- commented out 455*dcl alloc_start_blocked fixed bin(71) / * time of entering blocked state on file allocation * /; 456*dcl fixed builtin; 457*dcl flt_delay float bin (27); 458*dcl get_lock_id_ entry (bit(36) aligned); 459*dcl gtss_mcfc_$open entry (char(*), char(*), bit(6), bit(36) aligned, bit(36) aligned, ptr, fixed bin(35)); 460*dcl index builtin; 461*dcl lock_id bit(36) aligned; 462*dcl random_$normal entry (float bin (27)); 463*dcl random_$set_seed entry (fixed bin(35)); 464**/ 465 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 */ 466 467 8 1 /* BEGIN INCLUDE FILE gcos_dbs_names.incl.pl1 (Wardd Multics) 06/08/81 1626.9 mst Mon */ 8 2 8 3 dcl dbs_names (11)char(14)var static int options(constant)init( 8 4 /* 1 */ "attach_file" 8 5 , /* 2 */ "dollar" 8 6 , /* 3 */ "filecode" 8 7 , /* 4 */ "mme_call" 8 8 , /* 5 */ "mme_inos_trace" 8 9 , /* 6 */ "trace_mme" 8 10 , /* 7 */ "nondollar" 8 11 , /* 8 */ "open_file" 8 12 , /* 9 */ "msf_test" 8 13 , /* 10 */ "stop_mme" 8 14 , /* 11 */ "mme_inos_stop" 8 15 ); 8 16 8 17 dcl ( 8 18 dbs_attach_file defined(gcos_ext_stat_$dbs(1)) 8 19 ,dbs_dollar defined(gcos_ext_stat_$dbs(2)) 8 20 ,dbs_filecode defined(gcos_ext_stat_$dbs(3)) 8 21 ,dbs_mme_call defined(gcos_ext_stat_$dbs(4)) 8 22 ,dbs_mme_inos_trace defined(gcos_ext_stat_$dbs(5)) 8 23 ,dbs_trace_mme defined(gcos_ext_stat_$dbs(6)) 8 24 ,dbs_nondollar defined(gcos_ext_stat_$dbs(7)) 8 25 ,dbs_open_file defined(gcos_ext_stat_$dbs(8)) 8 26 ,dbs_msf_test defined(gcos_ext_stat_$dbs(9)) 8 27 ,dbs_stop_mme defined(gcos_ext_stat_$dbs(10)) 8 28 ,dbs_mme_inos_stop defined(gcos_ext_stat_$dbs(11)) 8 29 ) bit(1); 8 30 8 31 /* END INCLUDE FILE gcos_dbs_names.incl.pl1 */ 468 469 9 1 /* BEGIN INCLUDE FILE gcos_dcl_ios_.incl.pl1 (Wardd Multics) 06/16/81 1040.9 mst Tue */ 9 2 9 3 dcl ios_$attach entry ( 9 4 char(*) 9 5 , char(*) 9 6 , char(*) 9 7 , char(*) 9 8 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 9 ); 9 10 9 11 dcl ios_$detach entry ( 9 12 char(*) 9 13 , char(*) 9 14 , char(*) 9 15 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 16 ); 9 17 9 18 dcl ios_$order entry ( 9 19 char(*) 9 20 , char(*) 9 21 , ptr 9 22 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 23 ); 9 24 9 25 dcl ios_$read entry ( 9 26 char(*) 9 27 , ptr 9 28 , fixed bin(21) 9 29 , fixed bin(21) 9 30 , fixed bin(21) 9 31 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 32 ); 9 33 9 34 dcl ios_$read_ptr entry ( 9 35 ptr 9 36 , fixed bin(21) 9 37 , fixed bin(21) 9 38 ); 9 39 dcl ios_$setsize entry ( 9 40 char(*) 9 41 , fixed bin(21) 9 42 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 43 ); 9 44 9 45 dcl ios_$seek entry ( 9 46 char(*) 9 47 , char(*) 9 48 , char(*) 9 49 , fixed bin(21) 9 50 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 51 ); 9 52 9 53 dcl ios_$tell entry ( 9 54 char(*) 9 55 , char(*) 9 56 , char(*) 9 57 , fixed bin(21) 9 58 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 59 ); 9 60 9 61 dcl ios_$write entry ( 9 62 char(*) 9 63 , ptr 9 64 , fixed bin(21) 9 65 , fixed bin(21) 9 66 , fixed bin(21) 9 67 , 1, 2 fixed bin(35) aligned, 2 bit(36) aligned 9 68 ); 9 69 9 70 dcl ios_$write_ptr entry ( 9 71 ptr 9 72 , fixed bin(21) 9 73 , fixed bin(21) 9 74 ); 9 75 9 76 dcl 1 status /* Return status code. */ 9 77 , 2 code fixed bin(35)aligned 9 78 , 2 word2 bit(36)aligned 9 79 ; 9 80 9 81 /* END INCLUDE FILE gcos_dcl_ios_.incl.pl1 */ 470 471 end gcos_attach_file_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/29/00 1714.4 gcos_attach_file_.pl1 >udd>sm>ds>w>ml>gcos_attach_file_.pl1 466 1 09/09/83 1814.4 gcos_ext_stat_.incl.pl1 >ldd>incl>gcos_ext_stat_.incl.pl1 1-100 2 03/27/82 0524.8 gcos_save_mc.incl.pl1 >ldd>incl>gcos_save_mc.incl.pl1 1-104 3 03/27/82 0524.8 gcos_fct_entry.incl.pl1 >ldd>incl>gcos_fct_entry.incl.pl1 1-108 4 03/27/82 0524.8 gcos_save_data_entry.incl.pl1 >ldd>incl>gcos_save_data_entry.incl.pl1 4-29 5 09/09/83 1814.4 gcos_flags.incl.pl1 >ldd>incl>gcos_flags.incl.pl1 1-110 6 03/27/82 0524.8 gcos_file_info_block_.incl.pl1 >ldd>incl>gcos_file_info_block_.incl.pl1 1-113 7 12/15/83 1200.4 mc.incl.pl1 >ldd>incl>mc.incl.pl1 468 8 03/27/82 0524.8 gcos_dbs_names.incl.pl1 >ldd>incl>gcos_dbs_names.incl.pl1 470 9 03/27/82 0524.8 gcos_dcl_ios_.incl.pl1 >ldd>incl>gcos_dcl_ios_.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. a_code parameter fixed bin(35,0) dcl 50 set ref 342 376* acct 000100 automatic char(1) packed unaligned dcl 383 set ref 136* actid 2 000072 external static char(8) level 3 in structure "gcos_ext_stat_$save_data" dcl 1-106 in procedure "gcos_attach_file_" ref 71 71 74 217 actid 000102 automatic varying char(3) dcl 384 in procedure "gcos_attach_file_" set ref 69* 71* 74* 77 77 113 activity_no 26 000072 external static fixed bin(24,0) level 3 dcl 1-106 ref 69 addr builtin function dcl 385 ref 146 293 293 293 293 324 324 addrel builtin function dcl 386 ref 293 293 alloc_count 000104 automatic fixed bin(24,0) dcl 387 set ref 216* 226* 226 227 ascii_date_time 000105 automatic char(24) packed unaligned dcl 388 set ref 228* 229 ascii_snumb 000116 automatic char(5) packed unaligned dcl 390 set ref 217* 230* ascii_time 000114 automatic char(6) packed unaligned dcl 389 set ref 229* 230* attached 60(01) based bit(1) level 4 packed packed unaligned dcl 6-10 set ref 331* brief 0(15) 000072 external static bit(1) level 4 packed packed unaligned dcl 1-106 ref 377 busy_status 000120 automatic bit(1) packed unaligned dcl 391 set ref 218* 225 char builtin function dcl 392 ref 303 clock builtin function dcl 393 ref 228 228 code 000276 automatic fixed bin(35,0) level 2 dcl 9-76 set ref 131* 132 137* 139 139 139 149* 192* 193 200* 201 201 203 209* 212 218* 221 244 250 259 270 319 319* 339* 355 355* 358 365 372 376 377 377* com_err_ 000010 constant entry external dcl 394 ref 377 console 60(08) based bit(1) level 4 packed packed unaligned dcl 6-10 ref 56 346 current 65 based fixed bin(21,0) level 2 dcl 6-10 set ref 364* 370* date_time_ 000012 constant entry external dcl 395 ref 228 dbs_attach_file defined bit(1) packed unaligned dcl 8-17 ref 278 327 dens 000025 constant bit(4) initial array packed unaligned dcl 396 ref 304 305 dens_string 000020 constant char(4) initial array packed unaligned dcl 397 ref 307 density 60(23) based bit(4) level 4 packed packed unaligned dcl 6-10 ref 305 dir_name 000121 automatic char(168) packed unaligned dcl 398 set ref 131* 137* 146* 192* 200* 209* 218* disp 60(14) based bit(2) level 4 packed packed unaligned dcl 6-10 ref 94 divide builtin function dcl 399 ref 263 entryname 000173 automatic char(32) packed unaligned dcl 400 set ref 131* 137* 146* 192* 200* 209* 218* err_msg 000203 automatic varying char(100) dcl 405 set ref 133* 140* 150* 155* 194* 205* 213* 222* 245* 251* 260* 271* 339* 359* 366* 372* 377* error_table_$incorrect_access 000014 external static fixed bin(35,0) dcl 401 ref 139 error_table_$namedup 000016 external static fixed bin(35,0) dcl 402 ref 139 201 error_table_$notalloc 000020 external static fixed bin(35,0) dcl 403 ref 149 error_table_$segknown 000022 external static fixed bin(35,0) dcl 404 ref 201 expand_pathname_ 000024 constant entry external dcl 406 ref 131 192 fct 000070 external static structure array level 2 dcl 1-102 fct_entry based structure level 1 dcl 3-3 fib based structure level 1 dcl 6-10 fibptr 000274 automatic pointer dcl 6-84 in procedure "gcos_attach_file_" set ref 54* 56 56 58 58 62 79 81 83 92 92 92 94 94 97 113 113 129 129 129 131 145 145 146 146 146 190 190 192 218 218 239 239 243 257 258 263 263 265 265 268 275 278 278 283 283 293 293 299 300 305 314 331 339 345* 346 346 349 353 364 370 377 fibptr 2 000070 external static pointer array level 3 in structure "gcos_ext_stat_$fct" dcl 1-102 in procedure "gcos_attach_file_" ref 62 fibs 322 000072 external static structure array level 3 dcl 1-106 ref 60 file_id 000236 automatic char(8) packed unaligned dcl 407 set ref 58* 63* 69 77 78 113 230* filecode 000070 external static char(2) array level 3 dcl 1-102 ref 63 flags based structure level 1 dcl 5-8 flgs 000072 external static structure level 3 dcl 1-106 forced_acl_flag 60(29) based bit(1) level 4 packed packed unaligned dcl 6-10 set ref 146* fp parameter pointer dcl 51 ref 48 54 342 345 gcos_cv_gebcd_ascii_ 000026 constant entry external dcl 408 ref 293 gcos_error_ 000030 constant entry external dcl 409 ref 319 339 gcos_ext_stat_$activity_name 000052 external static char(8) packed unaligned dcl 1-16 ref 198 gcos_ext_stat_$dbs 000054 external static bit(1) array packed unaligned dcl 1-19 ref 278 278 327 327 gcos_ext_stat_$fct 000070 external static structure level 1 dcl 1-102 gcos_ext_stat_$job_id 000056 external static varying char(18) dcl 1-35 ref 113 gcos_ext_stat_$save_data 000072 external static structure level 1 dcl 1-106 gcos_ext_stat_$save_dir 000060 external static varying char(168) dcl 1-52 ref 94 gcos_ext_stat_$seg_rings 000062 external static fixed bin(3,0) array dcl 1-53 set ref 137* gcos_ext_stat_$tape_buffer_size 000064 external static fixed bin(35,0) dcl 1-64 ref 303 gcos_ext_stat_$temp_dir 000066 external static varying char(168) dcl 1-65 ref 97 gcos_ids2_concur_$allocate 000032 constant entry external dcl 410 ref 218 gcos_ids2_concur_$create_control 000034 constant entry external dcl 411 ref 200 gcos_ids2_concur_$have_xid 000036 constant entry external dcl 412 ref 209 gcos_verify_tss_access_ 000040 constant entry external dcl 413 ref 146 gcs_status 000272 automatic structure level 1 packed packed unaligned dcl 450 set ref 146 gcs_status_bits based bit(72) packed unaligned dcl 414 set ref 146* gtssflag 1(05) 000072 external static bit(1) level 4 packed packed unaligned dcl 1-106 ref 129 hbound builtin function dcl 415 ref 60 304 hcs_$append_branchx 000042 constant entry external dcl 416 ref 137 i 000267 automatic fixed bin(24,0) dcl 437 set ref 60* 62 63* indicators 60 based structure level 2 dcl 6-10 indicators_word_1 60 based structure level 3 dcl 6-10 indicators_word_2 61 based structure level 3 dcl 6-10 indicators_word_3 62 based structure level 3 dcl 6-10 ioa_ 000044 constant entry external dcl 417 ref 230 278 327 ios_$attach 000074 constant entry external dcl 9-3 ref 243 318 ios_$order 000076 constant entry external dcl 9-18 ref 323 325 ios_$seek 000102 constant entry external dcl 9-45 ref 269 364 370 ios_$setsize 000100 constant entry external dcl 9-39 ref 249 ios_$tell 000104 constant entry external dcl 9-53 ref 258 354 ios_$write 000106 constant entry external dcl 9-61 ref 324 j 000270 automatic fixed bin(24,0) dcl 437 set ref 304* 305 307* l 000240 automatic fixed bin(21,0) dcl 418 set ref 354* 355 label 000241 automatic varying char(40) dcl 419 set ref 288* 292* 293 293 299* 299 300* 300 303* 303 306* 306 307* 307 318 319* 327* last 66 based fixed bin(21,0) level 2 dcl 6-10 set ref 258* 263 275* 353 length builtin function dcl 420 ref 77 ltrim builtin function dcl 421 ref 303 mc based structure level 1 dcl 7-12 mod builtin function dcl 422 ref 227 mode 000254 automatic char(2) packed unaligned dcl 423 set ref 239* 241* 243* 314* 316* 318* 370 name 000256 automatic char(8) packed unaligned dcl 424 set ref 77* 78* 79 243* 249* 258* 269* 318 323 324 325 327* 349* 354* 364* 370* null builtin function dcl 425 in procedure "gcos_attach_file_" ref 146 146 323 323 325 325 null 60(11) based bit(1) level 4 in structure "fib" packed packed unaligned dcl 6-10 in procedure "gcos_attach_file_" ref 56 346 nwr 000260 automatic fixed bin(21,0) dcl 426 set ref 324* pathnm 5 based char(168) level 2 packed packed unaligned dcl 6-10 set ref 92* 94* 97* 113* 113 131 192 243* 278* 339* 377* perm 60(03) based bit(1) level 4 packed packed unaligned dcl 6-10 ref 81 129 145 190 257 268 persid 000261 automatic char(1) packed unaligned dcl 427 set ref 136* plud 61 based bit(18) level 4 packed packed unaligned dcl 6-10 ref 145 print 60(04) based bit(1) level 4 packed packed unaligned dcl 6-10 ref 92 129 projid 000262 automatic char(9) packed unaligned dcl 428 set ref 136* 137 punch 60(05) based bit(1) level 4 packed packed unaligned dcl 6-10 ref 92 129 read 60(09) based bit(1) level 4 packed packed unaligned dcl 6-10 set ref 146 218* 239 reattachsw 000265 automatic bit(1) packed unaligned dcl 429 set ref 55* 255 338 348* rtrim builtin function dcl 430 ref 113 113 137 save_data 000072 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 packed unaligned dcl 2-6 scratch 000266 automatic bit(1) packed unaligned dcl 431 set ref 287* 291* 322 serial_no 62 based bit(30) level 4 packed packed unaligned dcl 6-10 set ref 283 283 293 293 size 67 based fixed bin(24,0) level 2 dcl 6-10 set ref 263* 265 265* status 000276 automatic structure level 1 unaligned dcl 9-76 in procedure "gcos_attach_file_" set ref 243* 249* 258* 269* 318* 323* 324* 325* 354* 364* 370* status 000272 automatic bit(12) initial level 2 in structure "gcs_status" packed packed unaligned dcl 450 in procedure "gcos_attach_file_" set ref 148 153 450* stream 3 based char(8) level 2 packed packed unaligned dcl 6-10 set ref 58 58 79* 278* 349 substr builtin function dcl 432 ref 69 71 71 74 94 217 229 syot_dir 247 000072 external static varying char(168) level 3 dcl 1-106 ref 92 tape 60(07) based bit(1) level 4 packed packed unaligned dcl 6-10 ref 83 tape_label 000000 constant structure level 1 dcl 439 set ref 324 324 tape_module 000016 constant char(5) initial packed unaligned dcl 433 set ref 318* timer_manager_$sleep 000046 constant entry external dcl 434 ref 233 tracks 60(21) based bit(2) level 4 packed packed unaligned dcl 6-10 ref 299 300 translate builtin function dcl 435 ref 113 type 60(02) based bit(1) level 4 packed packed unaligned dcl 6-10 ref 190 user_info_ 000050 constant entry external dcl 436 ref 136 write 60(10) based bit(1) level 4 packed packed unaligned dcl 6-10 set ref 146 218* 239 314 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abx internal static fixed bin(17,0) initial dcl 7-42 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_dollar defined bit(1) packed unaligned dcl 8-17 dbs_filecode defined bit(1) packed unaligned dcl 8-17 dbs_mme_call defined bit(1) packed unaligned dcl 8-17 dbs_mme_inos_stop defined bit(1) packed unaligned dcl 8-17 dbs_mme_inos_trace defined bit(1) packed unaligned dcl 8-17 dbs_msf_test defined bit(1) packed unaligned dcl 8-17 dbs_names internal static varying char(14) initial array dcl 8-3 dbs_nondollar defined bit(1) packed unaligned dcl 8-17 dbs_open_file defined bit(1) packed unaligned dcl 8-17 dbs_stop_mme defined bit(1) packed unaligned dcl 8-17 dbs_trace_mme defined bit(1) packed unaligned dcl 8-17 gcos_ext_stat_$abort_reason external static varying char(128) dcl 1-13 gcos_ext_stat_$abort_return external static label variable dcl 1-14 gcos_ext_stat_$activity_card_num external static picture(4) packed unaligned dcl 1-15 gcos_ext_stat_$activity_start_time external static fixed bin(71,0) dcl 1-17 gcos_ext_stat_$card_num external static picture(4) packed 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) packed unaligned dcl 1-20 gcos_ext_stat_$dir_rings external static fixed bin(3,0) array dcl 1-21 gcos_ext_stat_$dpno external static varying char(100) dcl 1-22 gcos_ext_stat_$dpo external static varying char(100) dcl 1-23 gcos_ext_stat_$endfc external static char(2) packed unaligned dcl 1-24 gcos_ext_stat_$er external static pointer dcl 1-25 gcos_ext_stat_$etc_filecode external static char(2) packed unaligned dcl 1-26 gcos_ext_stat_$gcos_gtss external static structure level 1 unaligned dcl 1-115 gcos_ext_stat_$gcos_slave_area_seg external static pointer dcl 1-27 gcos_ext_stat_$gf external static fixed bin(24,0) dcl 1-28 gcos_ext_stat_$incode external static fixed bin(24,0) dcl 1-29 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_$input_segment_path external static varying char(168) dcl 1-32 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_$last_mme external static fixed bin(24,0) dcl 1-37 gcos_ext_stat_$ldrss external static fixed bin(24,0) dcl 1-38 gcos_ext_stat_$max_activities external static fixed bin(24,0) dcl 1-39 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) packed unaligned dcl 1-42 gcos_ext_stat_$nongcos external static char(2) packed unaligned dcl 1-43 gcos_ext_stat_$normal_return external static label variable dcl 1-44 gcos_ext_stat_$patchfile_ptr external static pointer dcl 1-45 gcos_ext_stat_$pathname_prefix external static varying char(168) dcl 1-46 gcos_ext_stat_$pch external static pointer dcl 1-47 gcos_ext_stat_$pdir external static varying char(168) dcl 1-48 gcos_ext_stat_$prt external static pointer dcl 1-49 gcos_ext_stat_$rs external static pointer dcl 1-50 gcos_ext_stat_$saveseg_ptr external static pointer dcl 1-51 gcos_ext_stat_$sig_ptr external static pointer dcl 1-54 gcos_ext_stat_$skip_umc external static bit(1) packed unaligned dcl 1-55 gcos_ext_stat_$snumb external static bit(30) dcl 1-56 gcos_ext_stat_$sought_label external static char(8) packed unaligned dcl 1-57 gcos_ext_stat_$statistics external static fixed bin(24,0) array dcl 1-58 gcos_ext_stat_$stop_code external static fixed bin(24,0) dcl 1-59 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_$system_free_pointer external static pointer dcl 1-63 gcos_ext_stat_$temp_seg_ptr external static pointer dcl 1-66 gcos_ext_stat_$termination_code external static bit(18) packed 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) packed unaligned dcl 1-69 gcos_ext_stat_$validation_level external static fixed bin(3,0) dcl 1-70 ios_$detach 000000 constant entry external dcl 9-11 ios_$read 000000 constant entry external dcl 9-25 ios_$read_ptr 000000 constant entry external dcl 9-34 ios_$write_ptr 000000 constant entry external dcl 9-70 lbx internal static fixed bin(17,0) initial dcl 7-42 linked_file internal static bit(1) initial packed unaligned dcl 6-87 lpx internal static fixed bin(17,0) initial dcl 7-42 mcp automatic pointer dcl 7-10 random_file internal static bit(1) initial packed unaligned dcl 6-88 read_file internal static bit(1) initial packed 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 spx internal static fixed bin(17,0) initial dcl 7-42 write_file internal static bit(1) initial packed unaligned dcl 6-90 NAMES DECLARED BY EXPLICIT CONTEXT. attach_tape 002061 constant label dcl 282 set ref 83 attch 000665 constant label dcl 128 ref 81 350 determine_mode 002315 constant label dcl 312 ref 308 done 002602 constant label dcl 330 ref 56 280 error_rtrn 002607 constant label dcl 334 ref 134 141 151 156 195 206 214 223 246 252 261 272 gcos_attach_file_ 000340 constant entry external dcl 48 reattach 002641 constant entry external dcl 342 reattach_position 002664 constant label dcl 352 ref 255 reattach_return 003061 constant label dcl 375 ref 338 346 360 367 set_actid 000415 constant label dcl 68 ref 64 try_alloc_again 001406 constant label dcl 218 ref 234 try_allocation 001377 constant label dcl 216 ref 201 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3716 4026 3334 3726 Length 4450 3334 110 405 362 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_attach_file_ 268 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_attach_file_ 000100 acct gcos_attach_file_ 000102 actid gcos_attach_file_ 000104 alloc_count gcos_attach_file_ 000105 ascii_date_time gcos_attach_file_ 000114 ascii_time gcos_attach_file_ 000116 ascii_snumb gcos_attach_file_ 000120 busy_status gcos_attach_file_ 000121 dir_name gcos_attach_file_ 000173 entryname gcos_attach_file_ 000203 err_msg gcos_attach_file_ 000236 file_id gcos_attach_file_ 000240 l gcos_attach_file_ 000241 label gcos_attach_file_ 000254 mode gcos_attach_file_ 000256 name gcos_attach_file_ 000260 nwr gcos_attach_file_ 000261 persid gcos_attach_file_ 000262 projid gcos_attach_file_ 000265 reattachsw gcos_attach_file_ 000266 scratch gcos_attach_file_ 000267 i gcos_attach_file_ 000270 j gcos_attach_file_ 000272 gcs_status gcos_attach_file_ 000274 fibptr gcos_attach_file_ 000276 status gcos_attach_file_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac mdfx1 shorten_stack ext_entry clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ date_time_ expand_pathname_ gcos_cv_gebcd_ascii_ gcos_error_ gcos_ids2_concur_$allocate gcos_ids2_concur_$create_control gcos_ids2_concur_$have_xid gcos_verify_tss_access_ hcs_$append_branchx ioa_ ios_$attach ios_$order ios_$seek ios_$setsize ios_$tell ios_$write timer_manager_$sleep user_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$incorrect_access error_table_$namedup error_table_$notalloc error_table_$segknown gcos_ext_stat_$activity_name gcos_ext_stat_$dbs gcos_ext_stat_$fct gcos_ext_stat_$job_id gcos_ext_stat_$save_data gcos_ext_stat_$save_dir gcos_ext_stat_$seg_rings gcos_ext_stat_$tape_buffer_size gcos_ext_stat_$temp_dir LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 450 000331 48 000335 54 000346 55 000352 56 000353 58 000356 60 000370 62 000375 63 000405 64 000412 66 000413 68 000415 69 000416 71 000434 74 000451 77 000460 78 000511 79 000514 81 000520 83 000523 92 000526 94 000536 97 000547 113 000554 128 000665 129 000667 131 000700 132 000727 133 000731 134 000736 136 000737 137 000757 139 001072 140 001102 141 001107 145 001110 146 001120 148 001176 149 001203 150 001206 151 001213 153 001214 155 001216 156 001223 190 001224 192 001231 193 001261 194 001263 195 001270 198 001271 200 001301 201 001321 203 001327 205 001331 206 001336 208 001337 209 001340 212 001367 213 001371 214 001376 216 001377 217 001400 218 001406 221 001446 222 001450 223 001455 225 001456 226 001461 227 001462 228 001466 229 001505 230 001511 233 001541 234 001556 239 001557 241 001571 243 001573 244 001626 245 001630 246 001635 249 001636 250 001661 251 001663 252 001670 255 001671 257 001673 258 001677 259 001734 260 001736 261 001743 263 001744 265 001752 268 001756 269 001761 270 002017 271 002021 272 002026 275 002027 278 002031 280 002060 282 002061 283 002062 287 002071 288 002073 289 002077 291 002100 292 002101 293 002105 299 002127 300 002151 303 002165 304 002247 305 002255 306 002264 307 002276 308 002312 310 002313 312 002315 314 002316 316 002325 318 002327 319 002372 322 002421 323 002423 324 002456 325 002520 327 002553 330 002602 331 002603 332 002606 334 002607 338 002610 339 002612 340 002634 342 002635 345 002647 346 002653 348 002656 349 002660 350 002663 352 002664 353 002665 354 002670 355 002725 358 002733 359 002735 360 002742 364 002743 365 003001 366 003003 367 003010 370 003011 372 003052 375 003061 376 003062 377 003065 379 003123 ----------------------------------------------------------- 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