COMPILATION LISTING OF SEGMENT gtss_filact_funct18_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1322.9 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ************************************************************* 10* * * 11* * Copyright (c) 1979 by Honeywell Information Systems, Inc. * 12* * * 13* ************************************************************* */ 14 gtss_filact_funct18_: proc (mcp_val, high_val, gseg_val, arg_ptr_val, buffer_ptr_val, code); 15 16 /** Derail FILACT function 18 (Get Current). 17* 18* All parameters are input parameters except code. 19* 20* code retuurned 0 => Successful. 21* code returned 4 => GCOS err4 (see gtss_pnterr structure). 22* code returned othr => multics error code. 23* 24* Authors: Robert J. Grimes Created 25* - Albert N. Kepner 1978 26* - Robert M. May 27* - David B. Ward 28* Change: Dave Ward 02/24/79 $db debug switch. 29* Change: Bob Alvarado 08/08/79 reworked gcos_catalog proc. 30* Change: Dave Ward 08/31/79 ret status from ascii_file_name. 31* Change: Paul Benjamin 09/12/79 reinit deferred_catalog.nl to zero. 32* Change: Paul Benjamin 10/25/79 change status returned when expand_path says some directory non-existent 33* Change: Paul Benjamin 10/29/79 return "DSK" as device_name, and fill in some catalog information 34* Change: Paul Benjamin 11/05/79 Fix bug when doing cata when need both type1 and type 4 records 35* Change: Paul Benjamin 12/17/79 Interpret propagation acls. 36***/ 37 dcl mcp_val ptr parm; 38 dcl high_val bit(18)parm; 39 dcl gseg_val ptr parm; 40 dcl arg_ptr_val ptr parm; 41 dcl buffer_ptr_val ptr parm; 42 dcl code fixed bin(35)parm; 43 mcp = mcp_val; 44 high_b = high_val; 45 high_i = fixed (high_b, 18); 46 gseg = gseg_val; 47 arg_ptr = arg_ptr_val; 48 buffer_ptr = buffer_ptr_val; 49 50 code = 0; /* Successful. */ 51 52 /** Obtain get current catalog or file arglist. */ 53 if /* (Get_Current_args.L_arglist < low_b) | */ 54 ((fixed (Get_Current_args.L_arglist, 18) +1) > high_i) then do; 55 return_err4: ; 56 code = 4; 57 return; 58 end; 59 arglist_ptr = addrel (gseg, Get_Current_args.L_arglist); 60 61 /** Obtain return status. **/ 62 call validate_status (Get_Current_arglist.L_status_return, status_ptr); 63 64 if get_ascii_file_name ( 65 "0"b 66 , Get_Current_arglist.L_cat_filedescr 67 , addr (ascii_cat_file) 68 , grc 69 ) then do; 70 could_not_get_current_file: ; 71 status_word.pd = get_faulty_cat_file_entry (); 72 status_word.status = grc; /* Could not access file specified. */ 73 return; 74 end; 75 76 call gtss_expand_pathname_ ( 77 addr (ascii_cat_file) 78 , gtss_file_values.dname 79 , gtss_file_values.ename 80 , code 81 ); 82 if code ^= 0 then 83 goto could_not_get_current_file; 84 85 /** Return catalog or file FMS description in caller's buffer. **/ 86 87 FMS_cat_ptr = addr (callers_buffer.W43_FSBFER); 88 Get_Current_arglist.L_record = rel (FMS_cat_ptr); 89 90 Get_Current_arglist.device_name = "246242"b3; /* DSK */ 91 92 gtss_file_values.version = 1; 93 94 call gtss_attributes_mgr_$get (addr (gtss_file_values), code); 95 if code ^= 0 then do; 96 if code = error_table_$no_dir then grc = "400100"b3; 97 goto could_not_get_current_file; 98 end; 99 info_ptr = gtss_file_values.info_ptr; 100 101 if gtss_file_values.catalog then call gcos_catalog; 102 else call gcos_file; 103 104 code = 0; 105 status_word.status = "400000"b3; 106 return; 107 108 109 store_temp_name: proc (c, n); 110 111 /** Store name (n) in compact name list, of type (c). 112***/ 113 dcl c bit(1)parm; 114 dcl n char(*)parm; 115 116 deferred_catalog.cat = c; 117 deferred_catalog.rec_type = 2; /* => FMS file description record (to result). */ 118 deferred_catalog.nl = length (n); 119 deferred_catalog.ns = n; 120 deferred_catalog.next_nl = 0; /* Marks end of list. */ 121 def_cat_fill_len = def_cat_fill_len+1+divide (length (n)+3, 4, 17); /* Position to next name available. */ 122 return; 123 end /* store_temp_name */; 124 125 gcos_catalog: proc; 126 127 128 /** Accumulate the names of all Multics directories 129* as GCOS catalog entries (store in temporary name list). 130***/ 131 132 /** Initialize compact name list. **/ 133 def_cat_ptr = gtss_ext_$deferred_catalogs_ptr; 134 def_cat_fill_len = 0; 135 deferred_catalog.nl = 0; /* make sure not to re-cycle old stuff */ 136 name_info = empty (); 137 call hcs_$star_ ( 138 (rtrim (gtss_file_values.dname)||">"||gtss_file_values.ename) 139 , "**" /* All segments and directories. */ 140 , 3 /* Directories and segments (and links). */ 141 , addr (name_info) 142 , entry_count 143 , entry_ptr 144 , n_ptr 145 , code); 146 if code ^= 0 then do; 147 if code = error_table_$nomatch then goto get_files; 148 star_failed: ; 149 call com_err_ ( 150 code 151 , "gtss_drl_filact_|function(18)" 152 , "dname=^a ename=^a" 153 , gtss_file_values.dname 154 , gtss_file_values.ename 155 ); 156 goto could_not_get_current_file; 157 end; 158 159 dcl cat_file_string bit(cfdl)aligned based; 160 dcl cfdl fixed bin(35); 161 162 /** Move caller's catalog/file description to the 163* deferred catalog store. 164***/ 165 cfdl = 4*36*ascii_cat_file.nn; 166 deferred_catalog.cat_file_len = ascii_cat_file.nn; 167 addr (deferred_catalog.cat_file) -> cat_file_string = 168 addrel (gseg, Get_Current_arglist.L_cat_filedescr) -> cat_file_string; 169 170 /** Calculate total number of names. **/ 171 total_names = 0; 172 173 get_files: 174 do i = 1 to entry_count; 175 total_names = total_names+entries (i).nnames; 176 end; 177 178 /** locate gcos file and catalog entries and store in temporary name list **/ 179 /** this section should be re-written to use gtss_attributes_mgr_ because it is 180* sloppy and because it could show a non-gcos msf as a catalog **/ 181 do i = 1 to entry_count; 182 if entries (i).nnames = 9 then do; /* if added names not 9 don`t bother checking */ 183 do k = entries (i).nindex to entries (i).nindex + entries (i).nnames; 184 file_name = names (k); 185 ll = search (reverse (file_name), "."); /* find first occurence of . */ 186 if ll = 0 then goto not_add_name; 187 ll = length (file_name) - ll; 188 file_name = substr (file_name, 1, ll); /* drop last two chars */ 189 ll = search (reverse (file_name), "."); /* find next occurence of . */ 190 if ll = 0 then goto not_add_name; 191 ll = length (file_name) - ll + 2; 192 if substr (file_name, ll, 4) = "mode" then do; 193 file_name = substr (file_name, 1, ll-2); /* save name only */ 194 call store_temp_name ("0"b, rtrim (file_name)); 195 goto next_entry; 196 end; /* end file name entry */ 197 not_add_name: 198 end; /* end get file name */ 199 end; 200 /* store entry if it is a directory */ 201 if entries (i).type = "10"b then 202 call store_temp_name ("1"b, rtrim (names (entries (i).nindex))); 203 next_entry: 204 end; 205 206 names_accumulated: ; 207 208 FSnTYP_0.bits00_05 = "00"b3; /* => catalog. */ 209 call gtss_ascii_bcd_ ( 210 addr (ascii_cat_file.name (ascii_cat_file.nn)) 211 , 12 212 , addr (FS0_CNM_06_07) 213 ); 214 FS0_MOD_15 = BCD_date (branch.dtbm); 215 216 number_of_catalog_entries = 0; 217 cont_ptr = addr (FS0_CBK_04); /* Location sector number of continuation record. */ 218 last_sector_no = 0; 219 220 /** Store names in type 0 record and for up to 221* 4 type 1 records as is necessary. 222***/ 223 def_cat_type_1_ptr = addrel (def_cat_ptr, size (deferred_catalog)); 224 def_cat_fill_len = 0; 225 do while (deferred_catalog.nl>0); 226 call catalog_entry ( 227 deferred_catalog.cat 228 , deferred_catalog.ns 229 , rel (addr (deferred_catalog.type2_3)) 230 ); 231 def_cat_fill_len = def_cat_fill_len+1+divide (deferred_catalog.nl+3, 4, 17); /* Next name. */ 232 end; 233 catalog_finished: ; 234 FS0_ORG_10_11 = author (gtss_file_values.dname, gtss_file_values.ename); 235 call get_permissions ( 236 gtss_file_values.dname 237 , gtss_file_values.ename 238 , FS0_PER_17.bits00_11 239 , FS0_PBK_05.bits00_17 240 ); 241 return; 242 243 catalog_entry: proc (c, n, dsn); 244 245 /** Add name (n) to GCOS catalog record names list. 246* Parameter (c)=1 => entry is a catalog | (c)=0 => entry is file. 247* Parameter (dsn) is the deferred record sector number. 248***/ 249 dcl c bit(1)parm; 250 dcl n char(*)parm; 251 dcl dsn bit(18)parm; 252 number_of_catalog_entries = number_of_catalog_entries+1; 253 if db_filact_funct18 then 254 call ioa_ ("^3i. ^1b ^a", number_of_catalog_entries, c, n); 255 if number_of_catalog_entries <= hbound (FS0_VAR_22_76, 1) then do; /* Name for initial catalog record. */ 256 FS0_VAR_22_76 (number_of_catalog_entries).FS0_SNM_00_01 = (12)"20"b3; 257 call gtss_ascii_bcd_ ( 258 addr (n) 259 , min (length (n), 12) 260 , addr (FS0_VAR_22_76 (number_of_catalog_entries).FS0_SNM_00_01) 261 ); 262 FS0_VAR_22_76 (number_of_catalog_entries).FS0_SPT_02.bit01 = c; 263 FS0_VAR_22_76 (number_of_catalog_entries).FS0_SPT_02.bits18_35 = dsn; 264 end; 265 else do; /* Name for continuation catalog record. */ 266 j = number_of_catalog_entries-hbound (FS0_VAR_22_76, 1)-1; 267 i = divide (j, hbound (FS1_VAR_06_76, 1), 17)+1; /* Current sector no. 0,1,... */ 268 if i>4 then do; /* Remaining names provided in deferred type 1 record. */ 269 cont_ptr -> bit18, /* Link last type 1 record to 1st llink (deferred type 1 rec). */ 270 FS0_NLL_01.bits00_17 = rel (def_cat_type_1_ptr); /* Link type 0 record to 1st llink. */ 271 def_cat_type_1.cat = "1"b; 272 def_cat_type_1.zero = "0"b; 273 def_cat_type_1.rec_type = 1; 274 def_cat_type_1.sn = dsn; 275 goto catalog_finished; 276 end; 277 j = mod (j, hbound (FS1_VAR_06_76, 1))+1; /* Name index 1,2,...,19 */ 278 if j = 1 then do; /* Another catalog continuation record required. */ 279 Type_1_ptr = addrel (FMS_cat_ptr, size (Type_0_Catalog)+ ((i-1)*size (Type_1_Catalog))); 280 cont_ptr -> bit18 = bit (fixed (i, 18)); /* Sector number (0,1,2,...). */ 281 cont_ptr = addr (FS1_CBK_04); /* Reset to continuation link. */ 282 FS1_PTP_03.bits00_17 = last_sector_no; 283 last_sector_no = i; 284 Type_1_ptr -> FSnTYP_0.bits00_05 = "01"b3; /* => catalog continuation. */ 285 end; 286 FS1_VAR_06_76 (j).FS1_SNM_00_01 = (12)"20"b3; 287 call gtss_ascii_bcd_ ( 288 addr (n) 289 , min (length (n), 12) 290 , addr (FS1_VAR_06_76 (j).FS1_SNM_00_01) 291 ); 292 FS1_VAR_06_76 (j).FS1_SPT_02.bit01 = c; 293 FS1_VAR_06_76 (j).FS1_SPT_02.bits18_35 = dsn; 294 end; 295 return; 296 297 dcl i fixed bin; 298 dcl j fixed bin; 299 dcl k fixed bin; 300 end /* catalog_entry */; 301 302 dcl file_name char(32); 303 end /* gcos_catalog */; 304 305 gcos_file: proc; 306 FSnTYP_0.bits00_05 = "02"b3; /* => file. */ 307 call gtss_ascii_bcd_ (addr (ascii_cat_file.name (ascii_cat_file.nn)), 12, addr (FS2_FNM_06_07)); 308 FS2_ORG_10_11 = author (gtss_file_values.dname, gtss_file_values.ename); 309 FS2_PWD_12_13 = (12)"20"b3; /* Password is (BCD) blanks. */ 310 call gtss_ascii_bcd_ (addr (gtss_file_values.creation_date), 6, addr (FS2_CDT_14)); 311 FS2_MOD_15 = BCD_date (branch.dtbm); 312 call get_permissions ( 313 gtss_file_values.dname 314 , gtss_file_values.ename 315 , FS2_PER_17.bits00_11 316 , FS2_PBK_05.bits00_17 317 ); 318 FS2_PER_17.bits18_35 = gfv.maxll18_35; 319 call gtss_ascii_bcd_ (addr (ascii_cat_file.name (1)), 12, addr (FS2_MTR_20_21)); 320 FS2_FU1_22.bit01 = gtss_file_values.data_flags.mode_random; 321 FS2_FU1_22.bit04 = "1"b; /* => Max. file size in llinks. */ 322 FS2_FU1_22.bit05 = "0"b; /* File on structured device (see VAR field). */ 323 if gtss_file_values.attributes.attr ^= "0"b then do; 324 FS2_FU1_22.bit08 = "1"b; 325 FS2_FU1_22.bits12_17 = "64"b3; /* => Disk. */ 326 FS2_USI_24.bits01_35 = gtss_file_values.attributes.attr; 327 end; 328 FS2_FU1_22.bits18_35 = gfv.noal18_35; /* Number of allocations. */ 329 FS2_FUS_23.bits30_35 = "05"b3; /* Sectors in page. */ 330 FS2_USI_24.bit00 = ^gtss_file_values.data_flags.null_file; 331 FS2_FU2_25.bit16 = "1"b; /* Catalog or file on removable device. */ 332 FS2_FU2_25.bits18_35 = millsec512 (branch.dtm); 333 FS2_LCD_26 = BCD_date (branch.dtm); 334 FS2_LAD_27 = BCD_date (branch.dtu); 335 FS2_VAR_44_75.Device_descriptor.bits00_03 = "0101"b; /* => device descriptor. */ 336 FS2_VAR_44_75.Device_descriptor.bits06_35 = device_name (branch.device_id); 337 FS2_VAR_44_75.Space_descriptor.bit00 = "0"b; /* => Last space device. */ 338 FS2_VAR_44_75.Space_descriptor.bit01 = "0"b; /* Differentiates space from device descriptor. */ 339 FS2_VAR_44_75.Space_descriptor.bit02 = "0"b; /* Space is NOT defective. */ 340 FS2_VAR_44_75.Space_descriptor.bits03_17 = gfv.curll21_35; 341 FS2_VAR_44_75.Space_descriptor.bits18_35 = "0"b; /* Starting llink number. */ 342 return; 343 end /* gcos_file */; 344 345 device_name: proc (did)returns (bit (30)); 346 347 /** Convert Multics divice id to GCOS device name. **/ 348 dcl did bit(4)parm; 349 /** Multics does not provide device type. 350* c5 = char (did); 351* call gtss_ascii_bcd_ (addr (c5), 5, addr (bcd5)); 352* return (bcd5); 353*dcl c5 char(5); 354*dcl bcd5 bit(30); 355***/ 356 return ("2431624220"b3); /* => "DISK " bcd */ 357 358 end /* device_name */; 359 360 get_permissions: proc (dn, en, gp, sps); 361 362 /** Obtain GCOS general permissions (gp) from 363* Multics segment access for *.*.*. 364* Obtain GCOS specific permissions as GCOS catalog 365* type 4 (permissions) record from the 366* Multics accesses set for particular projects, *.proj.*. 367* Set (sps) to appropriate sector (of caller's return buffer catalog records) 368* if there are specifiec permissions. 369* Ignore all other Multics access. 370***/ 371 dcl dn char(*)parm; 372 dcl en char(*)parm; 373 dcl gp bit(12)parm; 374 dcl sps bit(18)parm; 375 376 acl_ptr = null (); 377 gp = "0"b; 378 sps = "0"b; 379 a = empty (); 380 if gtss_file_values.catalog then do; 381 call hcs_$list_dir_acl ( 382 dn 383 , en 384 , addr (a) 385 , acl_ptr 386 , null () 387 , acl_count 388 , code 389 ); 390 if code ^= 0 then do; 391 call com_err_ ( 392 code 393 , "gtss_drl_filact_|get_permissions", 394 """^a>^a""", dn, en); 395 return; 396 end; 397 end; 398 else do; 399 call hcs_$list_acl ( 400 dn 401 , en 402 , addr (a) 403 , acl_ptr /* Pointer to start of ACL list. */ 404 , null () /* Not requesting particular access. */ 405 , acl_count /* Number of access entries on segment. */ 406 , code 407 ); 408 if code ^= 0 then do; 409 if code = error_table_$dirseg then 410 call hcs_$list_acl ( 411 rtrim (dn)||">"||en 412 , "0" /* Use msf 0 component. */ 413 , addr (a) 414 , acl_ptr /* Pointer to start of ACL list. */ 415 , null () /* Not requesting particular access. */ 416 , acl_count /* Number of access entries on segment. */ 417 , code 418 ); 419 if code ^= 0 then do; 420 call com_err_ (code 421 , "gtss_drl_filact_/get_permissions", 422 """^a>^a""", dn, en); 423 return; 424 end; 425 end; 426 end; 427 spx = 0; 428 do i = 1 to acl_count; 429 if gtss_file_values.catalog then do; 430 if dir_acl.status_code (i) ^= 0 then do; 431 call com_err_ ( 432 dir_acl.status_code (i) 433 , "gtss_drl_filact_|get_permissions"); 434 goto next; 435 end; 436 n32 = dir_acl.access_name (i); 437 end; 438 else do; 439 if segment_acl.status_code (i) ^= 0 then do; 440 call com_err_ ( 441 segment_acl.status_code (i) 442 , "gtss_drl_filact_|get_permissions"); 443 goto next; 444 end; 445 n32 = segment_acl.access_name (i); 446 end; 447 /* Isolate Multics access person, project and tag names. */ 448 l1 = search (n32, "."); 449 l2 = search (reverse (n32), "."); 450 if (l1 = 0)| (l2 = 0) then do; 451 call com_err_ (0, "gtss_drl_filact_|get_permissions", "Bad name, ""^a""", n); 452 goto next; 453 end; 454 l3 = l2-verify (reverse (n32), " "); 455 l2 = length (n32)-l2-l1; 456 l1 = l1-1; 457 458 /* Ignore lower case acls */ 459 if n.person = "*" & ^gtss_file_values.catalog & search(n.project,"qwertyuiopasdfghjklzxcvbnm") = 0 then do; 460 string (m) = segment_acl.modes (i); 461 if n.project = "*" then do; /* => GCOS general permissions. */ 462 gp = m.read||m.write||"0"b||m.execute; 463 goto next; 464 end; 465 spx = spx+1; 466 if spx<23 then do; 467 if spx = 1 then do; /* First specific permission. */ 468 if Type_1_ptr = null () then var_ptr = FMS_cat_ptr; 469 else var_ptr = Type_1_ptr; 470 Type_4_ptr = addrel (var_ptr, size (Type_2_Catalog)); 471 unspec (Type_4_Catalog) = "0"b; 472 Type_4_ptr -> FMS_catalog = FMS_catalog; /* First 5 words from file record. */ 473 FS4_CBK_04 = "0"b; 474 Type_4_ptr -> FSnTYP_0.bits00_05 = "04"b3; /* => permissions. */ 475 sps = bit ((fixed (rel (Type_4_ptr), 17, 0)-fixed (rel (FMS_cat_ptr), 17, 0))/64); 476 upp = addr (Type_4_Catalog.FS4_VAR_07_75); /* Pointer to 1st specific permissions name pair. */ 477 end; 478 479 if mod (spx, 2) = 1 then do; /* 1st of name pair. */ 480 user_permission.n1 = (12)"20"b3; /* 12 bcd blanks. */ 481 call gtss_ascii_bcd_ ( 482 addr (n.project) 483 , min (12, l2) 484 , addr (user_permission.n1) 485 ); 486 user_permission.n1p = m.read||m.write||"0"b||m.execute; 487 end; 488 else do; /* 2nd of name pair */ 489 user_permission.n2 = (12)"20"b3; /* 12 bcd blanks. */ 490 call gtss_ascii_bcd_ ( 491 addr (n.project) 492 , min (12, l2) 493 , addr (user_permission.n2) 494 ); 495 user_permission.n2p = m.read||m.write||"0"b||m.execute; 496 upp = addr (user_permission.nxn); /* Next name pair. */ 497 end; 498 499 end; 500 else /* Over 22 names. */ 501 if spx = 23 then /* Issue error message once. */ 502 call com_err_ ( 503 0 504 , "gtss_drl_filact_|get_permissions" 505 , "Exceeded 22 specific permissions, remainder ignored." 506 ); 507 end; 508 else if verify (n.person, "10") = 0 & gtss_file_values.catalog then do; 509 string (m) = dir_acl.dir_modes (i); 510 if n.tag ^= "g" then goto next; 511 if n.project = "*" then do; 512 gp = bit (person); /* personid contains GCOS permissions. */ 513 goto next; 514 end; 515 spx = spx+1; 516 if spx<23 then do; 517 if spx = 1 then do; /* First specific permission. */ 518 if Type_1_ptr = null () then var_ptr = FMS_cat_ptr; 519 else var_ptr = Type_1_ptr; 520 Type_4_ptr = addrel (var_ptr, size (Type_2_Catalog)); 521 unspec (Type_4_Catalog) = "0"b; 522 Type_4_ptr -> FMS_catalog = FMS_catalog; /* First 5 words from file record. */ 523 FS4_CBK_04 = "0"b; 524 Type_4_ptr -> FSnTYP_0.bits00_05 = "04"b3; /* => permissions. */ 525 sps = bit ((fixed (rel (Type_4_ptr), 17, 0)-fixed (rel (FMS_cat_ptr), 17, 0))/64); 526 upp = addr (Type_4_Catalog.FS4_VAR_07_75); /* Pointer to 1st specific permissions name pair. */ 527 end; 528 529 if mod (spx, 2) = 1 then do; /* 1st of name pair. */ 530 user_permission.n1 = (12)"20"b3; /* 12 bcd blanks. */ 531 call gtss_ascii_bcd_ ( 532 addr (n.project) 533 , min (12, l2) 534 , addr (user_permission.n1) 535 ); 536 user_permission.n1p = bit (person); 537 end; 538 else do; /* 2nd of name pair */ 539 user_permission.n2 = (12)"20"b3; /* 12 bcd blanks. */ 540 call gtss_ascii_bcd_ ( 541 addr (n.project) 542 , min (12, l2) 543 , addr (user_permission.n2) 544 ); 545 user_permission.n2p = bit (person); 546 upp = addr (user_permission.nxn); /* Next name pair. */ 547 end; 548 549 end; 550 else /* Over 22 names. */ 551 if spx = 23 then /* Issue error message once. */ 552 call com_err_ ( 553 0 554 , "gtss_drl_filact_|get_permissions" 555 , "Exceeded 22 specific permissions, remainder ignored." 556 ); 557 end; 558 next: ; 559 end; 560 return; 561 562 dcl hcs_$list_acl entry(char(*),char(*),ptr,ptr,ptr,fixed bin,fixed bin(35)); 563 dcl hcs_$list_dir_acl entry(char(*),char(*),ptr,ptr,ptr,fixed bin,fixed bin(35)); 564 dcl upp ptr init(null()); 565 dcl i fixed bin; 566 dcl spx fixed bin; 567 dcl spe (100)fixed bin; 568 dcl a area(261120)aligned based(gtss_ext_$hcs_work_area_ptr); 569 dcl l1 fixed bin; 570 dcl l2 fixed bin; 571 dcl l3 fixed bin; 572 dcl n32 char(32)aligned; 573 574 dcl 1 m aligned, 575 2 read bit(01)unal, 576 2 execute bit(01)unal, 577 2 write bit(01)unal, 578 2 zero bit(33)unal; 579 580 dcl 1 n aligned based(addr(n32)), 581 2 person char(l1)unal, 582 2 period1 char(1)unal, 583 2 project char(l2)unal, 584 2 period2 char(1)unal, 585 2 tag char(l3)unal; 586 587 dcl 1 user_permission aligned based(upp), 588 2 n1 bit(72), 589 2 n1p bit(18)unal, 590 2 n2p bit(18)unal, 591 2 n2 bit(72), 592 2 nxn bit(36); 593 end /* get_permissions */; 594 595 millsec512: proc (d)returns (bit (18)); 596 597 /** Given the date (d) in Multics 36bit storage system time 598* format calculate the number of milliseconds / 512 599* since midnight (return value). 600***/ 601 dcl d bit(36)parm; 602 603 cv = 0; 604 cv36 = d; 605 606 call datebin_$preceding_midnight (cv, mcv); 607 return (bit (divide (cv-mcv, 512000, 18))); 608 609 dcl datebin_$preceding_midnight entry(fixed bin(71),fixed bin(71)); 610 dcl mcv fixed bin(71) /* Preceding midnight clock value. */; 611 dcl cv fixed bin(71)aligned /* Multics clock value. */; 612 613 dcl 1 cv2 aligned based(addr(cv)), 614 2 fill20 bit(20)unal, 615 2 cv36 bit(36)unal, 616 2 fill16 bit(16)unal; 617 end /* millsec512 */; 618 619 author: proc (dn, en)returns (bit (72)); 620 621 /** Obtain file originator from Multics author value. **/ 622 dcl dn char(168)parm; 623 dcl en char(032)parm; 624 625 call hcs_$get_author ( 626 dn 627 , en 628 , 1b /* Chase link. */ 629 , a /* Multics author (returned). */ 630 , code 631 ); 632 if code ^= 0 then 633 no_name: r = "4046513127314521634651"b3; /* "^ORIGINATOR"bcd */ 634 else do; 635 p1 = search (a, "."); 636 if p1 = 0 then goto no_name; 637 p2 = search (reverse (a), "."); 638 if p2 = 0 then goto no_name; 639 al = length (a)-p1-p2; 640 if al<1 then goto no_name; 641 call gtss_ascii_bcd_ (addr (ac (p1+1)), al, addr (r)); 642 end; 643 return (r); 644 645 dcl r bit(72)init((12)"20"b3); 646 dcl p1 fixed bin; 647 dcl p2 fixed bin; 648 dcl ac (32)char(1)unal based(addr(a)); 649 dcl hcs_$get_author entry(char(*),char(*),fixed bin(1),char(*),fixed bin(35)); 650 dcl a char(32); 651 dcl al fixed bin; 652 end /* author */; 653 654 BCD_date: proc (md)returns (bit (36)); 655 656 /** Convert Multics (36 bit) date value 657* to GCOS bcd MMDDYY. 658***/ 659 dcl md bit(36)parm; 660 call date_time_$fstime ((md), d24); 661 d6 = mm||dd||yy; 662 dcl d24 char(24); 663 dcl 1 d24_0vl based(addr(d24)), 664 2 mm char(2), 665 2 slash1 char(1), 666 2 dd char(2), 667 2 slash2 char(1), 668 2 yy char(2); 669 dcl d6 char(6); 670 dcl b36 bit(36); 671 call gtss_ascii_bcd_ (addr (d6), 6, addr (b36)); 672 return (b36); 673 674 dcl date_time_$fstime entry(bit(36)aligned, char(*)); 675 end /* BCD_date */; 676 1 1 /* BEGIN INCLUDE FILE gtss_filact_intp1.incl.pl1 */ 1 2 /* 1 3* Created: (Wardd Multics) 10/05/78 1600.9 mst Thu 1 4**/ 1 5 validate_status: proc (status_address, sp); 1 6 1 7 dcl status_address bit (18)parm; 1 8 dcl sp ptr parm; 1 9 dcl status_pointer ptr init(null()); 1 10 1 11 1 12 /** Assure 2 word status not above memory. **/ 1 13 if (status_address >= high_b) then goto return_err4; 1 14 1 15 /** Assure status words and arglist do not overlap. **/ 1 16 if (fixed(status_address,18)+1) >= fixed(filact_args.L_arglist,18) & 1 17 fixed (status_address, 18) <= (fixed (filact_args.L_arglist, 18)+ 1) then goto return_err4; 1 18 1 19 /** Obtain pointer to status words. **/ 1 20 sp, status_pointer = addrel (gseg, status_address); 1 21 unspec (status_pointer -> status_word) = "0"b; 1 22 return; 1 23 1 24 dcl 1 filact_args aligned based(arg_ptr), /* 1st word only. */ 1 25 2 zero bit(18)unal, 1 26 2 L_arglist bit(18)unal; 1 27 end /* validate_status */; 1 28 /* END INCLUDE FILE gtss_filact_intp1.incl.pl1 */ 677 678 2 1 /* BEGIN INCLUDE FILE gtss_filact_intp2.incl.pl1 */ 2 2 /* 2 3* Created: (Wardd Multics) 10/05/78 1601.2 mst Thu 2 4**/ 2 5 2 6 /* Change: Dave Ward 08/18/81 correct stringrange error. 2 7**/ 2 8 get_ascii_file_name: proc (fnia, cfdl, acfp, grc)returns (bit (1)); 2 9 2 10 /** Obtain the catalog/file description 2 11* in ascii. 2 12* Reset gcos retrun code (grc) only if error. 2 13***/ 2 14 dcl fnia bit(1)parm /* "1"b => file name in ascii. */; 2 15 dcl cfdl bit(18)parm /* Location of catalog file description. */; 2 16 dcl acfp ptr parm /* Pointer to ascii_cat_file structure. */; 2 17 dcl grc bit(18)parm /* GCOS return status code. */; 2 18 2 19 ap = acfp; /* Local value. */ 2 20 cat_filedescr_name_offset = "0"b; /* => offset to "current" name in catalog file description. */ 2 21 2 22 if /* (cfdl < low_b) | */ 2 23 (fixed (cfdl, 18)+5 > high_i) then do; 2 24 goto return_err4; 2 25 end; /* Require USERID and atleast file name. */ 2 26 descriptor_ptr = addrel (gseg, cfdl); 2 27 2 28 if cfd2.USERID = -1 then do; /* cfd2.USERID is that of current terminal user. */ 2 29 descriptor_ptr -> bit72 = gtss_ust.lid; 2 30 cfd2.USERID_password = (12)"20"b3; 2 31 end; 2 32 2 33 cat_filedescr_name_offset = cfdl; 2 34 2 35 do nic = 0 to 5; /* Search for end of list. */ 2 36 if nic = 0 then 2 37 if cdf4.end_of_list = -1 then do; /* Only a USERID. */ 2 38 acf.nn = 1; 2 39 goto gal; 2 40 end; 2 41 2 42 if (fixed (cfdl, 18)+ (nic*2)+6) > high_i then do; 2 43 goto return_err4; 2 44 end; /* cat/filedescr entry out of memory. */ 2 45 2 46 if cfd2.end_of_list = -1 then do; /* cat/filedescr isolated. */ 2 47 cat_filedescr_name_offset = 2 48 bit (fixed (fixed (cfdl, 18) + (nic*4) + 4, 18)); /* Offset to name entry (global). */ 2 49 acf.nn = nic+2; 2 50 2 51 gal: ; 2 52 do i = 1 to acf.nn; 2 53 2 54 /** Store catalog file description for expand path. **/ 2 55 2 56 if (i > 1) & (i = acf.nn) & fnia then do; 2 57 callers_buf.restore_switch = "000000000001"b3; /* => file name in ascii. */ 2 58 acf.name (i) = translate (cfd3 (i).name, 2 59 "abcdefghijklmnopqrstuvwxyz", 2 60 "ABCDEFGHIJKLMNOPQRSTUVWXYZ"); 2 61 end; 2 62 else 2 63 call gtss_bcd_ascii_$lc ( 2 64 addr (cfd3 (i).name) 2 65 , 12 2 66 , addr (acf.name (i)) 2 67 ); 2 68 end; 2 69 2 70 if substr (string (gtss_ext_$db), 09, 11) then do; 2 71 call ioa_ ("cat/filedescr:"); 2 72 do i = 1 to acf.nn; 2 73 call ioa_ ("^3i. ""^a""", i, acf.name (i)); 2 74 end; 2 75 end; 2 76 2 77 if substr (acf.name (1), 1, 6) = "!!!!!!" then 2 78 acf.name (1) = gse_ext_$umc_name; 2 79 callers_buf.file_id_in_ascii = 2 80 substr (acf.name (acf.nn), 1, length (callers_buf.file_id_in_ascii)); 2 81 2 82 /* Determine if there are illegal characters 2 83* in the name. 2 84**/ 2 85 do i = 1 to acf.nn; 2 86 if acf.name (i) = "*src" then return ("0"b); 2 87 if verify ( 2 88 rtrim (acf.name (i)) 2 89 , "0123456789abcdefghijklmnopqrstuvwxyz.-_" 2 90 )>0 then do; 2 91 grc = "403400"b3; /* Yes, illegal characters. */ 2 92 return ("1"b); 2 93 end; 2 94 end; 2 95 2 96 return ("0"b); /* Success. */ 2 97 end; 2 98 end; 2 99 2 100 /** cat/filedescr has no end of list marker. **/ 2 101 cat_filedescr_name_offset = "0"b; 2 102 grc = "403500"b3; /* Illegal cat/file desc. */ 2 103 return ("1"b); /* Failure. */ 2 104 2 105 dcl ap ptr /* Local acfp */; 2 106 dcl 1 acf aligned based(ap) like ascii_cat_file; 2 107 2 108 dcl 1 callers_buf aligned based(buffer_ptr), 2 109 3 restore_switch bit(36), 2 110 3 file_id_in_ascii char(8); 2 111 2 112 dcl 1 cfd2 aligned based(descriptor_ptr) /* 2nd description of catalog/file list. */ 2 113 , 3 user_master_catalog 2 114 , 4 USERID fixed bin(71) 2 115 , 4 USERID_password bit(72) 2 116 , 3 intermediate_catalogs (nic) 2 117 , 4 CATALOG bit(72) 2 118 , 4 CATALOG_password bit(72) 2 119 , 3 file_to_be_accessed 2 120 , 4 FILENAME bit(72) 2 121 , 4 FILENAME_password bit(72) 2 122 , 3 end_of_list fixed bin(35) 2 123 ; 2 124 2 125 dcl 1 cfd3 (7) aligned based(descriptor_ptr) /* 3rd description of catalog/file list. */ 2 126 , 3 name char(8) 2 127 , 3 password bit(72) 2 128 ; 2 129 2 130 dcl 1 cdf4 aligned based(descriptor_ptr) /* 4th description of catalog/file list. */ 2 131 , 3 user_master_catalog 2 132 , 4 USERID fixed bin(71) 2 133 , 4 USERID_password bit(72) 2 134 , 3 end_of_list fixed bin(35) 2 135 ; 2 136 end /* get_ascii_file_name */; 2 137 2 138 /* END INCLUDE FILE gtss_filact_intp2.incl.pl1 */ 679 680 3 1 /* BEGIN INCLUDE FILE gtss_filact_intp3.incl.pl1 */ 3 2 /* 3 3* Created: (Wardd Multics) 10/05/78 1601.4 mst Thu 3 4**/ 3 5 get_faulty_cat_file_entry: proc returns (bit (18)); 3 6 3 7 /** Locate offset to catalog file description entry 3 8* that caused search failure locating Multics entry. 3 9***/ 3 10 return (cat_filedescr_name_offset); 3 11 end /* get_faulty_cat_file_entry */; 3 12 /* END INCLUDE FILE gtss_filact_intp3.incl.pl1 */ 681 682 683 /** Declarations for gtss_drl_filact_: 684* IDENTIFIER ATTRIBUTES **/ 685 dcl addr builtin; 686 dcl addrel builtin; 687 dcl arglist_ptr ptr init(null()); 688 dcl arg_ptr ptr init(null()); 689 dcl bit builtin; 690 dcl bit18 bit(18)based; 691 dcl bit72 bit(72)aligned based; 692 dcl cat_filedescr_name_offset bit(18); 693 dcl cont_ptr ptr init(null()); 694 dcl descriptor_ptr ptr init(null()); 695 dcl divide builtin; 696 dcl empty builtin; 697 dcl entry_count fixed bin; 698 dcl entry_ptr ptr init(null()); 699 dcl error_table_$dirseg fixed bin (35) ext; 700 dcl error_table_$no_dir fixed bin (35) ext; 701 dcl error_table_$nomatch fixed bin (35) ext; 702 dcl fixed builtin; 703 dcl grc bit(18)init("400500"b3); 704 dcl gseg ptr init(null()); 705 dcl gtss_fail condition; 706 dcl hbound builtin; 707 dcl hcs_$star_ entry(char(*),char(*),fixed bin(2),ptr,fixed bin,ptr,ptr,fixed bin(35)); 708 dcl high_b bit(18)aligned; 709 dcl high_i fixed bin(18)aligned; 710 dcl i fixed bin(24); 711 dcl ioa_ entry options (variable); 712 dcl k fixed bin(24); 713 dcl last_sector_no fixed bin; 714 dcl length builtin; 715 dcl ll fixed bin(17); 716 dcl low_b bit(18)aligned static int options(constant)init("000147"b3) /* 103 dec. */; 717 dcl low_i fixed bin(18)aligned static int options(constant)init(103); 718 dcl min builtin; 719 dcl mod builtin; 720 dcl names (total_names)char(32)aligned based(n_ptr); 721 dcl name_info area(261120)aligned based(gtss_ext_$hcs_work_area_ptr); 722 dcl nic fixed bin(24); 723 dcl null builtin; 724 dcl number_of_catalog_entries fixed bin; 725 dcl n_ptr ptr init(null()); 726 dcl rel builtin; 727 dcl reverse builtin; 728 dcl search builtin; 729 dcl size builtin; 730 dcl status_ptr ptr init(null()); 731 dcl string builtin; 732 dcl substr builtin; 733 dcl rtrim builtin; 734 dcl total_names fixed bin; 735 dcl unspec builtin; 736 dcl var_ptr pointer; 737 dcl verify builtin; 738 739 dcl 1 entries (entry_count)aligned based(entry_ptr), 740 2 type bit(2)unal, 741 2 nnames fixed bin(15)unal, 742 2 nindex fixed bin(17)unal; 743 744 dcl 1 gfv aligned based(addr(gtss_file_values.data_fields)), 745 2 curll_val, 746 3 curll00_20 bit(21)unal, 747 3 curll21_35 bit(15)unal, 748 2 maxll_val, 749 3 maxll00_17 bit(18)unal, 750 3 maxll18_35 bit(18)unal, 751 2 nail_val, 752 3 noal00_17 bit(18)unal, 753 2 noal18_35 bit(18)unal; 754 755 dcl 1 status_word aligned based (status_ptr), 756 2 status bit (18) unaligned, 757 2 pd bit (18) unaligned, 758 2 null_bit bit (1) unaligned, 759 2 user_attributes bit (35) unaligned; 760 4 1 /* BEGIN INCLUDE FILE gtss_filact18_args.incl.pl1 */ 4 2 /* 4 3* Created: (Wardd Multics) 11/08/78 1747.5 mst Wed 4 4**/ 4 5 4 6 dcl 1 Get_Current_args aligned based(arg_ptr) 4 7 , 3 word1 4 8 , 4 zero bit(18)unal 4 9 , 4 L_arglist bit(18)unal 4 10 , 3 word2 4 11 , 4 Get_Current_function_no fixed bin(17)unal 4 12 , 4 L_buffer bit(18)unal 4 13 ; 4 14 4 15 dcl 1 Get_Current_arglist aligned based(arglist_ptr) 4 16 , 3 word1 4 17 , 4 L_status_return bit(18)unal 4 18 , 4 L_record bit(18)unal 4 19 , 3 word2 4 20 , 4 L_cat_filedescr bit(18)unal 4 21 , 4 device_name bit(18)unal 4 22 ; 4 23 4 24 /* END INCLUDE FILE gtss_filact18_args.incl.pl1 */ 761 762 5 1 /* BEGIN INCLUDE FILE gtss_ust_ext_.incl.pl1 */ 5 2 /* UST: User Status Table 5 3* definitions based on 5 4* System Tables, Order number DD14-01E, January 1981 5 5* Section 15, Time Sharing System 5 6* 5 7* Authors: Robert J. Grimes Created 5 8* - Albert N. Kepner 1978 5 9* - Robert M. May 5 10* - David B. Ward 5 11* Change: Dave Ward 02/23/79 Level 4 numbering. 5 12* Change: Ron Barstad 83-07-12 Repaired damaged formating and word offset comments 5 13* Brought up to 4JS3 functionality 5 14**/ 5 15 /* octal word offsets of entries */ 5 16 dcl 1 gtss_ust_ext_$ust aligned ext, 5 17 3 gtss_ust, 5 18 /* 0-1 */ 4 lid bit (72), 5 19 /* 2 */ 4 lstp bit (36), 5 20 /* 3 */ 4 ltin bit (36), 5 21 /* 4 */ 4 lstio, 5 22 5 no_of_chars_by_8 fixed bin (18) uns unal, 5 23 5 no_of_disk_io fixed bin (18) uns unal, 5 24 /* 5 */ 4 lsnub bit (36), 5 25 /* 6-7 */ 4 lchg bit (72), 5 26 /* 10 */ 4 lbuf, 5 27 5 address bit (18)unaligned, 5 28 5 tally bit (1)unaligned, 5 29 5 terminal_type bit (5)unaligned, 5 30 5 station_id bit (12)unaligned, 5 31 /* 11-12 */ 4 liost (0:1) bit (36), 5 32 /* 13 */ 4 lcc bit (36), 5 33 /* 14 */ 4 lback, 5 34 5 fill1 bit (18) unaligned, 5 35 5 gwake fixed bin (17) unaligned, 5 36 /* 15 */ 4 lflag, 5 37 5 mp_list bit (18) unaligned, 5 38 5 flags unaligned, 5 39 6 b18 bit (1) unaligned, 5 40 6 b19 bit (1) unaligned, 5 41 6 b20 bit (1) unaligned, 5 42 6 b21 bit (1) unaligned, 5 43 6 b22 bit (1) unaligned, 5 44 6 b23 bit (1) unaligned, 5 45 6 b24 bit (1) unaligned, 5 46 6 b25 bit (1) unaligned, 5 47 6 b26 bit (1) unaligned, 5 48 6 b27 bit (1) unaligned, 5 49 6 b28 bit (1) unaligned, 5 50 6 b29 bit (1) unaligned, 5 51 6 b30 bit (1) unaligned, 5 52 6 b31 bit (1) unaligned, 5 53 6 b32 bit (1) unaligned, 5 54 6 b33 bit (1) unaligned, 5 55 6 b34 bit (1) unaligned, 5 56 6 b35 bit (1) unaligned, 5 57 /* 16 */ 4 lkdss bit (36), 5 58 /* 17 */ 4 lfile, 5 59 5 program_stack fixed bin (17) unal, 5 60 5 file_list_ptr bit (18) unal, 5 61 /* 20 */ 4 lttys bit (36), 5 62 /* 21 */ 4 lswth, 5 63 5 b0 bit (1) unaligned, 5 64 5 b1 bit (1) unaligned, 5 65 5 b2 bit (1) unaligned, 5 66 5 b3 bit (1) unaligned, 5 67 5 b4 bit (1) unaligned, 5 68 5 b5 bit (1) unaligned, 5 69 5 b6 bit (1) unaligned, 5 70 5 b7 bit (1) unaligned, 5 71 5 b8 bit (1) unaligned, 5 72 5 b9 bit (1) unaligned, 5 73 5 b10 bit (1) unaligned, 5 74 5 b11 bit (1) unaligned, 5 75 5 b12 bit (1) unaligned, 5 76 5 b13 bit (1) unaligned, 5 77 5 b14 bit (1) unaligned, 5 78 5 b15 bit (1) unaligned, 5 79 5 b16 bit (1) unaligned, 5 80 5 b17 bit (1) unaligned, 5 81 5 b18 bit (1) unaligned, 5 82 5 b19 bit (1) unaligned, 5 83 5 b20 bit (1) unaligned, 5 84 5 b21 bit (1) unaligned, 5 85 5 b22 bit (1) unaligned, 5 86 5 b23 bit (1) unaligned, 5 87 5 b24 bit (1) unaligned, 5 88 5 b25 bit (1) unaligned, 5 89 5 b26 bit (1) unaligned, 5 90 5 b27 bit (1) unaligned, 5 91 5 b28 bit (1) unaligned, 5 92 5 b29 bit (1) unaligned, 5 93 5 b30 bit (1) unaligned, 5 94 5 b31 bit (1) unaligned, 5 95 5 b32 bit (1) unaligned, 5 96 5 b33 bit (1) unaligned, 5 97 5 b34 bit (1) unaligned, 5 98 5 b35 bit (1) unaligned, 5 99 /* 22 */ 4 lsize, 5 100 5 bar fixed bin (17) unaligned, 5 101 5 limit bit (18) unaligned, 5 102 /* 23... */ 4 lswap, 5 103 5 fill bit (18) unal, 5 104 5 size bit (18) unal, 5 105 /* ...24 */ 4 transfer_cell bit (36) unal, 5 106 /* 25 */ 4 lerrm bit (36), 5 107 /* 26-37 */ 4 lcfil (0:9) bit (36), 5 108 /* 40 */ 4 lsybc, 5 109 5 b0_17 fixed bin (17) unaligned, 5 110 5 b18_35 fixed bin (17) unaligned, 5 111 /* 41-42 */ 4 lstem (0:1) bit (36), 5 112 /* 43 */ 4 lcals, 5 113 5 b0_17 fixed bin (17) unaligned, 5 114 5 b18_35 bit (18) unaligned, 5 115 /* 44-51 */ 4 subsystems (3), 5 116 5 content_lswap, 5 117 6 fill bit (18) unal, 5 118 6 size bit (18) unal, 5 119 5 tally_address fixed bin (17) unaligned, 5 120 5 ss_flags bit (18) unaligned, 5 121 /* 52 */ 4 ltalc, 5 122 5 tod fixed bin (17) unaligned, 5 123 5 startup fixed bin (17) unaligned, 5 124 /* 53 */ 4 lspts fixed bin (35), 5 125 /* 54 */ 4 lflg2, 5 126 5 b0 bit (1) unaligned, 5 127 5 b1 bit (1) unaligned, 5 128 5 b2 bit (1) unaligned, 5 129 5 b3 bit (1) unaligned, 5 130 5 b4 bit (1) unaligned, 5 131 5 b5 bit (1) unaligned, 5 132 5 b6 bit (1) unaligned, 5 133 5 b7 bit (1) unaligned, 5 134 5 b8 bit (1) unaligned, 5 135 5 b9 bit (1) unaligned, 5 136 5 b10 bit (1) unaligned, 5 137 5 b11 bit (1) unaligned, 5 138 5 b12 bit (1) unaligned, 5 139 5 b13 bit (1) unaligned, 5 140 5 b14 bit (1) unaligned, 5 141 5 b15 bit (1) unaligned, 5 142 5 b16 bit (1) unaligned, 5 143 5 b17 bit (1) unaligned, 5 144 5 b18 bit (1) unaligned, 5 145 5 b19 bit (1) unaligned, 5 146 5 b20 bit (1) unaligned, 5 147 5 b21 bit (1) unaligned, 5 148 5 b22 bit (1) unaligned, 5 149 5 b23 bit (1) unaligned, 5 150 5 b24 bit (1) unaligned, 5 151 5 b25 bit (1) unaligned, 5 152 5 b26 bit (1) unaligned, 5 153 5 b27 bit (1) unaligned, 5 154 5 b28 bit (1) unaligned, 5 155 5 b29 bit (1) unaligned, 5 156 5 b30 bit (1) unaligned, 5 157 5 b31 bit (1) unaligned, 5 158 5 b32 bit (1) unaligned, 5 159 5 b33 bit (1) unaligned, 5 160 5 b34 bit (1) unaligned, 5 161 5 b35 bit (1) unaligned, 5 162 /* 55-60 */ 4 lsftm (0:3) bit (36), 5 163 /* 61 */ 4 lsprt fixed bin (35), 5 164 /* 62 */ 4 ltrm bit (36), 5 165 /* 63 */ 4 linno fixed bin (35), 5 166 /* 64 */ 4 lincr fixed bin (35), 5 167 /* 65 */ 4 ltdes bit (36), 5 168 /* 66 */ 4 lbptr bit (36), 5 169 /* 67 */ 4 lpptr, 5 170 5 last_file_pat_ptr bin (18) uns unal, 5 171 5 lpptr_reserved bin (18) uns unal, 5 172 /* 70 */ 4 lsclp bit (36), 5 173 /* 71 */ 4 limit fixed bin (35), 5 174 /* 72 */ 4 lacpt, 5 175 5 jout_pat_offset bit (18) unal, 5 176 5 permissions unal, 5 177 6 lodx bit (1) unal, 5 178 6 cardin bit (1) unal, 5 179 6 talk bit (1) unal, 5 180 6 lods bit (1) unal, 5 181 5 cardin_urgency bit (14) unal, 5 182 /* 73 */ 4 ldrl, 5 183 5 ilc bit (18) unaligned, 5 184 5 code fixed bin (17) unaligned, 5 185 /* 74 */ 4 ljsnb bit (36), 5 186 /* 75 */ 4 ltm0 bit (36), 5 187 /* 76 */ 4 ltm1 bit (36), 5 188 /* 77 */ 4 ltm2 bit (36), 5 189 /* 100 */ 4 ltm3 bit (36), 5 190 /* 101 */ 4 ltm4 bit (36), 5 191 /* 102 */ 4 ltm5 bit (36), 5 192 /* 103 */ 4 ltmwt bit (36), 5 193 /* 104 */ 4 ltmrs bit (36), 5 194 /* 105 */ 4 ltc0 bit (36), 5 195 /* 106 */ 4 ltc1 bit (36), 5 196 /* 107 */ 4 ltc2 bit (36), 5 197 /* 110 */ 4 lct3 bit (36), 5 198 /* 111 */ 4 ltc4 bit (36), 5 199 /* 112 */ 4 ltc5 bit (36), 5 200 /* 113 */ 4 ltcw bit (36), 5 201 /* 114 */ 4 lkst bit (36), 5 202 /* 115 */ 4 lkst2 bit (36), 5 203 /* 116 */ 4 lkcc bit (36), 5 204 /* 117 */ 4 lkms bit (36), 5 205 /* 120-121 */ 4 lksdc (0:1) bit (36), 5 206 /* 122 */ 4 lkntp bit (36), 5 207 /* 123 */ 4 lkrdc bit (36), 5 208 /* 124 */ 4 lpqf bit (36), 5 209 /* 125 */ 4 lpqb bit (36), 5 210 /* 126 */ 4 lustl bit (36), 5 211 /* 127 */ 4 ltemp bit (36), 5 212 /* 130 */ 4 lrtll, 5 213 5 word_length fixed bin unaligned, 5 214 5 char_length fixed bin unaligned, 5 215 /* 131 */ 4 ltim bit (36), 5 216 /* 132 */ 4 lcfio, 5 217 5 sect_out fixed bin(18)unsigned unal, 5 218 5 sect_in fixed bin(18)unsigned unal, 5 219 /* 133 */ 4 lcfst, 5 220 5 initial_sect_out fixed bin(18)unsigned unal, 5 221 5 start_term fixed bin(18)unsigned unal, 5 222 /* 134 */ 4 lcmpt bit (36), 5 223 /* 135 */ 4 lcjid bit (36), 5 224 /* 136-137 */ 4 lrcal (0:1) bit (36), 5 225 /* 140 */ 4 lrdta bit (36), 5 226 /* 141 */ 4 lrrsk bit (36), 5 227 /* 142 */ 4 lrskd bit (36), 5 228 /* 143 */ 4 lrcc bit (36), 5 229 /* 144-145 */ 4 lrsts (0:1) bit (36), 5 230 /* 146 */ 4 lrtm bit (36), 5 231 /* 147 */ 4 lswt2, 5 232 5 b0 bit (1) unaligned, 5 233 5 b1 bit (1) unaligned, 5 234 5 b2 bit (1) unaligned, 5 235 5 b3 bit (1) unaligned, 5 236 5 b4 bit (1) unaligned, 5 237 5 b5 bit (1) unaligned, 5 238 5 b6 bit (1) unaligned, 5 239 5 b7 bit (1) unaligned, 5 240 5 b8 bit (1) unaligned, 5 241 5 b9 bit (1) unaligned, 5 242 5 b10 bit (1) unaligned, 5 243 5 b11 bit (1) unaligned, 5 244 5 b12 bit (1) unaligned, 5 245 5 b13 bit (1) unaligned, 5 246 5 b14 bit (1) unaligned, 5 247 5 b15 bit (1) unaligned, 5 248 5 b16 bit (1) unaligned, 5 249 5 b17 bit (1) unaligned, 5 250 5 b18 bit (1) unaligned, 5 251 5 b19 bit (1) unaligned, 5 252 5 b20 bit (1) unaligned, 5 253 5 b21 bit (1) unaligned, 5 254 5 b22 bit (1) unaligned, 5 255 5 b23 bit (1) unaligned, 5 256 5 b24 bit (1) unaligned, 5 257 5 b25 bit (1) unaligned, 5 258 5 b26 bit (1) unaligned, 5 259 5 b27 bit (1) unaligned, 5 260 5 b28 bit (1) unaligned, 5 261 5 b29 bit (1) unaligned, 5 262 5 b30 bit (1) unaligned, 5 263 5 b31 bit (1) unaligned, 5 264 5 b32 bit (1) unaligned, 5 265 5 b33 bit (1) unaligned, 5 266 5 b34 bit (1) unaligned, 5 267 5 b35 bit (1) unaligned, 5 268 /* 150 */ 4 llsnb bit (36), 5 269 /* 151 */ 4 lesq bit (36), 5 270 /* 152-153 */ 4 lumc (0:1) bit (36), 5 271 /* 154-155 */ 4 lfnam (0:1) bit (36), 5 272 /* 156 */ 4 lopts bit (36), 5 273 /* 157 */ 4 licec, 5 274 5 b0_17 bit (18) unaligned, 5 275 5 b18_35 fixed bin (17) unaligned, 5 276 /* 160 */ 4 lflg3, 5 277 5 b0 bit (1) unaligned, 5 278 5 b1 bit (1) unaligned, 5 279 5 b2 bit (1) unaligned, 5 280 5 b3 bit (1) unaligned, 5 281 5 b4 bit (1) unaligned, 5 282 5 b5 bit (1) unaligned, 5 283 5 b6 bit (1) unaligned, 5 284 5 b7 bit (1) unaligned, 5 285 5 b8 bit (1) unaligned, 5 286 5 b9 bit (1) unaligned, 5 287 5 b10 bit (1) unaligned, 5 288 5 b11 bit (1) unaligned, 5 289 5 b12 bit (1) unaligned, 5 290 5 b13 bit (1) unaligned, 5 291 5 b14 bit (1) unaligned, 5 292 5 b15 bit (1) unaligned, 5 293 5 b16 bit (1) unaligned, 5 294 5 b17 bit (1) unaligned, 5 295 5 b18 bit (1) unaligned, 5 296 5 b19 bit (1) unaligned, 5 297 5 b20 bit (1) unaligned, 5 298 5 b21 bit (1) unaligned, 5 299 5 b22 bit (1) unaligned, 5 300 5 b23 bit (1) unaligned, 5 301 5 b24 bit (1) unaligned, 5 302 5 b25 bit (1) unaligned, 5 303 5 b26 bit (1) unaligned, 5 304 5 b27 bit (1) unaligned, 5 305 5 b28 bit (1) unaligned, 5 306 5 b29 bit (1) unaligned, 5 307 5 b30 bit (1) unaligned, 5 308 5 b31 bit (1) unaligned, 5 309 5 b32 bit (1) unaligned, 5 310 5 b33 bit (1) unaligned, 5 311 5 b34 bit (1) unaligned, 5 312 5 b35 bit (1) unaligned, 5 313 /* 161-163 */ 4 lpage (0:2) bit (36), 5 314 /* 164 */ 4 lsit1 bit (36), 5 315 /* 165 */ 4 lsit2 bit (36), 5 316 /* 166 */ 4 lsit3 bit (36), 5 317 /* 167 */ 4 lsit4 bit (36), 5 318 /* The following entries are maintained by gtss and are not found in TSS UST */ 5 319 /* 170 */ 4 lxxx, /* program stack index, offset from gtss_ust */ 5 320 5 b0_17 fixed bin (17) unaligned, 5 321 5 b18_35 bit (18) unaligned, /* not used */ 5 322 /* 171-175 */ 4 lprgs (5), 5 323 5 b0_17 fixed bin (17) unaligned, 5 324 5 b18_35 fixed bin (17) unaligned, 5 325 /* 176 */ 4 fill bit (36), 5 326 /* 177 */ 4 remote_io_buffer aligned, 5 327 5 buffer_control_word, 5 328 6 current_line_pointer bit (18)unal, 5 329 6 buffer_threshold_address bit (18)unal, 5 330 5 number_words_transmitted fixed bin (17)unal, 5 331 5 FILL1 fixed bin (17)unal, 5 332 5 count_of_characters_transmitted fixed bin (17)unal, 5 333 5 FILL2 fixed bin (17)unal, 5 334 5 characters_transmitted (244) char (1) unal, 5 335 /* 277 */ 4 word_after_ust bit (36) aligned; 5 336 5 337 /* END INCLUDE FILE gtss_ust_ext_.incl.pl1 */ 763 764 6 1 /* BEGIN INCLUDE FILE gtss_ext_.incl.pl1 */ 6 2 /* 6 3* Created: (Wardd Multics) 05/20/78 1307.6 mst Sat 6 4* Modified: Ward 1981 add suspended_process dcl 6 5* Modified: Ron Barstad 83-07-21 Fixed level number on mcfc to 3 6 6* Modified: Ron Barstad 83-07-25 Fixed derail range in statistics to 4js3 number 6 7**/ 6 8 dcl gtss_ext_$aem fixed bin static ext /* >0 Print "additional" error information. */; 6 9 dcl gtss_ext_$bad_drl_rtrn static ext label /* Default for drl_rtrn. */; 6 10 dcl gtss_ext_$db (72)bit(1)unal static ext; 6 11 dcl gtss_ext_$deferred_catalogs_ptr ptr ext; 6 12 dcl gtss_ext_$dispose_of_drl static ext label /* quit handlers for some derails use this label to abort */; 6 13 dcl gtss_ext_$drl_rtrn (4)static ext label /* where to return at subsystem end */; 6 14 dcl gtss_ext_$drm_path char(168)static ext /* gtss_expand_pathname_stores drm_path */; 6 15 dcl gtss_ext_$drun_jid char (5) static ext /* valid only for DRUN executing under absentee */; 6 16 dcl gtss_ext_$event_channel fixed bin (71) static ext /* used for DABT signals */; 6 17 dcl gtss_ext_$finished static ext label /* Return to gtss for normal conclusion. */; 6 18 dcl gtss_ext_$gdb_name char(8)ext /* Name H* module to debug. */; 6 19 dcl gtss_ext_$get_line entry(ptr,ptr,fixed bin(21),fixed bin(21),fixed bin(35))variable ext /* Build mode input procedure. */; 6 20 dcl gtss_ext_$gtss_slave_area_seg (4) ext static ptr /* pointer to gtss slave area segment */; 6 21 dcl gtss_ext_$hcs_work_area_ptr ptr ext static /* Temp seg for acl lists. */; 6 22 dcl gtss_ext_$homedir char (64) static ext /* user's home dir */; 6 23 dcl gtss_ext_$last_k_was_out bit (1)aligned ext static /* "1"b => last tty output was output. */; 6 24 dcl gtss_ext_$pdir char (168) varying ext static /* pathname of process directory */; 6 25 dcl gtss_ext_$popup_from_pi static ext label /* transfer to this label after pi simulates popup primitive */; 6 26 dcl gtss_ext_$process_type fixed bin (17) static ext; 6 27 dcl gtss_ext_$put_chars entry(ptr,ptr,fixed bin(24),fixed bin(35)) variable ext /* Terminal output procedure. */; 6 28 dcl gtss_ext_$restart_from_pi static ext label /* transfer to this label after pi restores machine conditions */; 6 29 dcl gtss_ext_$restart_seg_ptr ptr static ext /* points to DRUN restart file when exec under absentee */; 6 30 dcl gtss_ext_$sig_ptr ext static ptr /* saved ptr to signal_ */; 6 31 dcl gtss_ext_$stack_level_ fixed bin ext static; 6 32 dcl gtss_ext_$suspended_process bit(1) ext static; 6 33 dcl gtss_ext_$SYstarstar_file_no fixed bin (24) static ext; 6 34 dcl gtss_ext_$user_id char (26)var ext; 6 35 dcl gtss_ext_$work_area_ptr ptr ext; 6 36 6 37 dcl 1 gtss_ext_$CFP_bits aligned static external 6 38 , 3 no_input_yet bit (1) unaligned /* used in gtss_CFP_input_, gtss_read_starCFP_ */ 6 39 , 3 rtn_bits bit (4) unaligned /* used in gtss_CFP_input_, gtss_CFP_output_ */ 6 40 , 3 cpos_called bit (1) unaligned /* used in gtss_CFP_input_, gtss_drl_t_cfio_, gtss_abandon_CFP_ */ 6 41 , 3 cout_called bit (1) unaligned /* used in gtss_read_starCFP_, gtss_abandon_CFP_ */ 6 42 , 3 build_mode bit (1) unaligned /* used in gtss_build_, gtss_dsd_process_ */ 6 43 ; 6 44 6 45 dcl 1 gtss_ext_$com_reg aligned static ext, 6 46 3 tsdmx, 6 47 4 dst fixed bin (18) unsigned unaligned, 6 48 4 dit fixed bin (18) unsigned unaligned, 6 49 3 tsdpt fixed bin (36) unsigned unaligned, 6 50 3 tsddt fixed bin (36) unsigned unaligned, 6 51 3 tsdid bit (72) unaligned, 6 52 3 tsdsd bit (36) unaligned, 6 53 3 tsdst fixed bin (36) unsigned unaligned, 6 54 3 tsdjb fixed bin (35) unaligned, 6 55 3 tsdgt, 6 56 4 ust_loc fixed bin (18) unsigned unaligned, 6 57 4 gating_ctl fixed bin (18) unsigned unaligned, 6 58 3 tcdfr bit (36) unaligned; 6 59 6 60 dcl 1 gtss_ext_$flags aligned static ext 6 61 , 3 dispose_of_drl_on_pi bit (01) unal /* 1 => drl that should be aborted after quit-pi sequence */ 6 62 , 3 drl_in_progress bit (01) unal /* 1 => drl handler executing; 0 => gcos code executing */ 6 63 , 3 popup_from_pi bit (01) unal /* 1 => derail processor will simulate Gcos break instead of returning */ 6 64 , 3 unfinished_drl bit (01) unal /* 1 => subsystem is handling breaks and quit was raised during a drl */ 6 65 , 3 ss_time_limit_set bit (01) unal /* 1 => exec time limit set for subsystem */ 6 66 , 3 timer_ranout bit (01) unal /* 1 => user is executing timer runout code */ 6 67 , 3 gtss_com_err_sw bit (01) unal /* 1 => stop com_err_ string from going to terminal */ 6 68 , 3 available bit (65) unal 6 69 ; 6 70 6 71 6 72 dcl 1 gtss_ext_$statistics aligned static ext, /* Derail usage statistics */ 6 73 3 total_time (-10:71)fixed bin (71), 6 74 3 count (-10:71)fixed bin (17); 6 75 6 76 /* Declaration of Available File Table 6 77* */ 6 78 dcl 1 gtss_ext_$aft aligned ext, /* aft structure */ 6 79 6 80 3 start_list (0:102) fixed bin (24), /* >0 => 1st aft_entry row to start of next entry chain. */ 6 81 6 82 3 aft_entry (20), 6 83 4 altname char (8), /* altname name for attaching this file */ 6 84 4 next_entry fixed bin (24), /* Next aft_entry in hash chain. */ 6 85 4 previous_add fixed bin (24), /* Previously added entry. */ 6 86 4 next_add fixed bin (24), /* Entry added after this one. */ 6 87 4 used bit (1) unal, /* "1"b => aft_entry contains AFT value. */ 6 88 4 forced bit(1) unal, /* "1"b => gtss_verify_access_ forced access on this file. */ 6 89 6 90 3 free_space fixed bin (24), /* Index of start of free space list for aft entries. */ 6 91 3 first_added fixed bin (24), /* >0 => start of chain in add order. */ 6 92 3 last_added fixed bin (24) /* >0 => end of chain in added order. */; 6 93 6 94 dcl gtss_ext_$ppt ptr ext /* switch name for tapein drl */; 6 95 /** Data structure to provide access to installed 6 96* subsystems fast library load. 6 97* **/ 6 98 dcl 1 gtss_ext_$fast_lib aligned ext 6 99 , 3 fast_lib_fcb ptr /* Pointer to msf fcb. */ 6 100 , 3 fast_lib_ncp fixed bin (24) /* Number of components. */ 6 101 , 3 comp_ptr (0:9)ptr /* Pointer to component. */ 6 102 , 3 comp_wds (0:9)fixed bin (24) /* Component length (words). */ 6 103 ; 6 104 6 105 /* Pointers to segments to regulate multipler 6 106* callers to files. Same segments are used to regulate 6 107* all simulator callers. 6 108**/ 6 109 dcl 1 gtss_ext_$mcfc aligned ext, 6 110 3 multics_lock_id bit(36), 6 111 3 wait_time fixed bin, 6 112 3 files_ptr ptr, 6 113 3 names_ptr ptr, 6 114 3 callers_ptr (0:3)ptr 6 115 ; 6 116 6 117 /* END INCLUDE FILE gtss_ext_.incl.pl1 */ 765 766 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 */ 767 768 8 1 /* BEGIN INCLUDE FILE gtss_entry_dcls.incl.pl1 */ 8 2 /* 8 3* Created: (Wardd Multics) 06/30/78 1624.8 mst Fri 8 4* Modified: Ron Barstad 84-02-24 Fixed wrong and obsolete entries 8 5**/ 8 6 8 7 /** gtss external entry variables. **/ 8 8 dcl com_err_ entry() options(variable); 8 9 dcl gtss_CFP_abort_ entry options(variable); 8 10 dcl gtss_CFP_break_ entry options(variable); 8 11 dcl gtss_CFP_input_ entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 8 12 dcl gtss_CFP_output_ entry (ptr, ptr, fixed bin(21), fixed bin(35)); 8 13 dcl gtss_abandon_CFP_ entry options(variable); 8 14 dcl gtss_abort_dump_ entry (fixed bin(18)); 8 15 dcl gtss_abort_subsystem_ entry options (variable); 8 16 dcl gtss_abort_subsystem_$not_imp entry (ptr, fixed bin(24)); 8 17 dcl gtss_abs_login_banner_ entry() returns(char(*)); 8 18 dcl gtss_abs_logout_banner_ entry() returns(char(*)); 8 19 dcl gtss_abs_$abs_equiv entry options(variable); 8 20 dcl gtss_abs_$cpu_runout entry (ptr, char(4)); 8 21 dcl gtss_abs_$create_absin entry() returns(char(*)); 8 22 dcl gtss_abs_$dabt_check entry (ptr, char(4)); 8 23 dcl gtss_abs_$get_id entry (char(5)) returns(char(19)); 8 24 dcl gtss_abs_$get_drm entry() returns(char(*)); 8 25 dcl gtss_adjust_size_ entry (ptr); 8 26 dcl gtss_aft_$add entry (char(8), fixed bin(24), fixed bin(35)); 8 27 dcl gtss_aft_$delete entry (char(8), fixed bin(24), fixed bin(35)); 8 28 dcl gtss_aft_$find entry (char(8), fixed bin(24), fixed bin(35)); 8 29 dcl gtss_aft_$initialize entry (fixed bin(35)); 8 30 dcl gtss_ascii_bcd_ entry (ptr, fixed bin, ptr); 8 31 dcl gtss_attributes_mgr_$get entry (ptr, fixed bin(35)); 8 32 dcl gtss_attributes_mgr_$set entry (ptr, fixed bin(35)); 8 33 dcl gtss_bcd_ascii_ entry (ptr, fixed bin(24), ptr); 8 34 dcl gtss_bcd_ascii_$lc entry (ptr, fixed bin(24), ptr); 8 35 dcl gtss_break_vector_ entry (); 8 36 dcl gtss_break_vector_$drl_in_progress entry() returns(bit(1)); 8 37 dcl gtss_break_vector_$status entry() returns(bit(1)); 8 38 dcl gtss_build_ entry options(variable); 8 39 dcl gtss_com_err_ entry options(variable); 8 40 dcl gtss_derail_processor_ entry (ptr, char(*), ptr, ptr, bit(1) aligned) /* called at fault time instead of signal_ */; 8 41 dcl gtss_derail_processor_$set entry options(variable); 8 42 dcl gtss_dq_$catp entry (char (5), ptr, fixed bin (18) unsigned); 8 43 dcl gtss_dq_$create entry (bit(1)); 8 44 dcl gtss_dq_$dibp entry (char(5), ptr); 8 45 dcl gtss_dq_$entries_info entry (ptr, fixed bin (18) unsigned, fixed bin (18) unsigned); 8 46 dcl gtss_dq_$hdrp entry (ptr); 8 47 dcl gtss_dq_$mod_js entry (char(5), fixed bin (6) unsigned, bit (1)); 8 48 dcl gtss_dq_$open_exc entry (bit(1)); 8 49 dcl gtss_dq_$open_gen entry (bit(1)); 8 50 dcl gtss_drl_abort_ entry (ptr, fixed bin); 8 51 dcl gtss_drl_addmem_ entry (ptr, fixed bin); 8 52 dcl gtss_drl_callss_ entry (ptr, fixed bin); 8 53 dcl gtss_drl_corfil_ entry (ptr, fixed bin); 8 54 dcl gtss_drl_defil_ entry (ptr, fixed bin); 8 55 dcl gtss_drl_defil_$subr entry (ptr, ptr, ptr); 8 56 dcl gtss_drl_dio_ entry (ptr, fixed bin); 8 57 dcl gtss_drl_drlimt_ entry (ptr, fixed bin); 8 58 dcl gtss_drl_drlsav_ entry (ptr, fixed bin); 8 59 dcl gtss_drl_filact_ entry (ptr, fixed bin); 8 60 dcl gtss_drl_filsp_ entry (ptr, fixed bin); 8 61 dcl gtss_drl_grow_ entry (ptr, fixed bin); 8 62 dcl gtss_drl_gwake_ entry (ptr, fixed bin); 8 63 dcl gtss_drl_jsts_ entry (ptr, fixed bin); 8 64 dcl gtss_drl_kin_ entry (ptr, fixed bin); 8 65 dcl gtss_drl_kotnow_ entry (ptr, fixed bin); 8 66 dcl gtss_drl_kotnow_$gtss_drl_kout_ entry (ptr, fixed bin); 8 67 dcl gtss_drl_koutn_ entry (ptr, fixed bin); 8 68 dcl gtss_drl_morlnk_ entry (ptr, fixed bin); 8 69 dcl gtss_drl_msub_ entry (ptr, fixed bin); 8 70 dcl gtss_drl_objtim_ entry (ptr, fixed bin); 8 71 dcl gtss_drl_part_ entry (ptr, fixed bin); 8 72 dcl gtss_drl_pasaft_ entry (ptr, fixed bin); 8 73 dcl gtss_drl_pasdes_ entry (ptr, fixed bin); 8 74 dcl gtss_drl_pasust_ entry (ptr, fixed bin); 8 75 dcl gtss_drl_pdio_ entry (ptr, fixed bin); 8 76 dcl gtss_drl_prgdes_ entry (ptr, fixed bin); 8 77 dcl gtss_drl_pseudo_ entry (ptr, fixed bin); 8 78 dcl gtss_drl_relmem_ entry (ptr, fixed bin); 8 79 dcl gtss_drl_restor_ entry (ptr, fixed bin); 8 80 dcl gtss_drl_retfil_ entry (ptr, fixed bin); 8 81 dcl gtss_drl_return_ entry (ptr, fixed bin); 8 82 dcl gtss_drl_rew_ entry (ptr, fixed bin); 8 83 dcl gtss_drl_rstswh_ entry (ptr, fixed bin); 8 84 dcl gtss_drl_setlno_ entry (ptr, fixed bin); 8 85 dcl gtss_drl_setswh_ entry (ptr, fixed bin); 8 86 dcl gtss_drl_snumb_ entry (ptr, fixed bin); 8 87 dcl gtss_drl_spawn_ entry (ptr, fixed bin); 8 88 dcl gtss_drl_spawn_$gtss_drl_pasflr_ entry (ptr, fixed bin); 8 89 dcl gtss_drl_stoppt_ entry (ptr, fixed bin); 8 90 dcl gtss_drl_switch_ entry (ptr, fixed bin); 8 91 dcl gtss_drl_sysret_ entry (ptr, fixed bin); 8 92 dcl gtss_drl_t_cfio_ entry (ptr, fixed bin); 8 93 dcl gtss_drl_t_cmov_ entry (ptr, fixed bin); 8 94 dcl gtss_drl_t_err_ entry (ptr, fixed bin); 8 95 dcl gtss_drl_t_goto_ entry (ptr, fixed bin); 8 96 dcl gtss_drl_t_linl_ entry (ptr, fixed bin); 8 97 dcl gtss_drl_t_rscc_ entry (ptr, fixed bin); 8 98 dcl gtss_drl_tapein_ entry (ptr, fixed bin); 8 99 dcl gtss_drl_task_ entry (ptr, fixed bin); 8 100 dcl gtss_drl_termtp_ entry (ptr, fixed bin); 8 101 dcl gtss_drl_time_ entry (ptr, fixed bin); 8 102 dcl gtss_drun_ entry (bit(1)); 8 103 dcl gtss_dsd_lookup_ entry (char(8) var) returns(fixed bin(24)); 8 104 dcl gtss_dsd_process_ entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 8 105 dcl gtss_edit_dsd_ entry (ptr, fixed bin(21)) returns(fixed bin(24)); 8 106 dcl gtss_mcfc_empty entry (char(*) var); 8 107 dcl gtss_expand_pathname_ entry (ptr, char(*), char(*), fixed bin(35)); 8 108 dcl gtss_expand_pathname_$verify_umc entry (ptr, char(*), char(*), bit(18), fixed bin(35)); 8 109 dcl gtss_fault_processor_ entry options(variable); 8 110 dcl gtss_find_cond_frame_ entry (char(32) var) returns(ptr); 8 111 dcl gtss_fault_processor_$timer_runout entry (ptr, char(*)); 8 112 dcl gtss_filact_error_status_ entry (fixed bin(35))returns(bit(12)); 8 113 dcl gtss_filact_funct02_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 114 dcl gtss_filact_funct03_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 115 dcl gtss_filact_funct04_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 116 dcl gtss_filact_funct05_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 117 dcl gtss_filact_funct08_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 118 dcl gtss_filact_funct10_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 119 dcl gtss_filact_funct11_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 120 dcl gtss_filact_funct14_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 121 dcl gtss_filact_funct18_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 122 dcl gtss_filact_funct19_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 123 dcl gtss_filact_funct21_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 124 dcl gtss_filact_funct22_ entry (ptr, bit(18), ptr, ptr, ptr, fixed bin(35)); 8 125 dcl gtss_mcfc_init_ entry (char(*) var); 8 126 dcl gtss_interp_prim_ entry options(variable); 8 127 dcl gtss_interp_prim_$callss entry (char(4), ptr); 8 128 dcl gtss_interp_prim_$sysret entry options(variable); 8 129 dcl gtss_interp_prim_$t_goto entry (char(4)); 8 130 dcl gtss_ios_change_size_ entry (fixed bin(24), fixed bin(24), bit(1), fixed bin(24), fixed bin(35)); 8 131 dcl gtss_ios_close_ entry (fixed bin(24), ptr, fixed bin(35)); 8 132 dcl gtss_ios_exchange_names_ entry (fixed bin(24), fixed bin(24), fixed bin(24), fixed bin(35)); 8 133 dcl gtss_ios_initialize_ entry options(variable); 8 134 dcl gtss_ios_io_ entry (fixed bin(24), ptr, ptr, fixed bin(24), fixed bin(24), fixed bin(35)); 8 135 dcl gtss_ios_open_ entry (fixed bin(24), char(168), char(32), bit(6), bit(1), ptr, ptr, fixed bin(35)); 8 136 dcl gtss_ios_position_ entry (fixed bin(24), fixed bin(24), fixed bin(24), bit(6), ptr); 8 137 dcl gtss_mcfc_$delete entry (fixed bin(24), char(*), char(*), bit(36) aligned, ptr, fixed bin(35)); 8 138 dcl gtss_mcfc_$open entry (char(*), char(*), bit(6), bit(36) aligned, ptr, fixed bin(35)); 8 139 dcl gtss_mcfc_$close entry (char(*), char(*), bit(36) aligned, ptr, fixed bin(35)); 8 140 dcl gtss_read_starCFP_ entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 8 141 dcl gtss_read_starCFP_$last_os entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 8 142 dcl gtss_run_subsystem_ entry (fixed bin(24)); 8 143 dcl gtss_run_subsystem_$finish entry options(variable); 8 144 dcl gtss_run_subsystem_$restor entry (fixed bin(24), ptr); 8 145 dcl gtss_run_subsystem_$restor_perm entry (fixed bin(24), ptr, fixed bin(18)); 8 146 dcl gtss_set_slave_ entry (fixed bin (24), ptr); 8 147 dcl gtss_set_slave_$load_bar entry (fixed bin (17)); 8 148 dcl gtss_update_safe_store_ entry (ptr); 8 149 dcl gtss_verify_access_ entry (char(*), char(*), fixed bin(24), bit(6), bit(12) aligned); 8 150 dcl gtss_verify_access_$check_forced_access entry (char(*), char(*), fixed bin(24)); 8 151 dcl gtss_write_starCFP_ entry (ptr, ptr, fixed bin(21), fixed bin(35)); 8 152 /* END INCLUDE FILE gtss_entry_dcls.incl.pl1 */ 769 770 9 1 /* BEGIN INCLUDE FILE gtss_ascii_file_names.incl.pl1 */ 9 2 /* 9 3* Created: (Wardd Multics) 09/01/78 1447.3 mst Fri 9 4**/ 9 5 9 6 /** First parameter to gtss_expand_pathname_ 9 7* **/ 9 8 dcl 1 ascii_cat_file, 9 9 2 nn fixed bin, /* Number of names. */ 9 10 2 name (7)char(12); /* List of cat/filedescr name . */ 9 11 9 12 /* END INCLUDE FILE gtss_ascii_file_names.incl.pl1 */ 771 772 10 1 /* BEGIN INCLUDE FILE gtss_file_values.incl.pl1 */ 10 2 /* 10 3* Created: (Wardd Multics) 09/01/78 1447.1 mst Fri 10 4**/ 10 5 10 6 /** The gtss_file_values structure provides parameters to the 10 7* gtss_attributes_mgr_ subroutine. 10 8* 10 9* The caller must provide space for this structure, fill in 10 10* the version with 1, the dname and ename with the file directory 10 11* and entry name, and for calls to gtss_attributes_mgr_$set, 10 12* fill in values to be reset and set the corresponding set_switch 10 13* to "1"b. 10 14* 10 15* If the (Multics) file located is a directory 10 16* a GCOS catalog is implied. 10 17* 10 18* If both ename and new_ename are set but no set_switch 10 19* is "1"b (and the set entry is called) this implies 10 20* that the existing attribute values are being renamed 10 21* to the new entry. 10 22* 10 23* Then: call gtss_attributes_mgr_$set(addr(gtss_file_values),code); 10 24* 10 25* Use of ename/new_ename combinations 10 26* for set entry. 10 27* 10 28* -|-----------|-----------|-|-----------------| 10 29* | ename |new_ename || meaning | 10 30* =|===========|===========|=|=================| 10 31* | blanks | blanks || illegal | 10 32* -|-----------|-----------|-|-----------------| 10 33* | blanks |not blanks|| initial | 10 34* | | || setting | 10 35* -|-----------|-----------|-|-----------------| 10 36* |not blanks| blanks || check enames's | 10 37* | | ||attribute values| 10 38* | | || and reset. | 10 39* -|-----------|-----------|-|-----------------| 10 40* |not blanks|not blanks|| delete ename's | 10 41* | | || values and put | 10 42* | | || on values for | 10 43* | | || new_ename's | 10 44* -|-----------|-----------|-|-----------------| 10 45***/ 10 46 dcl attr_name (0:7)char(4)static int options(constant)init( 10 47 /* 0 */ "mode" 10 48 , /* 1 */ "maxl" 10 49 , /* 2 */ "curl" 10 50 , /* 3 */ "busy" 10 51 , /* 4 */ "attr" 10 52 , /* 5 */ "null" 10 53 , /* 6 */ "noal" 10 54 , /* 7 */ "crdt" 10 55 ); 10 56 dcl 1 gtss_file_values aligned automatic 10 57 , 3 version fixed bin(17) /* Current version is 1. (OUT) */ 10 58 , 3 dname char(168)unal /* Directory name. (IN) */ 10 59 , 3 ename char(032)unal /* Entry name. (IN) */ 10 60 , 3 new_ename char(032)unal /* New entry name. (IN) */ 10 61 , 3 change_name bit(1) /* "1"b => Change segment name. (IN) */ 10 62 , 3 catalog bit(1) /* "1"b => File is a catalog (Multics directory). (OUT) */ 10 63 , 3 info_ptr ptr /* hcs_$status_long (4. entry_ptr) info structure address. (OUT) */ 10 64 , 3 set_switch /* "1"b => Set corresponding value. (IN) */ 10 65 , 4 mode_random bit(01)unal /* 0. Set the random/sequential(linked) field. */ 10 66 , 4 maxll bit(01)unal /* 1. Set max size value. */ 10 67 , 4 curll bit(01)unal /* 2. Set current size value. */ 10 68 , 4 busy bit(01)unal /* 3. Set file as busy. */ 10 69 , 4 attr bit(01)unal /* 4. Set user attributes value. */ 10 70 , 4 null_file bit(01)unal /* 5. Set null file value. */ 10 71 , 4 number_allocations bit(01)unal /* 6. Set or increment number of uses. */ 10 72 , 4 creation_date bit(01)unal /* 7. Set file creation date. */ 10 73 , 4 not_in_use bit(28)unal 10 74 /* The above set_ variables should be declared in an order 10 75* corresponding to the value in the attr_name array. */ 10 76 , 3 data_flags /* (OUT|IN) */ 10 77 , 4 mode_random bit(01)unal /* "1"b => random. */ 10 78 , 4 busy bit(01)unal /* "1"b => file is busy. */ 10 79 , 4 null_file bit(01)unal /* "1"b => file is null. */ 10 80 , 4 not_in_use2 bit(33)unal 10 81 , 3 data_fields /* (OUT|IN) */ 10 82 , 4 curll fixed bin(35) /* Current length in llinks (>=0). */ 10 83 , 4 maxll fixed bin(35) /* Maximum length in llinks (>=0). */ 10 84 , 4 number_allocations fixed bin(35) /* 0 => set | >0 => increment modulo 262144. */ 10 85 , 3 attributes /* (OUT|IN) */ 10 86 , 4 not_in_use3 bit(01)unal 10 87 , 4 attr bit(35)unal /* User specified file attribute value. */ 10 88 , 3 creation_date char(06) /* MMDDYY of creation. */ 10 89 ; 10 90 10 91 10 92 /* END INCLUDE FILE gtss_file_values.incl.pl1 */ 773 774 11 1 /* BEGIN INCLUDE FILE gtss_FMS_catalog.incl.pl1 */ 11 2 /* 11 3* Created: (Wardd Multics) 09/14/78 1813.7 mst Thu 11 4* Change: Paul Benjamin 10/12/79 Further break down FS0_PBK_05 11 5**/ 11 6 11 7 /** The structure FMS_catalog1 is from 11 8* FMS PROGRAM LOGIC MANUAL 11 9* DC26, Rev. 0, January 1974 11 10* Page 4-9 11 11***/ 11 12 dcl FMS_cat_ptr ptr init(null()); 11 13 dcl 1 FMS_catalog aligned based(FMS_cat_ptr) 11 14 , 3 FSnTYP_0 11 15 , 4 bits00_05 bit(06)unal 11 16 , 4 bits06_10 bit(05)unal 11 17 , 4 bits11_17 bit(07)unal 11 18 , 4 bits18_35 bit(18)unal 11 19 , 3 FSnNLL_1 11 20 , 4 bits00_17 bit(18)unal 11 21 , 4 bits18_35 bit(18)unal 11 22 , 3 FSnPLL_2 11 23 , 4 bits00_17 bit(18)unal 11 24 , 4 bits18_35 bit(18)unal 11 25 , 3 FSnPTP_3 11 26 , 4 bits00_17 bit(18)unal 11 27 , 4 bits18_35 bit(18)unal 11 28 , 3 FSnCBK_4 11 29 , 4 bits00_17 bit(18)unal 11 30 , 4 bits18_35 bit(18)unal 11 31 ; 11 32 11 33 /** Page 4-10. **/ 11 34 dcl 1 Type_0_Catalog aligned based(FMS_cat_ptr) 11 35 , 3 FS0_TYP_00 bit(36) 11 36 , 3 FS0_NLL_01 11 37 , 4 bits00_17 bit(18)unal 11 38 , 4 bits18_35 bit(18)unal 11 39 , 3 FS0_PLL_02 bit(36) 11 40 , 3 FS0_PTP_03 11 41 , 4 bits00_17 fixed bin(17)unal 11 42 , 4 bits18_35 bit(18)unal 11 43 , 3 FS0_CBK_04 11 44 , 4 bits00_17 fixed bin(17)unal 11 45 , 4 bits18_35 bit(18)unal 11 46 , 3 FS0_PBK_05 11 47 , 4 bits00_17 bit(18)unal 11 48 , 4 bits18_35 bit(18)unal 11 49 , 3 FS0_CNM_06_07 bit(72) 11 50 , 3 FS0_ORG_10_11 bit(72) 11 51 , 3 FS0_PWD_12_13 bit(72) 11 52 , 3 FS0_CDT_14 bit(36) 11 53 , 3 FS0_MOD_15 bit(36) 11 54 , 3 FS0_IND_16 bit(36) 11 55 , 3 FS0_PER_17 11 56 , 4 bits00_11 bit(12)unal 11 57 , 4 bits12_14 bit(03)unal 11 58 , 4 bit15 bit(01)unal 11 59 , 4 bit16 bit(01)unal 11 60 , 4 bit17 bit(01)unal 11 61 , 4 bits18_35 bit(18)unal 11 62 , 3 FS0_OP1_20 bit(36) 11 63 , 3 FS0_OP2_21 bit(36) 11 64 , 3 FS0_VAR_22_76 (15) 11 65 , 4 FS0_SNM_00_01 bit(72) 11 66 , 4 FS0_SPT_02 11 67 , 5 bit00 bit(01)unal 11 68 , 5 bit01 bit(01)unal 11 69 , 5 bits02_17 bit(16)unal 11 70 , 5 bits18_35 bit(18)unal 11 71 , 3 checksum_77 bit(36) 11 72 ; 11 73 11 74 /* Condensed form of type 0 record. */ 11 75 dcl 1 t0c aligned based(FMS_cat_ptr) 11 76 , 2 fill (0:17)bit(36) 11 77 , 2 name (15) 11 78 , 3 bcd bit(72) 11 79 , 3 more bit(36) 11 80 ; 11 81 11 82 /** Page 4-10. **/ 11 83 dcl Type_1_ptr ptr init(null()); 11 84 dcl 1 Type_1_Catalog aligned based(Type_1_ptr) 11 85 , 3 FS1_TYP_00 bit(36) 11 86 , 3 FS1_NLL_01 11 87 , 4 bits00_17 bit(18)unal 11 88 , 4 bits18_35 bit(18)unal 11 89 , 3 FS1_PLL_02 bit(36) 11 90 , 3 FS1_PTP_03 11 91 , 4 bits00_17 fixed bin(17)unal 11 92 , 4 bits18_35 bit(18)unal 11 93 , 3 FS1_CBK_04 11 94 , 4 bits00_17 bit(18)unal 11 95 , 4 bits18_35 bit(18)unal 11 96 , 3 FS1_OPN_05 bit(36) 11 97 , 3 FS1_VAR_06_76 (19) 11 98 , 4 FS1_SNM_00_01 bit(72) 11 99 , 4 FS1_SPT_02 11 100 , 5 bit00 bit(01)unal 11 101 , 5 bit01 bit(01)unal 11 102 , 5 bits02_17 bit(16)unal 11 103 , 5 bits18_35 bit(18)unal 11 104 , 3 checksum_77 bit(36) 11 105 ; 11 106 11 107 /* Condensed form of type 1 record. */ 11 108 dcl 1 t1c aligned based(FMS_cat_ptr) 11 109 , 2 fill (0:5)bit(36) 11 110 , 2 name (19) like t0c.name 11 111 ; 11 112 11 113 /** Page 4-11. **/ 11 114 dcl 1 Type_2_Catalog aligned based(FMS_cat_ptr) 11 115 , 3 FS2_TYP_00 bit(36) 11 116 , 3 FS2_NLL_01 bit(36) 11 117 , 3 FS2_PLL_02 bit(36) 11 118 , 3 FS2_PTP_03 bit(36) 11 119 , 3 FS2_CBK_04 bit(36) 11 120 , 3 FS2_PBK_05 11 121 , 4 bits00_17 bit(18)unal 11 122 , 4 bits18_35 bit(18)unal 11 123 , 3 FS2_FNM_06_07 bit(72) 11 124 , 3 FS2_ORG_10_11 bit(72) 11 125 , 3 FS2_PWD_12_13 bit(72) 11 126 , 3 FS2_CDT_14 bit(36) 11 127 , 3 FS2_MOD_15 bit(36) 11 128 , 3 FS2_IND_16 bit(36) 11 129 , 3 FS2_PER_17 11 130 , 4 bits00_11 bit(12)unal 11 131 , 4 bits12_15 bit(04)unal 11 132 , 4 bit16 bit(01)unal 11 133 , 4 bit17 bit(01)unal 11 134 , 4 bits18_35 bit(18)unal 11 135 , 3 FS2_MTR_20_21 bit(72) 11 136 , 3 FS2_FU1_22 11 137 , 4 bit00 bit(01)unal 11 138 , 4 bit01 bit(01)unal 11 139 , 4 bit02 bit(01)unal 11 140 , 4 bit03 bit(01)unal 11 141 , 4 bit04 bit(01)unal 11 142 , 4 bit05 bit(01)unal 11 143 , 4 bit06 bit(01)unal 11 144 , 4 bit07 bit(01)unal 11 145 , 4 bit08 bit(01)unal 11 146 , 4 bit09 bit(01)unal 11 147 , 4 bits10_11 bit(02)unal 11 148 , 4 bits12_17 bit(06)unal 11 149 , 4 bits18_35 bit(18)unal 11 150 , 3 FS2_FUS_23 11 151 , 4 bits00_17 bit(18)unal 11 152 , 4 bit18 bit(01)unal 11 153 , 4 bit19 bit(01)unal 11 154 , 4 bit20 bit(01)unal 11 155 , 4 bit21 bit(01)unal 11 156 , 4 bit22 bit(01)unal 11 157 , 4 bit23 bit(01)unal 11 158 , 4 bit24 bit(01)unal 11 159 , 4 bit25 bit(01)unal 11 160 , 4 bit26 bit(01)unal 11 161 , 4 bit27 bit(01)unal 11 162 , 4 bit28 bit(01)unal 11 163 , 4 bit29 bit(01)unal 11 164 , 4 bits30_35 bit(06)unal 11 165 , 3 FS2_USI_24 11 166 , 4 bit00 bit(01)unal 11 167 , 4 bits01_35 bit(35)unal 11 168 , 3 FS2_FU2_25 11 169 , 4 bit00 bit(01)unal 11 170 , 4 bit01 bit(01)unal 11 171 , 4 bit02 bit(01)unal 11 172 , 4 bit03 bit(01)unal 11 173 , 4 bit04 bit(01)unal 11 174 , 4 bit05 bit(01)unal 11 175 , 4 bit06 bit(01)unal 11 176 , 4 bit07 bit(01)unal 11 177 , 4 bit08 bit(01)unal 11 178 , 4 bit09 bit(01)unal 11 179 , 4 bit10 bit(01)unal 11 180 , 4 bit11 bit(01)unal 11 181 , 4 bit12 bit(01)unal 11 182 , 4 bit13 bit(01)unal 11 183 , 4 bit14 bit(01)unal 11 184 , 4 bit15 bit(01)unal 11 185 , 4 bit16 bit(01)unal 11 186 , 4 bit17 bit(01)unal 11 187 , 4 bits18_35 bit(18)unal 11 188 , 3 FS2_LCD_26 bit(36) 11 189 , 3 FS2_LAD_27 bit(36) 11 190 , 3 FS2_LST_30 11 191 , 4 bits00_05 bit(06)unal 11 192 , 4 bits06_35 bit(30)unal 11 193 , 3 FS2_ATB_31 bit(36) 11 194 , 3 FS2_PDF_32 bit(36) 11 195 , 3 FS2_STC_33 bit(36) 11 196 , 3 FS2_BSY_34 bit(36) 11 197 , 3 FS2_TBC_35 bit(36) 11 198 , 3 FS2_OP2_7_36_43 (2:7)bit(36) 11 199 , 3 FS2_VAR_44_75 11 200 , 4 Device_descriptor 11 201 , 5 bits00_03 bit(04)unal /* 0101 */ 11 202 , 5 bits04_05 bit(02)unal 11 203 , 5 bits06_35 bit(30)unal 11 204 , 4 Space_descriptor 11 205 , 5 bit00 bit(01)unal 11 206 , 5 bit01 bit(01)unal /* =0 => space desc. */ 11 207 , 5 bit02 bit(01)unal 11 208 , 5 bits03_17 bit(15)unal 11 209 , 5 bits18_35 bit(18)unal 11 210 , 4 zero (24)bit(36) 11 211 , 3 zero_76 bit(36) 11 212 , 3 checksum_77 bit(36) 11 213 ; 11 214 11 215 /** Page 4-13. **/ 11 216 dcl Type_4_ptr ptr init(null()); 11 217 dcl 1 Type_4_Catalog aligned based(Type_4_ptr) 11 218 , 3 FS4_TYP_00 bit(36) 11 219 , 3 FS4_NLL_01 bit(36) 11 220 , 3 FS4_PLL_02 bit(36) 11 221 , 3 FS4_PTP_03 bit(36) 11 222 , 3 FS4_CBK_04 bit(36) 11 223 , 3 FS4_OP1_2_05_06 bit(72) 11 224 , 3 FS4_VAR_07_75 bit(1980) /* 1980 = 55 * 36bits @ */ 11 225 , 3 zero bit(36) 11 226 , 3 checksum_77 bit(36) 11 227 ; 11 228 11 229 /** Page 2-69 **/ 11 230 dcl buffer_ptr ptr init(null()); 11 231 dcl 1 callers_buffer aligned based(buffer_ptr) 11 232 , 3 first25 (25)bit(36) /* Work area for ???. */ 11 233 /** Next 35 words. FMS work area. **/ 11 234 , 3 W00_FSCODE bit(036) 11 235 , 3 W01_02_FSCALL bit(072) 11 236 , 3 W03 bit(036) 11 237 , 3 W04_06 bit(108) 11 238 , 3 W07 bit(036) 11 239 , 3 W10 bit(036) 11 240 , 3 W11_12 bit(072) 11 241 , 3 W13_FSSSLV bit(036) 11 242 , 3 W14_15 bit(072) 11 243 , 3 W16_FSFBSY bit(036) 11 244 , 3 W17_FSRETP bit(036) 11 245 , 3 W20 11 246 , 4 FSMME unal 11 247 , 5 bits00_17 bit(18)unal 11 248 , 4 FSARG unal 11 249 , 5 bits18_35 bit(18)unal 11 250 , 3 W21_FSCPOS 11 251 , 4 bits00_17 bit(18)unal 11 252 , 4 bits18_35 bit(18)unal 11 253 , 3 W22_FSCCFP 11 254 , 4 bits00_17 bit(18)unal 11 255 , 4 bits18_35 bit(18)unal 11 256 , 3 W23_FSPCFP 11 257 , 4 bits00_17 bit(18)unal 11 258 , 4 bits18_35 bit(18)unal 11 259 , 3 W24 11 260 , 4 FSREGU unal 11 261 , 5 bits00_17 bit(18)unal 11 262 , 4 FSREGL unal 11 263 , 5 bits18_35 bit(18)unal 11 264 , 3 W25_FSCDEV 11 265 , 4 bits00_15 bit(16)unal 11 266 , 4 bit16 bit(01)unal 11 267 , 4 bit17 bit(01)unal 11 268 , 4 bits18_35 bit(18)unal 11 269 , 3 W26_FSDDEV 11 270 , 4 bits00_15 bit(16)unal 11 271 , 4 bit16 bit(01)unal 11 272 , 4 bit17 bit(01)unal 11 273 , 4 bits18_35 bit(18)unal 11 274 , 3 W27_FSENDT bit(036) 11 275 , 3 W30_FSCPAT bit(036) 11 276 , 3 W31_FSPERM bit(036) 11 277 , 3 W32_FSDDCW bit(036) 11 278 , 3 W33_FSDCWP bit(036) 11 279 , 3 W34_FSDUPD bit(036) 11 280 , 3 W35_FSAVBL bit(036) 11 281 , 3 W36_FSTEMP bit(036) 11 282 , 3 W37_FSCKSM bit(036) 11 283 , 3 W40_FSIOS1 bit(036) 11 284 , 3 W41_FSSRW1 bit(036) 11 285 , 3 W42_FSSRW2 bit(036) 11 286 , 3 W43_FSBFER bit(036) /* Starting location of buffer for catalog record(s). */ 11 287 , 3 remainder_of_buffer (319)bit(36) 11 288 ; 11 289 11 290 /* END INCLUDE FILE gtss_FMS_catalog.incl.pl1 */ 775 776 777 /** >ldd>include>status_info.incl.pl1 **/ 12 1 12 2 declare /* Information returned by hcs_$status_ and hcs_$status_long */ 12 3 12 4 12 5 1 branch aligned based (info_ptr), /* information about this particular branch */ 12 6 2 type bit (2) unal, /* "00"b = link, "01"b = segment, "10"b = directory */ 12 7 2 nnames bit (16) unal, /* number of names this entry has */ 12 8 2 names_relp bit (18) unal, /* pointer, relative to base of segment, to names */ 12 9 2 dtm bit (36) unal, /* date-time the segment was last modified */ 12 10 2 dtu bit (36) unal, /* date-time the segment was last used */ 12 11 2 mode bit (5) unal, /* the user's access modes to the entry */ 12 12 2 padding bit (13) unal, /* yawn */ 12 13 2 records_used bit (18) unal, /* number of blocks actually occupied by entry */ 12 14 12 15 /* limit of information returned by status_ */ 12 16 12 17 2 dtd bit (36) unal, /* date-time the segment was last dumped */ 12 18 2 dtbm bit (36) unal, /* date-time the branch for the entry was modified */ 12 19 2 account bit (36) unal, /* account to which storage is charged */ 12 20 2 current_length bit (12) unal, /* maximum length in blocks */ 12 21 2 bit_count bit (24) unal, /* length of entry in bits */ 12 22 2 device_id bit (4) unal, /* device on which segment currently resides */ 12 23 2 mdid bit (4) unal, /* device to which it is currently being moved */ 12 24 2 copy_switch bit (1) unal, /* segment copy switch */ 12 25 2 tpd bit (1) unal, /* transparent paging device switch */ 12 26 2 more_padding bit (8) unal, /* yawn, yawn */ 12 27 2 ring_brackets (0:2) bit (6) unal, /* ring brackets for entry */ 12 28 2 uid bit (36) unal, /* unique identifier */ 12 29 12 30 12 31 1 link aligned based (info_ptr), /* information about link entries */ 12 32 2 type bit (2) unal, /* as above */ 12 33 2 nnames bit (16) unal, /* number of names for this link */ 12 34 2 names_relp bit (18) unal, /* as above */ 12 35 2 dtbm bit (36) unal, /* date-time, entry for link was last modified */ 12 36 2 dtd bit (36) unal, /* date-time dumped */ 12 37 2 pathname_length bit (18) unal, /* length of link pathname */ 12 38 2 pathname_relp bit (18) unal, /* pointer, relative to based of segment, to name */ 12 39 12 40 entry_names (1) character (32) aligned based (pointer (area_pointer, branch.names_relp)), 12 41 /* array of names returned */ 12 42 pathname character (fixed (link.pathname_length)) aligned based (pointer (area_pointer, link.pathname_relp)), 12 43 /* pathname a link points to */ 12 44 12 45 area_pointer pointer, /* to area in which to allocate names */ 12 46 info_ptr pointer; /* to structure returned */ 12 47 12 48 778 779 13 1 13 2 declare /* Structures used in acl manipulation. - J.M. Broughton 07/27/73 */ 13 3 13 4 13 5 1 segment_acl (acl_count) based (acl_ptr) aligned, 13 6 2 access_name character (32), /* process to which this entry applies */ 13 7 2 modes bit (36), /* read, execute, and write */ 13 8 2 zero_pad bit (36), /* for extended acl */ 13 9 2 status_code fixed bin(35), /* standard error code for this entry only */ 13 10 13 11 13 12 1 dir_acl (acl_count) based (acl_ptr) aligned, 13 13 2 access_name character (32), /* process to which entry applys */ 13 14 2 dir_modes bit (36), /* status, modify, and append */ 13 15 2 status_code fixed bin(35), /* as above */ 13 16 13 17 13 18 acl_count fixed bin, /* number of entries in these structures */ 13 19 acl_ptr pointer; /* pointer to these structures */ 13 20 13 21 780 781 14 1 /* BEGIN INCLUDE FILE gtss_filact_options.incl.pl1 */ 14 2 /* 14 3* Created: (Wardd Multics) 09/08/78 1017.4 mst Fri 14 4**/ 14 5 dcl now fixed bin; 14 6 dcl options_ptr ptr init(null()); 14 7 dcl 1 optionsx aligned based(options_ptr) 14 8 , 3 word1 14 9 , 4 option_bit unal 14 10 , 5 j bit(01)unal /* Space must be contiguous. */ 14 11 , 5 b bit(01)unal /* Random (CF only). */ 14 12 , 5 c bit(01)unal /* File TSS created (CF only) */ 14 13 , 5 d bit(01)unal /* I-D-S file. */ 14 14 , 5 k bit(01)unal /* 320-word blocks (CF only). */ 14 15 , 5 f bit(01)unal /* File already on tape or nonstructured disk pack (non-TSS). */ 14 16 , 5 bit_06 bit(01)unal /* (not used). */ 14 17 , 5 h bit(01)unal /* Attributes present. */ 14 18 , 5 i bit(01)unal /* User-specified attributes (CF & MF only). */ 14 19 , 5 bits09_12 bit(04)unal /* (not used). */ 14 20 , 5 y bit(01)unal /* FMS protection options specified. */ 14 21 , 5 bits14_17 bit(04)unal /* (not used). */ 14 22 , 4 device_name bit(12)unal 14 23 , 4 device_type bit(06)unal 14 24 , 3 word2 14 25 , 4 initial_file_size bit(18)unal /* (CF only). */ 14 26 , 4 max_file_size bit(18)unal /* 0 => max size unlimited. */ 14 27 , 3 words3_now (now) 14 28 , 4 optional_specific_permissions 14 29 , 5 USERID bit(72)unal 14 30 , 5 permission_bit like permissionsx 14 31 , 3 word_now_plus_1 14 32 , 4 end_of_list fixed bin(35) 14 33 , 3 word_now_plus_2 14 34 , 4 fill bit(01)unal 14 35 , 4 user_specified_attributes bit(35)unal /* (CF & MF only). */ 14 36 ; 14 37 15 1 /* BEGIN INCLUDE FILE gtss_filact_permissions.incl.pl1 */ 15 2 /* 15 3* Created: (Wardd Multics) 09/08/78 1018.0 mst Fri 15 4**/ 15 5 dcl permissions_ptr ptr init(null()); 15 6 dcl 1 permissionsx aligned based(permissions_ptr) 15 7 , 3 r bit(01)unal /* Read permission. */ 15 8 , 3 w bit(01)unal /* Write permission. */ 15 9 , 3 a bit(01)unal /* Append permission. */ 15 10 , 3 e bit(01)unal /* Execute permission. */ 15 11 , 3 p bit(01)unal /* Purge permission. */ 15 12 , 3 m bit(01)unal /* Modify permission. */ 15 13 , 3 l bit(01)unal /* Lock permission. */ 15 14 , 3 bit_07 bit(01)unal /* (not used). */ 15 15 , 3 c bit(01)unal /* Create permission. */ 15 16 , 3 x bit(01)unal /* Recovery permission. */ 15 17 , 3 bits10_35 bit(26)unal /* (not used). */ 15 18 ; 15 19 15 20 /* END INCLUDE FILE gtss_filact_permissions.incl.pl1 */ 14 38 14 39 14 40 /* END INCLUDE FILE gtss_filact_options.incl.pl1 */ 782 783 16 1 /* BEGIN INCLUDE FILE gtss_filact_status.incl.pl1 */ 16 2 /* 16 3* Created: (Wardd Multics) 10/10/78 0945.5 mst Tue 16 4**/ 16 5 16 6 /* 16 7* 4000 NO ERRORS 16 8* 4001 USER-ID NOT IN MASTER CATALOG 16 9* 4002 I/O ERROR ON DEVICE XXX SA = NNN......NNN 16 10* 4003 PERMISSIONS DENIED 16 11* 4004 FILE BUSY: TRY LATER 16 12* 4005 INCORRECT CAT/FILE DESCRIPTION AT AAA......AAA 16 13* 4006 NO SPACE FOR CATALOG ON DEVICE XXX 16 14* 4007 UNDEFINED DEVICE YYY ZZZZZZ 16 15* 4010 NO SPACE FOR FILE ON DEVICE YYY 16 16* 4011 NON-UNIQUE NAME 16 17* 4012 SIZE REQUEST LS THAN ALLOCATED 16 18* 4013 SPACE REQUEST GR THAN ALLOWED 16 19* 4014 INCORRECT OR MISSING PASSWORD-AT-AAA...AAA 16 20* 4015 FILE IS ABORT LOCK 16 21* 4016 FILE WRITE IN BATCH ONLY 16 22* 4017 SEEK ERROR ON DEVICE XXX SA = NNN......NNN 16 23* 4020 FAILURE IN NAME SCAN (IMP.) 16 24* 4021 DUP CANNOT BE ON RMVBL DEVICE 16 25* 4022 BAD SPACE INVENTORY ON DEVICE 16 26* 4023 INVALID PARAMETER 16 27* 4024 BAD SPACE TABLE FOR DEVICE ON XXX 16 28* 4025 REQUESTED ENTRY NOT ON-LINE 16 29* 4026 NON-STRUCTURED FILE ENTRY 16 30* 4027 FILE IN DEFECTIVE STATUS 16 31* 4030 ILLEGAL PACK TYPE 16 32* 4031 ACCESS GRANTED TO I-D-S FILE 16 33* 4032 COLLECTION FILE ERROR 16 34* 4033 CAT/FILE SECURITY LOCKED 16 35* 4034 ILLEGAL CHARACTER IN CAT/FILE NAME 16 36* 4035 ILLEGAL CAT/FILE LIST REQUEST 16 37* 4036 AFT IS FULL 16 38* 4037 FILE ALREADY IN AFT 16 39* 4040 MAXIMUM PAT SIZE EXCEEDED 16 40* 4041 NO PROTECTION TABLE SPACE AVAILABLE 16 41* 4042 INVALID FILE CODE OR PAT PTR 16 42* 4043 INVALID CATALOG BLOCK ADDRESS 16 43* 4044 ILLEGAL OPTIONS COMBINATION 16 44* 4045 INVALID SPACE IDENTIFIER 16 45* 4046 (NONE, SPECIAL TSS INTERFACE) 16 46* 4047 UNACCOUNTABLE ERROR 16 47* 4050 ***RESERVED for FMS*** 16 48* 4051 CHECKSUM ERROR - DEVICE XXX SA = NNN......NNN 16 49* 4052 DEVICE XXX RELEASED 16 50* 4053 READ ACCESS DENIED - NULL FILE 16 51* 4054 FILE IS WRITE LOCKED 16 52* 4055 ***RESERVED*** 16 53* 4056 SECURITY PARAMETER - REQUIRED 16 54* 4057 SECURITY PARAMETER - INVALID 16 55* 4061 $FSYS HAS BEEN ENABLED 16 56* 4062 ILLEGAL SUBFUNCTION CODE 16 57* 4063 FILE NOT BEING MONITORED 16 58* 4064 DEADLOCK ON PAGE REQUEST 16 59* 4065 PAGE CURRENTLY BUSY 16 60* 4066 FILE NOT DUPLICATED 16 61* 4067 TDS MON ALLOC ERROR 16 62* 4070 ILLEGAL CHECKPOINT REQUEST 16 63* 4071 ILLEGAL DCW SPECIFIED 16 64* 4072 IMPROPER PROTECTION OPTION 16 65* 4073 INVALID ARG LIST PARAMETER NO. 000 16 66* 4074 SYSTEM JOURNAL NOT CONFIGURED 16 67* 4075 FILE RESTORE LOCKED 16 68* 4076 FILE IS TDS LOCKED 16 69* 4077 ERR TDS SUBSET PAGES RELEASED 16 70* 4100 UNACCOUNTABLE ERROR 16 71**/ 16 72 16 73 /* END INCLUDE FILE gtss_filact_status.incl.pl1 */ 784 785 17 1 /* BEGIN INCLUDE FILE gtss_deferred_catalog.incl.pl1 */ 17 2 /* 17 3* Created: (Wardd Multics) 11/08/78 1747.0 mst Wed 17 4**/ 17 5 17 6 /** Deferred FMS catalog record control structure (instructions). **/ 17 7 dcl def_cat_ptr ptr init(null()); 17 8 dcl def_cat_fill_len fixed bin; 17 9 17 10 dcl 1 deferred_catalog aligned based(def_cat_ptr), 17 11 2 cat_file_len fixed bin(35), 17 12 2 cat_file (200)bit(36), /* GCOS catalog/file description. */ 17 13 2 fill (def_cat_fill_len)bit(36), 17 14 2 type2_3, 17 15 3 cat bit(1)unal, /* 1 => name is catalog, else file. */ 17 16 3 zero bit(8)unal, 17 17 3 rec_type fixed bin(8)unal, /* FMS catalog record type (=>what to create). */ 17 18 3 nl fixed bin(17)unal, 17 19 3 ns char(deferred_catalog.type2_3.nl)unal, 17 20 2 next_nl fixed bin(35); 17 21 17 22 dcl def_cat_type_1_ptr ptr init(null()); 17 23 dcl 1 def_cat_type_1 aligned based(def_cat_type_1_ptr), 17 24 3 cat bit(1)unal, /* 1 => name is catalog, else file. */ 17 25 3 zero bit(8)unal, 17 26 3 rec_type fixed bin(8)unal, /* FMS catalog record type (=>what to create). */ 17 27 3 sn bit(18)unal /* Sector number to start of ramaining names. */; 17 28 17 29 /* END INCLUDE FILE gtss_deferred_catalog.incl.pl1 */ 786 787 18 1 /* BEGIN INCLUDE FILE gse_ext_.incl.pl1 */ 18 2 /* 18 3* Created: Kepner 78-12-01 18 4**/ 18 5 18 6 dcl gse_ext_$drm_rule fixed bin(24) ext; 18 7 18 8 /* $drm_rule: 18 9* 0 => rule not set 18 10* 1 => umc_dir_mode 18 11* 2 => working_dir_mode 18 12* 3 => smc_dir_mode 18 13**/ 18 14 18 15 dcl gse_ext_$gcos_debug_pathname char(168) /* pathname for the gcos debugger control file */ ext; 18 16 dcl gse_ext_$smc_pathname char(168) /* root directory used with smc_dir mapping rule */ ext; 18 17 dcl gse_ext_$umc_name char(12) /* User Master Catalog name specified by user with gse command */ ext; 18 18 dcl 1 gse_ext_$modes aligned ext, 18 19 3 ast bit(01) unal, /* 1 => use asterisk as prompt character */ 18 20 3 drl bit(01) unal, /* 1 => cause trace info on each derail to be printed */ 18 21 3 gdb bit(01) unal, /* 1 => use gcos debugger (gdb) */ 18 22 3 mcmd bit(01) unal, /* 1 => allow use of e request at GTSS command level */ 18 23 3 mquit bit(01) unal, /* 1 => quit causes entry to new Multics command level */ 18 24 3 ss bit(01) unal, /* 1 => cause trace info on each subsystem to be printed */ 18 25 3 fill bit(30) unal; 18 26 18 27 /* END INCLUDE FILE gse_ext_.incl.pl1 */ 788 789 19 1 /* BEGIN INCLUDE FILE gtss_db_names.incl.pl1 */ 19 2 /* 19 3* Created: (Wardd Multics) 03/29/79 1909.1 mst Thu 19 4**/ 19 5 19 6 /* To provide a new debugging switch: 19 7* 19 8* 1) Locate the comment "Insert next entry above this comment". 19 9* 19 10* 2) Place a new declaration for a db_ variable just 19 11* above this comment, in the same manner as the 19 12* current declaration just above the comment, using 19 13* the next integer gtss_ext_$db index. 19 14* 19 15* 3) Execute the gtss|db_names ted macro (this updates 19 16* the sorted name table). 19 17* 19 18* 4) Example use: 19 19* 19 20* if db_drl_grow then do; 19 21* . 19 22* . 19 23* . 19 24* debug i/o statements using com_err_ or ioa_ 19 25* . 19 26* . 19 27* . 19 28* end; 19 29* 19 30**/ 19 31 19 32 dcl ( 19 33 db_ bit(1) defined(gtss_ext_$db(01)) 19 34 ,db_CFP_input bit(1) defined(gtss_ext_$db(02)) 19 35 ,db_drl_addmem bit(1) defined(gtss_ext_$db(03)) 19 36 ,db_drl_defil bit(1) defined(gtss_ext_$db(04)) 19 37 ,db_drl_filact bit(1) defined(gtss_ext_$db(05)) 19 38 ,db_drl_filsp bit(1) defined(gtss_ext_$db(06)) 19 39 ,db_drl_grow bit(1) defined(gtss_ext_$db(07)) 19 40 ,db_drl_rew bit(1) defined(gtss_ext_$db(08)) 19 41 ,db_filact_funct02 bit(1) defined(gtss_ext_$db(09)) 19 42 ,db_filact_funct03 bit(1) defined(gtss_ext_$db(10)) 19 43 ,db_filact_funct04 bit(1) defined(gtss_ext_$db(11)) 19 44 ,db_filact_funct05 bit(1) defined(gtss_ext_$db(12)) 19 45 ,db_filact_funct10 bit(1) defined(gtss_ext_$db(13)) 19 46 ,db_filact_funct11 bit(1) defined(gtss_ext_$db(14)) 19 47 ,db_filact_funct14 bit(1) defined(gtss_ext_$db(15)) 19 48 ,db_filact_funct18 bit(1) defined(gtss_ext_$db(16)) 19 49 ,db_filact_funct19 bit(1) defined(gtss_ext_$db(17)) 19 50 ,db_filact_funct21 bit(1) defined(gtss_ext_$db(18)) 19 51 ,db_filact_funct22 bit(1) defined(gtss_ext_$db(19)) 19 52 ,db_interp_prim bit(1) defined(gtss_ext_$db(20)) 19 53 ,db_ios bit(1) defined(gtss_ext_$db(21)) 19 54 ,db_run_subsystem bit(1) defined(gtss_ext_$db(22)) 19 55 ,db_drl_t_cfio bit(1) defined(gtss_ext_$db(23)) 19 56 ,db_drl_switch bit(1) defined(gtss_ext_$db(24)) 19 57 ,db_drl_dio bit(1) defined(gtss_ext_$db(25)) 19 58 ,db_drl_retfil bit(1) defined(gtss_ext_$db(26)) 19 59 ,db_drl_msub bit(1) defined(gtss_ext_$db(27)) 19 60 ,db_drl_callss bit(1) defined(gtss_ext_$db(28)) 19 61 ,db_drl_rstswh bit(1) defined(gtss_ext_$db(29)) 19 62 ,db_drl_setswh bit(1) defined(gtss_ext_$db(30)) 19 63 ,db_mcfc bit(1) defined(gtss_ext_$db(31)) 19 64 ,db_dq bit(1) defined(gtss_ext_$db(32)) 19 65 ,db_abs bit(1) defined(gtss_ext_$db(33)) 19 66 ,db_attributes_mgr bit(1) defined(gtss_ext_$db(34)) 19 67 ,db_expand_pathname bit(1) defined(gtss_ext_$db(35)) 19 68 ,db_drl_part bit(1) defined(gtss_ext_$db(36)) 19 69 ,db_drl_morlnk bit(1) defined(gtss_ext_$db(37)) 19 70 ,db_drl_kin bit(1) defined(gtss_ext_$db(38)) 19 71 /* Insert next entry above this comment. */ 19 72 ); 19 73 19 74 /* Table of sorted names. */ 19 75 dcl 1 debug_bit_names (38) static int options(constant) 19 76 , 2 name char(18)var init( 19 77 "" ,"CFP_input" ,"abs" ,"attributes_mgr" ,"dq" ,"drl_addmem" 19 78 ,"drl_callss" ,"drl_defil" ,"drl_dio" ,"drl_filact" ,"drl_filsp" 19 79 ,"drl_grow" ,"drl_kin" ,"drl_morlnk" ,"drl_msub" ,"drl_part" 19 80 ,"drl_retfil" ,"drl_rew" ,"drl_rstswh" ,"drl_setswh" ,"drl_switch" 19 81 ,"drl_t_cfio" ,"expand_pathname" ,"filact_funct02" ,"filact_funct03" 19 82 ,"filact_funct04" ,"filact_funct05" ,"filact_funct10" ,"filact_funct11" 19 83 ,"filact_funct14" ,"filact_funct18" ,"filact_funct19" ,"filact_funct21" 19 84 ,"filact_funct22" ,"interp_prim" ,"ios" ,"mcfc" ,"run_subsystem" 19 85 ) 19 86 , 2 value fixed bin init( 19 87 01 ,02 ,33 ,34 ,32 ,03 ,28 ,04 ,25 ,05 ,06 ,07 ,38 ,37 ,27 ,36 ,26 ,08 19 88 ,29 ,30 ,24 ,23 ,35 ,09 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 19 89 ,31 ,22 19 90 ); 19 91 /* End of table. */ 19 92 /* END INCLUDE FILE gtss_db_names.incl.pl1 */ 790 791 end /* gtss_filact_funct18_ */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1044.0 gtss_filact_funct18_.pl1 >spec>on>7105>gtss_filact_funct18_.pl1 677 1 09/09/83 1713.8 gtss_filact_intp1.incl.pl1 >ldd>include>gtss_filact_intp1.incl.pl1 679 2 09/09/83 1713.8 gtss_filact_intp2.incl.pl1 >ldd>include>gtss_filact_intp2.incl.pl1 681 3 09/09/83 1713.9 gtss_filact_intp3.incl.pl1 >ldd>include>gtss_filact_intp3.incl.pl1 761 4 09/09/83 1713.8 gtss_filact18_args.incl.pl1 >ldd>include>gtss_filact18_args.incl.pl1 763 5 09/09/83 1714.3 gtss_ust_ext_.incl.pl1 >ldd>include>gtss_ust_ext_.incl.pl1 765 6 09/09/83 1713.8 gtss_ext_.incl.pl1 >ldd>include>gtss_ext_.incl.pl1 767 7 12/15/83 1100.4 mc.incl.pl1 >ldd>include>mc.incl.pl1 769 8 12/10/84 1029.7 gtss_entry_dcls.incl.pl1 >spec>on>7105>gtss_entry_dcls.incl.pl1 771 9 09/09/83 1713.5 gtss_ascii_file_names.incl.pl1 >ldd>include>gtss_ascii_file_names.incl.pl1 773 10 09/09/83 1714.0 gtss_file_values.incl.pl1 >ldd>include>gtss_file_values.incl.pl1 775 11 09/09/83 1713.5 gtss_FMS_catalog.incl.pl1 >ldd>include>gtss_FMS_catalog.incl.pl1 778 12 04/29/76 1139.2 status_info.incl.pl1 >ldd>include>status_info.incl.pl1 780 13 02/13/75 1618.9 acls.incl.pl1 >ldd>include>acls.incl.pl1 782 14 09/09/83 1713.9 gtss_filact_options.incl.pl1 >ldd>include>gtss_filact_options.incl.pl1 14-38 15 09/09/83 1713.9 gtss_filact_permissions.incl.pl1 >ldd>include>gtss_filact_permissions.incl.pl1 784 16 09/09/83 1713.3 gtss_filact_status.incl.pl1 >ldd>include>gtss_filact_status.incl.pl1 786 17 09/09/83 1713.7 gtss_deferred_catalog.incl.pl1 >ldd>include>gtss_deferred_catalog.incl.pl1 788 18 09/09/83 1713.4 gse_ext_.incl.pl1 >ldd>include>gse_ext_.incl.pl1 790 19 09/09/83 1713.6 gtss_db_names.incl.pl1 >ldd>include>gtss_db_names.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. Device_descriptor 44 based structure level 3 dcl 11-114 FMS_cat_ptr 000302 automatic pointer initial dcl 11-12 set ref 87* 88 11-12* 208 209 209 214 217 234 235 235 255 256 257 257 262 263 266 269 279 279 306 307 307 308 309 310 310 311 312 312 318 319 319 320 321 322 324 325 326 328 329 330 331 332 333 334 335 336 337 338 339 340 341 468 470 472 475 518 520 522 525 FMS_catalog based structure level 1 dcl 11-13 set ref 472* 472 522* 522 FS0_CBK_04 4 based structure level 2 dcl 11-34 set ref 217 FS0_CNM_06_07 6 based bit(72) level 2 dcl 11-34 set ref 209 209 FS0_MOD_15 15 based bit(36) level 2 dcl 11-34 set ref 214* FS0_NLL_01 1 based structure level 2 dcl 11-34 FS0_ORG_10_11 10 based bit(72) level 2 dcl 11-34 set ref 234* FS0_PBK_05 5 based structure level 2 dcl 11-34 FS0_PER_17 17 based structure level 2 dcl 11-34 FS0_SNM_00_01 22 based bit(72) array level 3 dcl 11-34 set ref 256* 257 257 FS0_SPT_02 24 based structure array level 3 dcl 11-34 FS0_VAR_22_76 22 based structure array level 2 dcl 11-34 set ref 255 266 FS1_CBK_04 4 based structure level 2 dcl 11-84 set ref 281 FS1_PTP_03 3 based structure level 2 dcl 11-84 FS1_SNM_00_01 6 based bit(72) array level 3 dcl 11-84 set ref 286* 287 287 FS1_SPT_02 10 based structure array level 3 dcl 11-84 FS1_VAR_06_76 6 based structure array level 2 dcl 11-84 set ref 267 277 FS2_CDT_14 14 based bit(36) level 2 dcl 11-114 set ref 310 310 FS2_FNM_06_07 6 based bit(72) level 2 dcl 11-114 set ref 307 307 FS2_FU1_22 22 based structure level 2 dcl 11-114 FS2_FU2_25 25 based structure level 2 dcl 11-114 FS2_FUS_23 23 based structure level 2 dcl 11-114 FS2_LAD_27 27 based bit(36) level 2 dcl 11-114 set ref 334* FS2_LCD_26 26 based bit(36) level 2 dcl 11-114 set ref 333* FS2_MOD_15 15 based bit(36) level 2 dcl 11-114 set ref 311* FS2_MTR_20_21 20 based bit(72) level 2 dcl 11-114 set ref 319 319 FS2_ORG_10_11 10 based bit(72) level 2 dcl 11-114 set ref 308* FS2_PBK_05 5 based structure level 2 dcl 11-114 FS2_PER_17 17 based structure level 2 dcl 11-114 FS2_PWD_12_13 12 based bit(72) level 2 dcl 11-114 set ref 309* FS2_USI_24 24 based structure level 2 dcl 11-114 FS2_VAR_44_75 44 based structure level 2 dcl 11-114 FS4_CBK_04 4 based bit(36) level 2 dcl 11-217 set ref 473* 523* FS4_VAR_07_75 7 based bit(1980) level 2 dcl 11-217 set ref 476 526 FSnTYP_0 based structure level 2 dcl 11-13 Get_Current_arglist based structure level 1 dcl 4-15 Get_Current_args based structure level 1 dcl 4-6 L_arglist 0(18) based bit(18) level 2 in structure "filact_args" packed unaligned dcl 1-24 in procedure "validate_status" ref 1-16 1-16 L_arglist 0(18) based bit(18) level 3 in structure "Get_Current_args" packed unaligned dcl 4-6 in procedure "gtss_filact_funct18_" ref 53 59 L_cat_filedescr 1 based bit(18) level 3 packed unaligned dcl 4-15 set ref 64* 167 L_record 0(18) based bit(18) level 3 packed unaligned dcl 4-15 set ref 88* L_status_return based bit(18) level 3 packed unaligned dcl 4-15 set ref 62* Space_descriptor 45 based structure level 3 dcl 11-114 Type_0_Catalog based structure level 1 dcl 11-34 set ref 279 Type_1_Catalog based structure level 1 dcl 11-84 set ref 279 Type_1_ptr 000304 automatic pointer initial dcl 11-83 set ref 11-83* 267 277 279* 279 281 282 284 286 287 287 292 293 468 469 518 519 Type_2_Catalog based structure level 1 dcl 11-114 set ref 470 520 Type_4_Catalog based structure level 1 dcl 11-217 set ref 471* 521* Type_4_ptr 000306 automatic pointer initial dcl 11-216 set ref 11-216* 470* 471 472 473 474 475 476 520* 521 522 523 524 525 526 USERID based fixed bin(71,0) level 3 dcl 2-112 ref 2-28 USERID_password 2 based bit(72) level 3 dcl 2-112 set ref 2-30* W43_FSBFER 74 based bit(36) level 2 dcl 11-231 set ref 87 a 000454 automatic char(32) unaligned dcl 650 in procedure "author" set ref 625* 635 637 639 641 641 a based area(261120) dcl 568 in procedure "get_permissions" set ref 379* 381 381 399 399 409 409 ac based char(1) array unaligned dcl 648 set ref 641 641 access_name based char(32) array level 2 in structure "dir_acl" dcl 13-2 in procedure "gtss_filact_funct18_" ref 436 access_name based char(32) array level 2 in structure "segment_acl" dcl 13-2 in procedure "gtss_filact_funct18_" ref 445 acf based structure level 1 dcl 2-106 acfp parameter pointer dcl 2-16 ref 2-8 2-19 acl_count 000314 automatic fixed bin(17,0) dcl 13-2 set ref 381* 399* 409* 428 acl_ptr 000316 automatic pointer dcl 13-2 set ref 376* 381* 399* 409* 430 431 436 439 440 445 460 509 addr builtin function dcl 685 ref 64 64 76 76 87 94 94 137 137 167 209 209 209 209 217 226 226 257 257 257 257 281 287 287 287 287 307 307 307 307 310 310 310 310 318 319 319 319 319 328 340 381 381 399 399 409 409 451 459 459 461 476 481 481 481 481 481 481 490 490 490 490 490 490 496 508 510 511 512 526 531 531 531 531 531 531 536 540 540 540 540 540 540 545 546 604 641 641 641 641 641 641 661 661 661 671 671 671 671 2-62 2-62 2-62 2-62 addrel builtin function dcl 686 ref 59 167 223 279 470 520 1-20 2-26 al 000464 automatic fixed bin(17,0) dcl 651 set ref 639* 640 641* ap 000524 automatic pointer dcl 2-105 set ref 2-19* 2-38 2-49 2-52 2-56 2-58 2-62 2-62 2-72 2-73 2-77 2-77 2-79 2-79 2-85 2-86 2-87 arg_ptr 000102 automatic pointer initial dcl 688 set ref 47* 53 59 688* 1-16 1-16 arg_ptr_val parameter pointer dcl 40 ref 14 47 arglist_ptr 000100 automatic pointer initial dcl 687 set ref 59* 62 64 88 90 167 687* ascii_cat_file 000144 automatic structure level 1 unaligned dcl 9-8 set ref 64 64 76 76 attr 105(01) 000172 automatic bit(35) level 3 packed unaligned dcl 10-56 set ref 323 326 attributes 105 000172 automatic structure level 2 dcl 10-56 b36 000504 automatic bit(36) unaligned dcl 670 set ref 671 671 672 bit builtin function dcl 689 ref 280 475 512 525 536 545 607 2-47 bit00 45 based bit(1) level 4 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 337* bit00 24 based bit(1) level 3 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 330* bit01 24(01) based bit(1) array level 4 in structure "Type_0_Catalog" packed unaligned dcl 11-34 in procedure "gtss_filact_funct18_" set ref 262* bit01 45(01) based bit(1) level 4 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 338* bit01 10(01) based bit(1) array level 4 in structure "Type_1_Catalog" packed unaligned dcl 11-84 in procedure "gtss_filact_funct18_" set ref 292* bit01 22(01) based bit(1) level 3 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 320* bit02 45(02) based bit(1) level 4 packed unaligned dcl 11-114 set ref 339* bit04 22(04) based bit(1) level 3 packed unaligned dcl 11-114 set ref 321* bit05 22(05) based bit(1) level 3 packed unaligned dcl 11-114 set ref 322* bit08 22(08) based bit(1) level 3 packed unaligned dcl 11-114 set ref 324* bit16 25(16) based bit(1) level 3 packed unaligned dcl 11-114 set ref 331* bit18 based bit(18) unaligned dcl 690 set ref 269* 280* bit72 based bit(72) dcl 691 set ref 2-29* bits00_03 44 based bit(4) level 4 packed unaligned dcl 11-114 set ref 335* bits00_05 based bit(6) level 3 packed unaligned dcl 11-13 set ref 208* 284* 306* 474* 524* bits00_11 17 based bit(12) level 3 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 312* bits00_11 17 based bit(12) level 3 in structure "Type_0_Catalog" packed unaligned dcl 11-34 in procedure "gtss_filact_funct18_" set ref 235* bits00_17 5 based bit(18) level 3 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 312* bits00_17 3 based fixed bin(17,0) level 3 in structure "Type_1_Catalog" packed unaligned dcl 11-84 in procedure "gtss_filact_funct18_" set ref 282* bits00_17 5 based bit(18) level 3 in structure "Type_0_Catalog" packed unaligned dcl 11-34 in procedure "gtss_filact_funct18_" set ref 235* bits00_17 1 based bit(18) level 3 in structure "Type_0_Catalog" packed unaligned dcl 11-34 in procedure "gtss_filact_funct18_" set ref 269* bits01_35 24(01) based bit(35) level 3 packed unaligned dcl 11-114 set ref 326* bits03_17 45(03) based bit(15) level 4 packed unaligned dcl 11-114 set ref 340* bits06_35 44(06) based bit(30) level 4 packed unaligned dcl 11-114 set ref 336* bits12_17 22(12) based bit(6) level 3 packed unaligned dcl 11-114 set ref 325* bits18_35 25(18) based bit(18) level 3 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 332* bits18_35 24(18) based bit(18) array level 4 in structure "Type_0_Catalog" packed unaligned dcl 11-34 in procedure "gtss_filact_funct18_" set ref 263* bits18_35 17(18) based bit(18) level 3 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 318* bits18_35 10(18) based bit(18) array level 4 in structure "Type_1_Catalog" packed unaligned dcl 11-84 in procedure "gtss_filact_funct18_" set ref 293* bits18_35 45(18) based bit(18) level 4 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 341* bits18_35 22(18) based bit(18) level 3 in structure "Type_2_Catalog" packed unaligned dcl 11-114 in procedure "gtss_filact_funct18_" set ref 328* bits30_35 23(30) based bit(6) level 3 packed unaligned dcl 11-114 set ref 329* branch based structure level 1 dcl 12-2 buffer_ptr 000310 automatic pointer initial dcl 11-230 set ref 48* 87 11-230* 2-57 2-79 2-79 buffer_ptr_val parameter pointer dcl 41 ref 14 48 c parameter bit(1) unaligned dcl 249 in procedure "catalog_entry" set ref 243 253* 262 292 c parameter bit(1) unaligned dcl 113 in procedure "store_temp_name" ref 109 116 callers_buf based structure level 1 dcl 2-108 callers_buffer based structure level 1 dcl 11-231 cat based bit(1) level 2 in structure "def_cat_type_1" packed unaligned dcl 17-23 in procedure "gtss_filact_funct18_" set ref 271* cat based bit(1) level 3 in structure "deferred_catalog" packed unaligned dcl 17-10 in procedure "gtss_filact_funct18_" set ref 116* 226* cat_file 1 based bit(36) array level 2 dcl 17-10 set ref 167 cat_file_len based fixed bin(35,0) level 2 dcl 17-10 set ref 166* cat_file_string based bit dcl 159 set ref 167* 167 cat_filedescr_name_offset 000104 automatic bit(18) unaligned dcl 692 set ref 2-20* 2-33* 2-47* 2-101* 3-10 catalog 74 000172 automatic bit(1) level 2 dcl 10-56 set ref 101 380 429 459 508 cdf4 based structure level 1 dcl 2-130 cfd2 based structure level 1 dcl 2-112 cfd3 based structure array level 1 dcl 2-125 cfdl parameter bit(18) unaligned dcl 2-15 in procedure "get_ascii_file_name" ref 2-8 2-22 2-26 2-33 2-42 2-47 cfdl 000340 automatic fixed bin(35,0) dcl 160 in procedure "gcos_catalog" set ref 165* 167 167 code parameter fixed bin(35,0) dcl 42 set ref 14 50* 56* 76* 82 94* 95 96 104* 137* 146 147 149* 381* 390 391* 399* 408 409 409* 419 420* 625* 632 com_err_ 000032 constant entry external dcl 8-8 ref 149 391 420 431 440 451 500 550 cont_ptr 000106 automatic pointer initial dcl 693 set ref 217* 269 280 281* 693* creation_date 106 000172 automatic char(6) level 2 dcl 10-56 set ref 310 310 curll21_35 0(21) based bit(15) level 3 packed unaligned dcl 744 ref 340 curll_val based structure level 2 dcl 744 cv 000440 automatic fixed bin(71,0) dcl 611 set ref 603* 604 606* 607 cv2 based structure level 1 dcl 613 cv36 0(20) based bit(36) level 2 packed unaligned dcl 613 set ref 604* d parameter bit(36) unaligned dcl 601 ref 595 604 d24 000474 automatic char(24) unaligned dcl 662 set ref 660* 661 661 661 d24_0vl based structure level 1 packed unaligned dcl 663 d6 000502 automatic char(6) unaligned dcl 669 set ref 661* 671 671 data_fields 102 000172 automatic structure level 2 dcl 10-56 set ref 318 328 340 data_flags 101 000172 automatic structure level 2 dcl 10-56 date_time_$fstime 000056 constant entry external dcl 674 ref 660 datebin_$preceding_midnight 000052 constant entry external dcl 609 ref 606 db_filact_funct18 defined bit(1) unaligned dcl 19-32 ref 253 dd 0(27) based char(2) level 2 packed unaligned dcl 663 ref 661 def_cat_fill_len 000326 automatic fixed bin(17,0) dcl 17-8 set ref 116 117 118 119 119 120 120 121* 121 134* 135 223 223 224* 225 226 226 226 226 226 226 231* 231 231 def_cat_ptr 000324 automatic pointer initial dcl 17-7 set ref 17-7* 116 117 118 119 119 120 120 133* 135 166 167 223 223 223 225 226 226 226 226 226 226 231 def_cat_type_1 based structure level 1 dcl 17-23 def_cat_type_1_ptr 000330 automatic pointer initial dcl 17-22 set ref 17-22* 223* 269 271 272 273 274 deferred_catalog based structure level 1 dcl 17-10 set ref 223 descriptor_ptr 000110 automatic pointer initial dcl 694 set ref 694* 2-26* 2-28 2-29 2-30 2-36 2-46 2-58 2-62 2-62 device_id 10 based bit(4) level 2 packed unaligned dcl 12-2 set ref 336* device_name 1(18) based bit(18) level 3 packed unaligned dcl 4-15 set ref 90* did parameter bit(4) unaligned dcl 348 ref 345 dir_acl based structure array level 1 dcl 13-2 dir_modes 10 based bit(36) array level 2 dcl 13-2 ref 509 divide builtin function dcl 695 ref 121 231 267 607 dn parameter char unaligned dcl 371 in procedure "get_permissions" set ref 360 381* 391* 399* 409 420* dn parameter char(168) unaligned dcl 622 in procedure "author" set ref 619 625* dname 1 000172 automatic char(168) level 2 packed unaligned dcl 10-56 set ref 76* 137 149* 234* 235* 308* 312* dsn parameter bit(18) unaligned dcl 251 ref 243 263 274 293 dtbm 5 based bit(36) level 2 packed unaligned dcl 12-2 set ref 214* 311* dtm 1 based bit(36) level 2 packed unaligned dcl 12-2 set ref 332* 333* dtu 2 based bit(36) level 2 packed unaligned dcl 12-2 set ref 334* empty builtin function dcl 696 ref 136 379 en parameter char(32) unaligned dcl 623 in procedure "author" set ref 619 625* en parameter char unaligned dcl 372 in procedure "get_permissions" set ref 360 381* 391* 399* 409 420* ename 53 000172 automatic char(32) level 2 packed unaligned dcl 10-56 set ref 76* 137 149* 234* 235* 308* 312* end_of_list 4 based fixed bin(35,0) level 2 in structure "cdf4" dcl 2-130 in procedure "get_ascii_file_name" ref 2-36 end_of_list based fixed bin(35,0) level 2 in structure "cfd2" dcl 2-112 in procedure "get_ascii_file_name" ref 2-46 entries based structure array level 1 dcl 739 entry_count 000112 automatic fixed bin(17,0) dcl 697 set ref 137* 173 181 entry_ptr 000114 automatic pointer initial dcl 698 set ref 137* 175 182 183 183 183 201 201 201 698* error_table_$dirseg 000010 external static fixed bin(35,0) dcl 699 ref 409 error_table_$no_dir 000012 external static fixed bin(35,0) dcl 700 ref 96 error_table_$nomatch 000014 external static fixed bin(35,0) dcl 701 ref 147 execute 0(01) 000425 automatic bit(1) level 2 packed unaligned dcl 574 set ref 462 486 495 filact_args based structure level 1 dcl 1-24 file_id_in_ascii 1 based char(8) level 2 dcl 2-108 set ref 2-79* 2-79 file_name 000341 automatic char(32) unaligned dcl 302 set ref 184* 185 187 188* 188 189 191 192 193* 193 194 194 fixed builtin function dcl 702 ref 45 53 280 475 475 525 525 1-16 1-16 1-16 1-16 2-22 2-42 2-47 2-47 fnia parameter bit(1) unaligned dcl 2-14 ref 2-8 2-56 gfv based structure level 1 dcl 744 gp parameter bit(12) unaligned dcl 373 set ref 360 377* 462* 512* grc 000116 automatic bit(18) initial unaligned dcl 703 in procedure "gtss_filact_funct18_" set ref 64* 72 96* 703* grc parameter bit(18) unaligned dcl 2-17 in procedure "get_ascii_file_name" set ref 2-8 2-91* 2-102* gse_ext_$umc_name 000044 external static char(12) unaligned dcl 18-17 ref 2-77 gseg 000120 automatic pointer initial dcl 704 set ref 46* 59 167 704* 1-20 2-26 gseg_val parameter pointer dcl 39 ref 14 46 gtss_ascii_bcd_ 000034 constant entry external dcl 8-30 ref 209 257 287 307 310 319 481 490 531 540 641 671 gtss_attributes_mgr_$get 000036 constant entry external dcl 8-31 ref 94 gtss_bcd_ascii_$lc 000040 constant entry external dcl 8-34 ref 2-62 gtss_expand_pathname_ 000042 constant entry external dcl 8-107 ref 76 gtss_ext_$db 000024 external static bit(1) array unaligned dcl 6-10 ref 253 253 2-70 gtss_ext_$deferred_catalogs_ptr 000026 external static pointer dcl 6-11 ref 133 gtss_ext_$hcs_work_area_ptr 000030 external static pointer dcl 6-21 ref 136 137 137 379 381 381 399 399 409 409 gtss_file_values 000172 automatic structure level 1 dcl 10-56 set ref 94 94 gtss_ust 000022 external static structure level 2 dcl 5-16 gtss_ust_ext_$ust 000022 external static structure level 1 dcl 5-16 hbound builtin function dcl 706 ref 255 266 267 277 hcs_$get_author 000054 constant entry external dcl 649 ref 625 hcs_$list_acl 000046 constant entry external dcl 562 ref 399 409 hcs_$list_dir_acl 000050 constant entry external dcl 563 ref 381 hcs_$star_ 000016 constant entry external dcl 707 ref 137 high_b 000122 automatic bit(18) dcl 708 set ref 44* 45 1-13 high_i 000123 automatic fixed bin(18,0) dcl 709 set ref 45* 53 2-22 2-42 high_val parameter bit(18) unaligned dcl 38 ref 14 44 i 000410 automatic fixed bin(17,0) dcl 565 in procedure "get_permissions" set ref 428* 430 431 436 439 440 445 460 509* i 000124 automatic fixed bin(24,0) dcl 710 in procedure "gtss_filact_funct18_" set ref 173* 175* 181* 182 183 183 183 201 201 201* 2-52* 2-56 2-56 2-58 2-58 2-62 2-62 2-62 2-62* 2-72* 2-73* 2-73* 2-85* 2-86 2-87* i 000362 automatic fixed bin(17,0) dcl 297 in procedure "catalog_entry" set ref 267* 268 279 280 283 info_ptr 000312 automatic pointer dcl 12-2 in procedure "gtss_filact_funct18_" set ref 99* 214 311 332 333 334 336 info_ptr 76 000172 automatic pointer level 2 in structure "gtss_file_values" dcl 10-56 in procedure "gtss_filact_funct18_" set ref 99 ioa_ 000020 constant entry external dcl 711 ref 253 2-71 2-73 j 000363 automatic fixed bin(17,0) dcl 298 set ref 266* 267 277* 277 278 286 287 287 292 293 k 000125 automatic fixed bin(24,0) dcl 712 set ref 183* 184* l1 000412 automatic fixed bin(17,0) dcl 569 set ref 448* 450 451 455 456* 456 459 459 461 481 481 490 490 508 510 511 512 531 531 536 540 540 545 l2 000413 automatic fixed bin(17,0) dcl 570 set ref 449* 450 451 454 455* 455 459 461 481 481 481 481 490 490 490 490 510 511 531 531 531 531 540 540 540 540 l3 000414 automatic fixed bin(17,0) dcl 571 set ref 451 454* 510 last_sector_no 000126 automatic fixed bin(17,0) dcl 713 set ref 218* 282 283* length builtin function dcl 714 ref 118 121 187 191 257 257 287 287 455 639 2-79 lid 000022 external static bit(72) level 3 dcl 5-16 ref 2-29 ll 000127 automatic fixed bin(17,0) dcl 715 set ref 185* 186 187* 187 188 189* 190 191* 191 192 193 m 000425 automatic structure level 1 dcl 574 set ref 460* 509* maxll18_35 1(18) based bit(18) level 3 packed unaligned dcl 744 ref 318 maxll_val 1 based structure level 2 dcl 744 mcp 000142 automatic pointer dcl 7-10 set ref 43* mcp_val parameter pointer dcl 37 ref 14 43 mcv 000436 automatic fixed bin(71,0) dcl 610 set ref 606* 607 md parameter bit(36) unaligned dcl 659 ref 654 660 min builtin function dcl 718 ref 257 257 287 287 481 481 490 490 531 531 540 540 mm based char(2) level 2 packed unaligned dcl 663 ref 661 mod builtin function dcl 719 ref 277 479 529 mode_random 101 000172 automatic bit(1) level 3 packed unaligned dcl 10-56 set ref 320 modes 10 based bit(36) array level 2 dcl 13-2 ref 460 n based structure level 1 dcl 580 in procedure "get_permissions" set ref 451* n parameter char unaligned dcl 114 in procedure "store_temp_name" ref 109 118 119 121 n parameter char unaligned dcl 250 in procedure "catalog_entry" set ref 243 253* 257 257 257 257 287 287 287 287 n1 based bit(72) level 2 dcl 587 set ref 480* 481 481 530* 531 531 n1p 2 based bit(18) level 2 packed unaligned dcl 587 set ref 486* 536* n2 3 based bit(72) level 2 dcl 587 set ref 489* 490 490 539* 540 540 n2p 2(18) based bit(18) level 2 packed unaligned dcl 587 set ref 495* 545* n32 000415 automatic char(32) dcl 572 set ref 436* 445* 448 449 451 454 455 459 459 461 481 481 490 490 508 510 511 512 531 531 536 540 540 545 n_ptr 000132 automatic pointer initial dcl 725 set ref 137* 184 201 201 725* name based char(8) array level 2 in structure "cfd3" dcl 2-125 in procedure "get_ascii_file_name" set ref 2-58 2-62 2-62 name 1 000144 automatic char(12) array level 2 in structure "ascii_cat_file" packed unaligned dcl 9-8 in procedure "gtss_filact_funct18_" set ref 209 209 307 307 319 319 name 1 based char(12) array level 2 in structure "acf" dcl 2-106 in procedure "get_ascii_file_name" set ref 2-58* 2-62 2-62 2-73* 2-77 2-77* 2-79 2-86 2-87 name 22 based structure array level 2 in structure "t0c" dcl 11-75 in procedure "gtss_filact_funct18_" name_info based area(261120) dcl 721 set ref 136* 137 137 names based char(32) array dcl 720 ref 184 201 201 next_nl based fixed bin(35,0) level 2 dcl 17-10 set ref 120* nic 000130 automatic fixed bin(24,0) dcl 722 set ref 2-35* 2-36 2-42 2-46 2-47 2-49* nindex 0(18) based fixed bin(17,0) array level 2 packed unaligned dcl 739 ref 183 183 201 201 nl based fixed bin(17,0) level 3 packed unaligned dcl 17-10 set ref 118* 119 120 135* 223 225 226 226 231 nn 000144 automatic fixed bin(17,0) level 2 in structure "ascii_cat_file" dcl 9-8 in procedure "gtss_filact_funct18_" set ref 165 166 209 209 307 307 nn based fixed bin(17,0) level 2 in structure "acf" dcl 2-106 in procedure "get_ascii_file_name" set ref 2-38* 2-49* 2-52 2-56 2-72 2-79 2-85 nnames 0(02) based fixed bin(15,0) array level 2 packed unaligned dcl 739 ref 175 182 183 noal18_35 3 based bit(18) level 2 packed unaligned dcl 744 ref 328 ns based char level 3 packed unaligned dcl 17-10 set ref 119* 226* null builtin function dcl 723 ref 687 688 693 694 698 704 725 730 11-12 11-83 11-216 11-230 14-6 15-5 17-7 17-22 376 381 381 399 399 409 409 468 518 564 1-9 null_file 101(02) 000172 automatic bit(1) level 3 packed unaligned dcl 10-56 set ref 330 number_of_catalog_entries 000131 automatic fixed bin(17,0) dcl 724 set ref 216* 252* 252 253* 255 256 257 257 262 263 266 nxn 5 based bit(36) level 2 dcl 587 set ref 496 546 options_ptr 000320 automatic pointer initial dcl 14-6 set ref 14-6* p1 000452 automatic fixed bin(17,0) dcl 646 set ref 635* 636 639 641 641 p2 000453 automatic fixed bin(17,0) dcl 647 set ref 637* 638 639 pd 0(18) based bit(18) level 2 packed unaligned dcl 755 set ref 71* permissions_ptr 000322 automatic pointer initial dcl 15-5 set ref 15-5* permissionsx based structure level 1 dcl 15-6 person based char level 2 packed unaligned dcl 580 set ref 459 508 512 536 545 project based char level 2 packed unaligned dcl 580 set ref 459 461 481 481 490 490 511 531 531 540 540 r 000450 automatic bit(72) initial unaligned dcl 645 set ref 632* 641 641 643 645* read 000425 automatic bit(1) level 2 packed unaligned dcl 574 set ref 462 486 495 rec_type 0(09) based fixed bin(8,0) level 2 in structure "def_cat_type_1" packed unaligned dcl 17-23 in procedure "gtss_filact_funct18_" set ref 273* rec_type based fixed bin(8,0) level 3 in structure "deferred_catalog" packed unaligned dcl 17-10 in procedure "gtss_filact_funct18_" set ref 117* rel builtin function dcl 726 ref 88 226 226 269 475 475 525 525 restore_switch based bit(36) level 2 dcl 2-108 set ref 2-57* reverse builtin function dcl 727 ref 185 189 449 454 637 rtrim builtin function dcl 733 ref 137 194 194 201 201 409 2-87 search builtin function dcl 728 ref 185 189 448 449 459 635 637 segment_acl based structure array level 1 dcl 13-2 size builtin function dcl 729 ref 223 279 279 470 520 sn 0(18) based bit(18) level 2 packed unaligned dcl 17-23 set ref 274* sp parameter pointer dcl 1-8 set ref 1-5 1-20* sps parameter bit(18) unaligned dcl 374 set ref 360 378* 475* 525* spx 000411 automatic fixed bin(17,0) dcl 566 set ref 427* 465* 465 466 467 479 500 515* 515 516 517 529 550 status based bit(18) level 2 packed unaligned dcl 755 set ref 72* 105* status_address parameter bit(18) unaligned dcl 1-7 ref 1-5 1-13 1-16 1-16 1-20 status_code 11 based fixed bin(35,0) array level 2 in structure "dir_acl" dcl 13-2 in procedure "gtss_filact_funct18_" set ref 430 431* status_code 12 based fixed bin(35,0) array level 2 in structure "segment_acl" dcl 13-2 in procedure "gtss_filact_funct18_" set ref 439 440* status_pointer 000514 automatic pointer initial dcl 1-9 set ref 1-9* 1-20* 1-21 status_ptr 000134 automatic pointer initial dcl 730 set ref 62* 71 72 105 730* status_word based structure level 1 dcl 755 set ref 1-21* string builtin function dcl 731 set ref 460* 509* 2-70 substr builtin function dcl 732 ref 188 192 193 2-70 2-77 2-79 t0c based structure level 1 dcl 11-75 tag based char level 2 packed unaligned dcl 580 set ref 510 total_names 000136 automatic fixed bin(17,0) dcl 734 set ref 171* 175* 175 type based bit(2) array level 2 packed unaligned dcl 739 ref 201 type2_3 based structure level 2 dcl 17-10 set ref 226 226 unspec builtin function dcl 735 set ref 471* 521* 1-21* upp 000406 automatic pointer initial dcl 564 set ref 476* 480 481 481 486 489 490 490 495 496* 496 526* 530 531 531 536 539 540 540 545 546* 546 564* user_master_catalog based structure level 2 dcl 2-112 user_permission based structure level 1 dcl 587 var_ptr 000140 automatic pointer dcl 736 set ref 468* 469* 470 518* 519* 520 verify builtin function dcl 737 ref 454 508 2-87 version 000172 automatic fixed bin(17,0) level 2 dcl 10-56 set ref 92* word1 based structure level 2 in structure "Get_Current_arglist" dcl 4-15 in procedure "gtss_filact_funct18_" word1 based structure level 2 in structure "Get_Current_args" dcl 4-6 in procedure "gtss_filact_funct18_" word2 1 based structure level 2 dcl 4-15 write 0(02) 000425 automatic bit(1) level 2 packed unaligned dcl 574 set ref 462 486 495 yy 1(18) based char(2) level 2 packed unaligned dcl 663 ref 661 zero 0(01) based bit(8) level 2 packed unaligned dcl 17-23 set ref 272* 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 area_pointer automatic pointer dcl 12-2 attr_name internal static char(4) initial array unaligned dcl 10-46 bbx internal static fixed bin(17,0) initial dcl 7-42 bpx internal static fixed bin(17,0) initial dcl 7-42 db_ defined bit(1) unaligned dcl 19-32 db_CFP_input defined bit(1) unaligned dcl 19-32 db_abs defined bit(1) unaligned dcl 19-32 db_attributes_mgr defined bit(1) unaligned dcl 19-32 db_dq defined bit(1) unaligned dcl 19-32 db_drl_addmem defined bit(1) unaligned dcl 19-32 db_drl_callss defined bit(1) unaligned dcl 19-32 db_drl_defil defined bit(1) unaligned dcl 19-32 db_drl_dio defined bit(1) unaligned dcl 19-32 db_drl_filact defined bit(1) unaligned dcl 19-32 db_drl_filsp defined bit(1) unaligned dcl 19-32 db_drl_grow defined bit(1) unaligned dcl 19-32 db_drl_kin defined bit(1) unaligned dcl 19-32 db_drl_morlnk defined bit(1) unaligned dcl 19-32 db_drl_msub defined bit(1) unaligned dcl 19-32 db_drl_part defined bit(1) unaligned dcl 19-32 db_drl_retfil defined bit(1) unaligned dcl 19-32 db_drl_rew defined bit(1) unaligned dcl 19-32 db_drl_rstswh defined bit(1) unaligned dcl 19-32 db_drl_setswh defined bit(1) unaligned dcl 19-32 db_drl_switch defined bit(1) unaligned dcl 19-32 db_drl_t_cfio defined bit(1) unaligned dcl 19-32 db_expand_pathname defined bit(1) unaligned dcl 19-32 db_filact_funct02 defined bit(1) unaligned dcl 19-32 db_filact_funct03 defined bit(1) unaligned dcl 19-32 db_filact_funct04 defined bit(1) unaligned dcl 19-32 db_filact_funct05 defined bit(1) unaligned dcl 19-32 db_filact_funct10 defined bit(1) unaligned dcl 19-32 db_filact_funct11 defined bit(1) unaligned dcl 19-32 db_filact_funct14 defined bit(1) unaligned dcl 19-32 db_filact_funct19 defined bit(1) unaligned dcl 19-32 db_filact_funct21 defined bit(1) unaligned dcl 19-32 db_filact_funct22 defined bit(1) unaligned dcl 19-32 db_interp_prim defined bit(1) unaligned dcl 19-32 db_ios defined bit(1) unaligned dcl 19-32 db_mcfc defined bit(1) unaligned dcl 19-32 db_run_subsystem defined bit(1) unaligned dcl 19-32 debug_bit_names internal static structure array level 1 unaligned dcl 19-75 entry_names based char(32) array dcl 12-2 gse_ext_$drm_rule external static fixed bin(24,0) dcl 18-6 gse_ext_$gcos_debug_pathname external static char(168) unaligned dcl 18-15 gse_ext_$modes external static structure level 1 dcl 18-18 gse_ext_$smc_pathname external static char(168) unaligned dcl 18-16 gtss_CFP_abort_ 000000 constant entry external dcl 8-9 gtss_CFP_break_ 000000 constant entry external dcl 8-10 gtss_CFP_input_ 000000 constant entry external dcl 8-11 gtss_CFP_output_ 000000 constant entry external dcl 8-12 gtss_abandon_CFP_ 000000 constant entry external dcl 8-13 gtss_abort_dump_ 000000 constant entry external dcl 8-14 gtss_abort_subsystem_ 000000 constant entry external dcl 8-15 gtss_abort_subsystem_$not_imp 000000 constant entry external dcl 8-16 gtss_abs_$abs_equiv 000000 constant entry external dcl 8-19 gtss_abs_$cpu_runout 000000 constant entry external dcl 8-20 gtss_abs_$create_absin 000000 constant entry external dcl 8-21 gtss_abs_$dabt_check 000000 constant entry external dcl 8-22 gtss_abs_$get_drm 000000 constant entry external dcl 8-24 gtss_abs_$get_id 000000 constant entry external dcl 8-23 gtss_abs_login_banner_ 000000 constant entry external dcl 8-17 gtss_abs_logout_banner_ 000000 constant entry external dcl 8-18 gtss_adjust_size_ 000000 constant entry external dcl 8-25 gtss_aft_$add 000000 constant entry external dcl 8-26 gtss_aft_$delete 000000 constant entry external dcl 8-27 gtss_aft_$find 000000 constant entry external dcl 8-28 gtss_aft_$initialize 000000 constant entry external dcl 8-29 gtss_attributes_mgr_$set 000000 constant entry external dcl 8-32 gtss_bcd_ascii_ 000000 constant entry external dcl 8-33 gtss_break_vector_ 000000 constant entry external dcl 8-35 gtss_break_vector_$drl_in_progress 000000 constant entry external dcl 8-36 gtss_break_vector_$status 000000 constant entry external dcl 8-37 gtss_build_ 000000 constant entry external dcl 8-38 gtss_com_err_ 000000 constant entry external dcl 8-39 gtss_derail_processor_ 000000 constant entry external dcl 8-40 gtss_derail_processor_$set 000000 constant entry external dcl 8-41 gtss_dq_$catp 000000 constant entry external dcl 8-42 gtss_dq_$create 000000 constant entry external dcl 8-43 gtss_dq_$dibp 000000 constant entry external dcl 8-44 gtss_dq_$entries_info 000000 constant entry external dcl 8-45 gtss_dq_$hdrp 000000 constant entry external dcl 8-46 gtss_dq_$mod_js 000000 constant entry external dcl 8-47 gtss_dq_$open_exc 000000 constant entry external dcl 8-48 gtss_dq_$open_gen 000000 constant entry external dcl 8-49 gtss_drl_abort_ 000000 constant entry external dcl 8-50 gtss_drl_addmem_ 000000 constant entry external dcl 8-51 gtss_drl_callss_ 000000 constant entry external dcl 8-52 gtss_drl_corfil_ 000000 constant entry external dcl 8-53 gtss_drl_defil_ 000000 constant entry external dcl 8-54 gtss_drl_defil_$subr 000000 constant entry external dcl 8-55 gtss_drl_dio_ 000000 constant entry external dcl 8-56 gtss_drl_drlimt_ 000000 constant entry external dcl 8-57 gtss_drl_drlsav_ 000000 constant entry external dcl 8-58 gtss_drl_filact_ 000000 constant entry external dcl 8-59 gtss_drl_filsp_ 000000 constant entry external dcl 8-60 gtss_drl_grow_ 000000 constant entry external dcl 8-61 gtss_drl_gwake_ 000000 constant entry external dcl 8-62 gtss_drl_jsts_ 000000 constant entry external dcl 8-63 gtss_drl_kin_ 000000 constant entry external dcl 8-64 gtss_drl_kotnow_ 000000 constant entry external dcl 8-65 gtss_drl_kotnow_$gtss_drl_kout_ 000000 constant entry external dcl 8-66 gtss_drl_koutn_ 000000 constant entry external dcl 8-67 gtss_drl_morlnk_ 000000 constant entry external dcl 8-68 gtss_drl_msub_ 000000 constant entry external dcl 8-69 gtss_drl_objtim_ 000000 constant entry external dcl 8-70 gtss_drl_part_ 000000 constant entry external dcl 8-71 gtss_drl_pasaft_ 000000 constant entry external dcl 8-72 gtss_drl_pasdes_ 000000 constant entry external dcl 8-73 gtss_drl_pasust_ 000000 constant entry external dcl 8-74 gtss_drl_pdio_ 000000 constant entry external dcl 8-75 gtss_drl_prgdes_ 000000 constant entry external dcl 8-76 gtss_drl_pseudo_ 000000 constant entry external dcl 8-77 gtss_drl_relmem_ 000000 constant entry external dcl 8-78 gtss_drl_restor_ 000000 constant entry external dcl 8-79 gtss_drl_retfil_ 000000 constant entry external dcl 8-80 gtss_drl_return_ 000000 constant entry external dcl 8-81 gtss_drl_rew_ 000000 constant entry external dcl 8-82 gtss_drl_rstswh_ 000000 constant entry external dcl 8-83 gtss_drl_setlno_ 000000 constant entry external dcl 8-84 gtss_drl_setswh_ 000000 constant entry external dcl 8-85 gtss_drl_snumb_ 000000 constant entry external dcl 8-86 gtss_drl_spawn_ 000000 constant entry external dcl 8-87 gtss_drl_spawn_$gtss_drl_pasflr_ 000000 constant entry external dcl 8-88 gtss_drl_stoppt_ 000000 constant entry external dcl 8-89 gtss_drl_switch_ 000000 constant entry external dcl 8-90 gtss_drl_sysret_ 000000 constant entry external dcl 8-91 gtss_drl_t_cfio_ 000000 constant entry external dcl 8-92 gtss_drl_t_cmov_ 000000 constant entry external dcl 8-93 gtss_drl_t_err_ 000000 constant entry external dcl 8-94 gtss_drl_t_goto_ 000000 constant entry external dcl 8-95 gtss_drl_t_linl_ 000000 constant entry external dcl 8-96 gtss_drl_t_rscc_ 000000 constant entry external dcl 8-97 gtss_drl_tapein_ 000000 constant entry external dcl 8-98 gtss_drl_task_ 000000 constant entry external dcl 8-99 gtss_drl_termtp_ 000000 constant entry external dcl 8-100 gtss_drl_time_ 000000 constant entry external dcl 8-101 gtss_drun_ 000000 constant entry external dcl 8-102 gtss_dsd_lookup_ 000000 constant entry external dcl 8-103 gtss_dsd_process_ 000000 constant entry external dcl 8-104 gtss_edit_dsd_ 000000 constant entry external dcl 8-105 gtss_expand_pathname_$verify_umc 000000 constant entry external dcl 8-108 gtss_ext_$CFP_bits external static structure level 1 dcl 6-37 gtss_ext_$SYstarstar_file_no external static fixed bin(24,0) dcl 6-33 gtss_ext_$aem external static fixed bin(17,0) dcl 6-8 gtss_ext_$aft external static structure level 1 dcl 6-78 gtss_ext_$bad_drl_rtrn external static label variable dcl 6-9 gtss_ext_$com_reg external static structure level 1 dcl 6-45 gtss_ext_$dispose_of_drl external static label variable dcl 6-12 gtss_ext_$drl_rtrn external static label variable array dcl 6-13 gtss_ext_$drm_path external static char(168) unaligned dcl 6-14 gtss_ext_$drun_jid external static char(5) unaligned dcl 6-15 gtss_ext_$event_channel external static fixed bin(71,0) dcl 6-16 gtss_ext_$fast_lib external static structure level 1 dcl 6-98 gtss_ext_$finished external static label variable dcl 6-17 gtss_ext_$flags external static structure level 1 dcl 6-60 gtss_ext_$gdb_name external static char(8) unaligned dcl 6-18 gtss_ext_$get_line external static entry variable dcl 6-19 gtss_ext_$gtss_slave_area_seg external static pointer array dcl 6-20 gtss_ext_$homedir external static char(64) unaligned dcl 6-22 gtss_ext_$last_k_was_out external static bit(1) dcl 6-23 gtss_ext_$mcfc external static structure level 1 dcl 6-109 gtss_ext_$pdir external static varying char(168) dcl 6-24 gtss_ext_$popup_from_pi external static label variable dcl 6-25 gtss_ext_$ppt external static pointer dcl 6-94 gtss_ext_$process_type external static fixed bin(17,0) dcl 6-26 gtss_ext_$put_chars external static entry variable dcl 6-27 gtss_ext_$restart_from_pi external static label variable dcl 6-28 gtss_ext_$restart_seg_ptr external static pointer dcl 6-29 gtss_ext_$sig_ptr external static pointer dcl 6-30 gtss_ext_$stack_level_ external static fixed bin(17,0) dcl 6-31 gtss_ext_$statistics external static structure level 1 dcl 6-72 gtss_ext_$suspended_process external static bit(1) unaligned dcl 6-32 gtss_ext_$user_id external static varying char(26) dcl 6-34 gtss_ext_$work_area_ptr external static pointer dcl 6-35 gtss_fail 000000 stack reference condition dcl 705 gtss_fault_processor_ 000000 constant entry external dcl 8-109 gtss_fault_processor_$timer_runout 000000 constant entry external dcl 8-111 gtss_filact_error_status_ 000000 constant entry external dcl 8-112 gtss_filact_funct02_ 000000 constant entry external dcl 8-113 gtss_filact_funct03_ 000000 constant entry external dcl 8-114 gtss_filact_funct04_ 000000 constant entry external dcl 8-115 gtss_filact_funct05_ 000000 constant entry external dcl 8-116 gtss_filact_funct08_ 000000 constant entry external dcl 8-117 gtss_filact_funct10_ 000000 constant entry external dcl 8-118 gtss_filact_funct11_ 000000 constant entry external dcl 8-119 gtss_filact_funct14_ 000000 constant entry external dcl 8-120 gtss_filact_funct18_ 000000 constant entry external dcl 8-121 gtss_filact_funct19_ 000000 constant entry external dcl 8-122 gtss_filact_funct21_ 000000 constant entry external dcl 8-123 gtss_filact_funct22_ 000000 constant entry external dcl 8-124 gtss_find_cond_frame_ 000000 constant entry external dcl 8-110 gtss_interp_prim_ 000000 constant entry external dcl 8-126 gtss_interp_prim_$callss 000000 constant entry external dcl 8-127 gtss_interp_prim_$sysret 000000 constant entry external dcl 8-128 gtss_interp_prim_$t_goto 000000 constant entry external dcl 8-129 gtss_ios_change_size_ 000000 constant entry external dcl 8-130 gtss_ios_close_ 000000 constant entry external dcl 8-131 gtss_ios_exchange_names_ 000000 constant entry external dcl 8-132 gtss_ios_initialize_ 000000 constant entry external dcl 8-133 gtss_ios_io_ 000000 constant entry external dcl 8-134 gtss_ios_open_ 000000 constant entry external dcl 8-135 gtss_ios_position_ 000000 constant entry external dcl 8-136 gtss_mcfc_$close 000000 constant entry external dcl 8-139 gtss_mcfc_$delete 000000 constant entry external dcl 8-137 gtss_mcfc_$open 000000 constant entry external dcl 8-138 gtss_mcfc_empty 000000 constant entry external dcl 8-106 gtss_mcfc_init_ 000000 constant entry external dcl 8-125 gtss_read_starCFP_ 000000 constant entry external dcl 8-140 gtss_read_starCFP_$last_os 000000 constant entry external dcl 8-141 gtss_run_subsystem_ 000000 constant entry external dcl 8-142 gtss_run_subsystem_$finish 000000 constant entry external dcl 8-143 gtss_run_subsystem_$restor 000000 constant entry external dcl 8-144 gtss_run_subsystem_$restor_perm 000000 constant entry external dcl 8-145 gtss_set_slave_ 000000 constant entry external dcl 8-146 gtss_set_slave_$load_bar 000000 constant entry external dcl 8-147 gtss_update_safe_store_ 000000 constant entry external dcl 8-148 gtss_verify_access_ 000000 constant entry external dcl 8-149 gtss_verify_access_$check_forced_access 000000 constant entry external dcl 8-150 gtss_write_starCFP_ 000000 constant entry external dcl 8-151 k automatic fixed bin(17,0) dcl 299 lbx internal static fixed bin(17,0) initial dcl 7-42 link based structure level 1 dcl 12-2 low_b internal static bit(18) initial dcl 716 low_i internal static fixed bin(18,0) initial dcl 717 lpx internal static fixed bin(17,0) initial dcl 7-42 mc based structure level 1 dcl 7-12 now automatic fixed bin(17,0) dcl 14-5 optionsx based structure level 1 dcl 14-7 pathname based char dcl 12-2 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 spe automatic fixed bin(17,0) array dcl 567 spx internal static fixed bin(17,0) initial dcl 7-42 t1c based structure level 1 dcl 11-108 NAMES DECLARED BY EXPLICIT CONTEXT. BCD_date 004277 constant entry internal dcl 654 ref 214 311 333 334 author 004146 constant entry internal dcl 619 ref 234 308 catalog_entry 001471 constant entry internal dcl 243 ref 226 catalog_finished 001435 constant label dcl 233 ref 275 could_not_get_current_file 000362 constant label dcl 70 ref 82 97 156 device_name 002313 constant entry internal dcl 345 ref 336 gal 004556 constant label dcl 2-51 ref 2-39 gcos_catalog 000573 constant entry internal dcl 125 ref 101 gcos_file 002001 constant entry internal dcl 305 ref 102 get_ascii_file_name 004432 constant entry internal dcl 2-8 ref 64 get_faulty_cat_file_entry 005100 constant entry internal dcl 3-5 ref 71 get_files 001012 constant label dcl 173 set ref 147 get_permissions 002322 constant entry internal dcl 360 ref 235 312 gtss_filact_funct18_ 000226 constant entry external dcl 14 millsec512 004105 constant entry internal dcl 595 ref 332 names_accumulated 001266 constant label dcl 206 next 004101 constant label dcl 558 ref 434 443 452 463 510 513 next_entry 001263 constant label dcl 203 ref 195 no_name 004211 constant label dcl 632 ref 636 638 640 not_add_name 001201 constant label dcl 197 ref 186 190 return_err4 000314 constant label dcl 55 ref 1-13 1-16 2-24 2-43 star_failed 000732 constant label dcl 148 store_temp_name 000510 constant entry internal dcl 109 ref 194 201 validate_status 004367 constant entry internal dcl 1-5 ref 62 NAME DECLARED BY CONTEXT OR IMPLICATION. translate builtin function ref 2-58 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6634 6714 6350 6644 Length 7542 6350 60 611 264 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gtss_filact_funct18_ 862 external procedure is an external procedure. store_temp_name 66 internal procedure is called during a stack extension. gcos_catalog internal procedure shares stack frame of external procedure gtss_filact_funct18_. catalog_entry internal procedure shares stack frame of external procedure gtss_filact_funct18_. gcos_file internal procedure shares stack frame of external procedure gtss_filact_funct18_. device_name internal procedure shares stack frame of external procedure gtss_filact_funct18_. get_permissions internal procedure shares stack frame of external procedure gtss_filact_funct18_. millsec512 internal procedure shares stack frame of external procedure gtss_filact_funct18_. author internal procedure shares stack frame of external procedure gtss_filact_funct18_. BCD_date internal procedure shares stack frame of external procedure gtss_filact_funct18_. validate_status internal procedure shares stack frame of external procedure gtss_filact_funct18_. get_ascii_file_name internal procedure shares stack frame of external procedure gtss_filact_funct18_. get_faulty_cat_file_entry internal procedure shares stack frame of external procedure gtss_filact_funct18_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gtss_filact_funct18_ 000100 arglist_ptr gtss_filact_funct18_ 000102 arg_ptr gtss_filact_funct18_ 000104 cat_filedescr_name_offset gtss_filact_funct18_ 000106 cont_ptr gtss_filact_funct18_ 000110 descriptor_ptr gtss_filact_funct18_ 000112 entry_count gtss_filact_funct18_ 000114 entry_ptr gtss_filact_funct18_ 000116 grc gtss_filact_funct18_ 000120 gseg gtss_filact_funct18_ 000122 high_b gtss_filact_funct18_ 000123 high_i gtss_filact_funct18_ 000124 i gtss_filact_funct18_ 000125 k gtss_filact_funct18_ 000126 last_sector_no gtss_filact_funct18_ 000127 ll gtss_filact_funct18_ 000130 nic gtss_filact_funct18_ 000131 number_of_catalog_entries gtss_filact_funct18_ 000132 n_ptr gtss_filact_funct18_ 000134 status_ptr gtss_filact_funct18_ 000136 total_names gtss_filact_funct18_ 000140 var_ptr gtss_filact_funct18_ 000142 mcp gtss_filact_funct18_ 000144 ascii_cat_file gtss_filact_funct18_ 000172 gtss_file_values gtss_filact_funct18_ 000302 FMS_cat_ptr gtss_filact_funct18_ 000304 Type_1_ptr gtss_filact_funct18_ 000306 Type_4_ptr gtss_filact_funct18_ 000310 buffer_ptr gtss_filact_funct18_ 000312 info_ptr gtss_filact_funct18_ 000314 acl_count gtss_filact_funct18_ 000316 acl_ptr gtss_filact_funct18_ 000320 options_ptr gtss_filact_funct18_ 000322 permissions_ptr gtss_filact_funct18_ 000324 def_cat_ptr gtss_filact_funct18_ 000326 def_cat_fill_len gtss_filact_funct18_ 000330 def_cat_type_1_ptr gtss_filact_funct18_ 000340 cfdl gcos_catalog 000341 file_name gcos_catalog 000362 i catalog_entry 000363 j catalog_entry 000406 upp get_permissions 000410 i get_permissions 000411 spx get_permissions 000412 l1 get_permissions 000413 l2 get_permissions 000414 l3 get_permissions 000415 n32 get_permissions 000425 m get_permissions 000436 mcv millsec512 000440 cv millsec512 000450 r author 000452 p1 author 000453 p2 author 000454 a author 000464 al author 000474 d24 BCD_date 000502 d6 BCD_date 000504 b36 BCD_date 000514 status_pointer validate_status 000524 ap get_ascii_file_name THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs alloc_bs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc return mod_fx1 shorten_stack ext_entry int_entry_desc trunc_fx2 any_to_any_tr divide_fx1 divide_fx3 empty THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ date_time_$fstime datebin_$preceding_midnight gtss_ascii_bcd_ gtss_attributes_mgr_$get gtss_bcd_ascii_$lc gtss_expand_pathname_ hcs_$get_author hcs_$list_acl hcs_$list_dir_acl hcs_$star_ ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$dirseg error_table_$no_dir error_table_$nomatch gse_ext_$umc_name gtss_ext_$db gtss_ext_$deferred_catalogs_ptr gtss_ext_$hcs_work_area_ptr gtss_ust_ext_$ust LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000220 687 000233 688 000235 693 000236 694 000237 698 000240 703 000241 704 000243 725 000245 730 000246 11 12 000247 11 83 000250 11 216 000251 11 230 000252 14 6 000253 15 5 000254 17 7 000255 17 22 000256 43 000257 44 000263 45 000270 46 000273 47 000276 48 000301 50 000304 53 000305 55 000314 56 000315 57 000320 59 000321 62 000325 64 000334 70 000362 71 000363 72 000373 73 000376 76 000377 82 000427 87 000432 88 000435 90 000441 92 000444 94 000446 95 000461 96 000464 97 000471 99 000472 101 000474 102 000500 104 000501 105 000503 106 000506 109 000507 116 000523 117 000534 118 000542 119 000546 120 000553 121 000562 122 000572 125 000573 133 000574 134 000600 135 000601 136 000606 137 000612 146 000723 147 000727 148 000732 149 000733 156 000771 165 000772 166 000775 167 000777 171 001011 173 001012 175 001021 176 001026 181 001030 182 001037 183 001045 184 001063 185 001071 186 001103 187 001104 188 001106 189 001112 190 001124 191 001125 192 001131 193 001135 194 001141 195 001177 197 001201 201 001203 203 001263 206 001266 208 001267 209 001271 214 001315 216 001331 217 001332 218 001334 223 001335 224 001355 225 001356 226 001366 231 001420 232 001434 233 001435 234 001436 235 001444 241 001470 243 001471 252 001502 253 001503 255 001542 256 001545 257 001553 262 001600 263 001613 264 001623 266 001624 267 001626 268 001631 269 001633 271 001643 272 001645 273 001647 274 001652 275 001660 277 001661 278 001666 279 001670 280 001677 281 001710 282 001712 283 001715 284 001717 286 001721 287 001730 292 001756 293 001770 295 002000 305 002001 306 002002 307 002005 308 002031 309 002037 310 002042 311 002063 312 002077 318 002123 319 002126 320 002147 321 002155 322 002157 323 002161 324 002164 325 002166 326 002170 328 002174 329 002177 330 002201 331 002210 332 002212 333 002225 334 002241 335 002255 336 002261 337 002274 338 002277 339 002301 340 002303 341 002310 342 002312 345 002313 356 002315 360 002322 564 002340 376 002342 377 002343 378 002350 379 002354 380 002361 381 002363 390 002432 391 002435 395 002475 397 002476 399 002477 408 002546 409 002551 419 002664 420 002670 423 002730 427 002731 428 002732 429 002741 430 002743 431 002750 434 002773 436 002774 437 003001 439 003002 440 003007 443 003032 445 003033 448 003040 449 003052 450 003064 451 003070 452 003146 454 003147 455 003164 456 003170 459 003172 460 003217 461 003223 462 003230 463 003257 465 003260 466 003261 467 003264 468 003266 469 003275 470 003277 471 003302 472 003305 473 003311 474 003312 475 003314 476 003340 479 003343 480 003350 481 003354 486 003403 487 003426 489 003427 490 003433 495 003462 496 003506 499 003510 500 003511 507 003542 508 003543 509 003557 510 003563 511 003573 512 003601 513 003622 515 003624 516 003625 517 003630 518 003632 519 003641 520 003643 521 003646 522 003651 523 003655 524 003656 525 003660 526 003704 529 003707 530 003714 531 003720 536 003747 537 003767 539 003771 540 003775 545 004024 546 004044 549 004047 550 004050 558 004101 559 004102 560 004104 595 004105 603 004107 604 004111 606 004115 607 004126 619 004146 645 004150 625 004152 632 004206 635 004214 636 004226 637 004227 638 004241 639 004242 640 004246 641 004250 643 004271 654 004277 660 004301 661 004322 671 004340 672 004361 1 5 004367 1 9 004371 1 13 004373 1 16 004400 1 20 004420 1 21 004426 1 22 004431 2 8 004432 2 19 004434 2 20 004437 2 22 004440 2 24 004451 2 26 004452 2 28 004456 2 29 004463 2 30 004471 2 33 004474 2 35 004476 2 36 004503 2 38 004511 2 39 004513 2 42 004514 2 43 004533 2 46 004534 2 47 004542 2 49 004553 2 51 004556 2 52 004557 2 56 004567 2 57 004601 2 58 004603 2 61 004622 2 62 004623 2 68 004651 2 70 004653 2 71 004657 2 72 004675 2 73 004705 2 74 004735 2 77 004737 2 79 004755 2 85 004764 2 86 004773 2 87 005011 2 91 005041 2 92 005046 2 94 005053 2 96 005055 2 98 005063 2 101 005065 2 102 005066 2 103 005073 3 5 005100 3 10 005102 ----------------------------------------------------------- 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