COMPILATION LISTING OF SEGMENT gcos_verify_tss_access_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 09/09/83 1146.4 mst Fri Options: optimize map 1 /* ************************************************************* 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1979 by Honeywell Information Systems, Inc. * 6* * * 7* ************************************************************* */ 8 9 gcos_verify_tss_access_: proc (dname, ename, permissions, buf_ptr, forced_acl_flag, fms_code); 10 11 /* This program attempts to simulate the method in which GCOS propagates permissions 12* thru catalogs. On each catalog created by gtss, the 10-bit permissions word passed 13* to filact is converted to a character string and placed in the person field of an acl. 14* The project field is either "*" for general permissions or an all upper-case project 15* name for specific permissions. The tag field is always "g". On files, filact puts 16* the permissions in a more typical Multics acl with *.*.* for general and *.project.* 17* for specific, project again being all upper case. Because of the way GCOS does things, 18* and because of the way in which we have implemented this on Multics, it is possible 19* that a user may be able to access a file on which he does not have the appropriate 20* Multics access. In such a case, the appropriate access is forced for that individual 21* (person.project.instance), a bit is returned to indicate that this has been done, and 22* at gtss_ios_$close time, a call is made to gtss_verify_access_$check_forced_access 23* who removes that forced access if it is there. 24* 25* Author: Paul W. Benjamin 12/14/79 26* Changed: Mel Wilson 01/08/80 to handle multi_segment files 27* and to lessen interference between an interactive user and an absentee run 28* Changed: Sandy Bartlet 01/26/80 to allow SysDaemon and SysSfwr 29* unlimited file access 30* Changed: Sandy Bartlet 02/21/80 to fix SysDaemon/SysSfwr unlimited 31* access and to fix so msf will be able to get forced acl 32* Changed: Dave Ward 07/30/81 provided gtss_filat_error_status_ as internal for 9.0. 33* 34**/ 35 36 dcl (dname, ename) char (*) parm; 37 dcl permissions bit (6) parm; 38 dcl buf_ptr ptr parm; 39 dcl forced_acl_flag bit parm; 40 dcl fms_code bit (72) aligned parm; 41 dcl 1 fms_overlay aligned based (addr (fms_code)), 42 2 gcos_status bit (12) unal, 43 2 pad bit (60) unal; 44 45 forced_acl_flag = "0"b; 46 call user_info_ (person, umc, acct); 47 UMC = translate (umc, "QWERTYUIOPASDFGHJKLZXCVBNM", "qwertyuiopasdfghjklzxcvbnm"); 48 49 call msf_manager_$open (dname, ename, fcbptr, code); 50 if code ^= 0 then do; 51 gcos_status = gtss_filact_error_status_ (code); 52 return; 53 end; 54 55 call hcs_$get_author (dname, ename, 1b, originator, code); 56 if code ^= 0 then do; 57 gcos_status = gtss_filact_error_status_ (code); 58 goto bailout; 59 end; 60 61 originator = before (after (originator, "."), "."); 62 if originator = umc | umc = "SysDaemon" | umc = "SysSfwr" then do; 63 a = empty (); 64 call msf_manager_$acl_list (fcbptr, addr (a), sa_ptr, null (), sa_count, code); 65 if code ^= 0 then do; 66 if code = error_table_$incorrect_access then do; 67 sa_count = 0; 68 end; 69 else do; 70 gcos_status = gtss_filact_error_status_ (code); 71 goto bailout; 72 end; 73 end; 74 found_sp = "1"b; /* give the originator any permissions wanted */ 75 sa_sp = "111"b; 76 goto check_request (bin (permissions)); 77 end; 78 79 80 if ^gcos_ext_stat_$skip_umc then /* "-drm smc" in gtss terms */ 81 prefix_level = count ((gcos_ext_stat_$pathname_prefix), ">"); 82 else prefix_level = 2; /* "-drm umc" */ 83 84 temp_dir = ""; /* trim the leading ">" */ 85 temp_name = after (rtrim (dname), ">"); 86 do i = 1 to prefix_level; /* get the pathname prior to the umc into temp_dir */ 87 temp_dir = temp_dir || ">" || before (temp_name, ">"); 88 temp_name = after (temp_name, ">"); 89 end; 90 91 do i = 1 to hbound (cat, 1) - 1 92 while (index (temp_name, ">") ^= 0); /* Find levels betwixt umc and files */ 93 cat_dir (i) = temp_dir; 94 cat_name (i) = before (temp_name, ">"); 95 temp_dir = temp_dir || ">" || before (temp_name, ">"); 96 temp_name = after (temp_name, ">"); 97 end; 98 99 cat_dir (i) = temp_dir; 100 cat_name (i) = temp_name; 101 cat_num = i; 102 do i = 1 to cat_num; /* Find propagation acls for general and specific at each level. */ 103 a = empty (); 104 call hcs_$list_dir_acl (cat_dir (i), cat_name (i), addr (a), da_ptr, null (), da_count, code); 105 if code ^= 0 then do; 106 if code = error_table_$incorrect_access then 107 da_count = 0; 108 else do; 109 gcos_status = gtss_filact_error_status_ (code); 110 goto bailout; 111 end; 112 end; 113 114 found_sp, found_gp = "0"b; 115 cat.gp (i), cat.sp (i) = "NONE"; 116 do j = 1 to da_count while (^found_gp | ^found_sp); 117 if index (da_name (j), "."||rtrim (UMC)||".g") ^= 0 then do; 118 cat.sp (i) = substr (da_name (j), 1, 10); 119 found_sp = "1"b; 120 end; 121 else if index (da_name (j), ".*.g") ^= 0 then do; 122 cat.gp (i) = substr (da_name (j), 1, 10); 123 found_gp = "1"b; 124 end; 125 end; 126 end; 127 128 /* Accumulate permissions through each catalog */ 129 130 have_sp = "0"b; 131 working_perm = "0"b; 132 do i = 1 to cat_num; 133 if ^have_sp then do; /* no specific perms encountered yet */ 134 if cat.sp (i) ^= "NONE" then do; /* just encountered first specific permissions */ 135 working_perm = bit (cat.sp (i)); /* replace (override) accumulated g.p. */ 136 have_sp = "1"b; /* switch to spec. perm. */ 137 end; 138 else if cat.gp (i) ^= "NONE" then 139 working_perm = working_perm | bit (cat.gp (i)); /* accumulate g.p. */ 140 end; 141 142 else do; /* have previously switched to specific permissions */ 143 if cat.sp (i) ^= "NONE" then 144 working_perm = bit (cat.sp (i)); /* new s.p. override old */ 145 end; 146 end; 147 148 found_sp, found_gp, sa_sp, sa_gp = "0"b; 149 a = empty (); /* Look at segment acl */ 150 call msf_manager_$acl_list (fcbptr, addr (a), sa_ptr, null (), sa_count, code); 151 if code ^= 0 then do; 152 if code = error_table_$incorrect_access then 153 sa_count = 0; 154 else do; 155 gcos_status = gtss_filact_error_status_ (code); 156 goto bailout; 157 end; 158 end; 159 do i = 1 to sa_count while (^found_gp | ^found_sp); 160 if sa_name (i) = "*.*.*" then do; 161 sa_gp = substr (sa_modes (i), 1, 3); 162 found_gp = "1"b; 163 end; 164 else if sa_name (i) = "*."||rtrim (UMC)||".*" then do; 165 sa_sp = substr (sa_modes (i), 1, 3); 166 found_sp = "1"b; 167 end; 168 end; 169 170 goto check_request (bin (permissions)); /* convert gcos to multics access */ 171 172 173 check_request (5): check_request (6): check_request (7): 174 check_request (9): check_request (10): check_request (11): check_request (12): check_request (13): check_request (14): check_request (15): 175 check_request (18): check_request (19): 176 check_request (21): check_request (22): check_request (23): check_request (24): check_request (25): check_request (26): check_request (27): check_request (28): check_request (29): check_request (30): check_request (31): 177 check_request (34): check_request (35): check_request (36): check_request (37): check_request (38): check_request (39): 178 check_request (41): check_request (42): check_request (43): 179 check_request (45): check_request (46): check_request (47): 180 check_request (50): check_request (51): check_request (52): check_request (53): check_request (54): check_request (55): check_request (56): check_request (57): check_request (58): check_request (59): 181 check_request (61): check_request (62): check_request (63): 182 gcos_status = "4044"b3; /* Illegal options combination. */ 183 goto bailout; 184 185 186 check_request (0): 187 check_request (1): 188 check_request (2): 189 check_request (3): 190 check_request (32): 191 check_request (33): 192 check_request (44): 193 gc_need = "1000000000"b; /* GCOS r, Multics r */ 194 mu_need = "100"b; 195 goto check_end; 196 197 198 check_request (4): 199 gc_need = "0001000000"b; /* GCOS e, Multics r */ 200 mu_need = "100"b; 201 goto check_end; 202 203 204 check_request (8): 205 gc_need = "0010000000"b; /* GCOS a, Multics r */ 206 mu_need = "100"b; 207 goto check_end; 208 209 210 check_request (16): 211 check_request (17): 212 check_request (20): 213 check_request (48): 214 check_request (49): 215 gc_need = "0100000000"b; /* GCOS w, Multics rw */ 216 mu_need = "101"b; 217 goto check_end; 218 219 220 check_request (40): 221 gc_need = "1010000000"b; /* GCOS ra, Multics r */ 222 mu_need = "100"b; 223 goto check_end; 224 225 226 check_request (60): 227 gc_need = "0000000001"b; /* GCOS x, Multics rw */ 228 mu_need = "101"b; 229 230 231 check_end: 232 233 /* Check requested permissions vs accumulated permissions */ 234 if found_sp then do; /* honour specific perms on file */ 235 if (^mu_need | sa_sp) ^= "111"b then 236 goto permission_denied; 237 end; 238 else if have_sp then do; /* honour specific perms on containing catalog */ 239 if (^gc_need | working_perm) ^= (10)"1"b then 240 goto permission_denied; 241 end; 242 else if ((^mu_need | sa_gp) ^= "111"b) 243 & ((^gc_need | working_perm) ^= (10)"1"b) then 244 goto permission_denied; /* no general permissions */ 245 246 /* HAVE accumulated enough permissions thru catalogs. */ 247 do i = 1 to sa_count; /* check for relevant acl on file */ 248 call match_star_name_ (get_group_id_ (), sa_name (i), code); 249 if code = 0 then 250 goto found_acl_match; 251 end; 252 goto force_access; /* no matching acl - go force what we want */ 253 254 found_acl_match: 255 if (^mu_need | substr (sa_modes (i), 1, 3)) ^= "111"b then 256 goto force_access; 257 258 permission_granted: 259 gcos_status = "4000"b3; /* Successful. */ 260 bailout: 261 call msf_manager_$close (fcbptr); 262 return; 263 264 265 permission_denied: 266 call gcos_fms_error_ (gcos_et_$fms_perms_denied, buf_ptr, fms_code); /* Permissions denied. */ 267 goto bailout; 268 269 270 force_access: 271 force_name, force_dir_name = get_group_id_ (); 272 force_modes = mu_need; 273 force_dir_modes = "111"b; 274 call hcs_$add_dir_acl_entries (dname, ename, addr (force_dir_acl), 1, code); 275 if code ^= 0 then 276 if code ^= error_table_$nondirseg then do; 277 gcos_status = gtss_filact_error_status_ (code); 278 goto bailout; 279 end; 280 call msf_manager_$acl_add (fcbptr, addr (force_acl), 1, code); 281 if code ^= 0 then do; 282 gcos_status = gtss_filact_error_status_ (code); 283 goto bailout; 284 end; 285 forced_acl_flag = "1"b; 286 goto permission_granted; 287 288 check_forced_access: entry (dname, ename, forced_acl_flag); 289 290 /* Remove forced acl, if set. */ 291 292 if forced_acl_flag then do; 293 dl_name, force_dir_name = get_group_id_ (); 294 force_dir_modes = "111"b; 295 call hcs_$add_dir_acl_entries (dname, ename, addr (force_dir_acl), 1, code); 296 call msf_manager_$open (dname, ename, fcbptr, code); 297 if code ^= 0 then 298 return; 299 call msf_manager_$acl_delete (fcbptr, addr (dl_array), 1, code); 300 call msf_manager_$close (fcbptr); 301 call hcs_$delete_dir_acl_entries (dname, ename, addr (dl_array), 1, code); 302 end; 303 return; 304 305 count: proc (in_string, target) returns (fixed bin); 306 dcl (in_string, target) char (*) parm; 307 308 j = 1; 309 k = 0; 310 do while (index (substr (in_string, j), target) ^= 0); 311 j = j + index (substr (in_string, j), target) + length (target) - 1; 312 k = k + 1; 313 end; 314 315 return (k); 316 317 318 dcl (j, k) fixed bin(24); 319 320 dcl (after, index, length, substr) builtin; 321 end count; 322 323 /* FOLLOWING PROCEDURE IS FROM gtss MODULES. 324* INCLUDED AS AN INTERNAL PROCEDURE TO RESOLVE 325* EXTERNAL REFERENCES FOR RELEASE 9.0. IN THE 326* FUTURE THIS SHOULD BE MADE AVAILABLE TO BOTH 327* SIMULATORS (dbw 07/30/81). 328**/ 329 gtss_filact_error_status_: proc (code) returns (bit (12)); 330 331 dcl code fixed bin (35); 332 333 if code = 0 then return ("4000"b3); /* no error */ 334 335 if code = error_table_$bad_ring_brackets 336 | code = error_table_$incorrect_access 337 | code = error_table_$moderr 338 | code = error_table_$no_s_permission 339 | code = error_table_$no_info then return ("4003"b3); /* permissions denied */ 340 341 if code = error_table_$dirseg 342 | code = error_table_$no_dir 343 | code = error_table_$noentry 344 | code = error_table_$nondirseg 345 | code = error_table_$not_seg_type 346 | code = error_table_$notadir then return ("4005"b3); /* incorrect cat/file description */ 347 348 if code = error_table_$namedup 349 | code = error_table_$segnamedup then return ("4011"b3); /* duplicate name */ 350 351 if code = error_table_$logical_volume_not_connected 352 | code = error_table_$pvid_not_found then return ("4025"b3); /* requested entry not on-line */ 353 354 return ("4047"b3); /* unaccountable error */ 355 356 dcl ( 357 error_table_$bad_ring_brackets, 358 error_table_$dirseg, 359 error_table_$incorrect_access, 360 error_table_$logical_volume_not_connected, 361 error_table_$moderr, 362 error_table_$namedup, 363 error_table_$no_dir, 364 error_table_$no_info, 365 error_table_$no_s_permission, 366 error_table_$noentry, 367 error_table_$nondirseg, 368 error_table_$not_seg_type, 369 error_table_$notadir, 370 error_table_$segnamedup, 371 error_table_$pvid_not_found 372 ) ext static fixed bin (35); 373 374 end gtss_filact_error_status_; 375 376 dcl a area (1000) ; 377 dcl acct char (32); 378 dcl 1 cat (10), 379 2 cat_dir char (168), 380 2 cat_name char (32), 381 2 gp char (10), 382 2 sp char (10); 383 dcl cat_num fixed; 384 dcl code fixed bin(35); 385 dcl 1 da_array (da_count) based (da_ptr), 386 2 da_name char (32), 387 2 da_modes bit (36), 388 2 da_code fixed bin(35); 389 dcl da_count fixed bin(24); 390 dcl da_ptr ptr; 391 dcl 1 dl_array, 392 2 dl_name char (32), 393 2 dl_code fixed bin(35); 394 dcl drm_len fixed; 395 dcl exclude bit (1); 396 dcl fcbptr ptr init (null ()); 397 dcl 1 force_acl, 398 2 force_name char (32), 399 2 force_modes bit (36), 400 2 mbz bit (36) init ("0"b), 401 2 force_code fixed bin(35); 402 dcl 1 force_dir_acl, 403 2 force_dir_name char (32), 404 2 force_dir_modes bit (36), 405 2 force_dir_code fixed bin(35); 406 dcl (found_gp, found_sp) bit (1); 407 dcl gc_need bit (10); 408 dcl gp_result bit (10); 409 dcl have_sp bit; 410 dcl (i, j) fixed bin(24); 411 dcl mu_need bit (3); 412 dcl originator char (32); 413 dcl person char (22); 414 dcl prefix_level fixed bin(24); 415 dcl 1 sa_array (sa_count) based (sa_ptr), 416 2 sa_name char (32), 417 2 sa_modes bit (36), 418 2 sa_pad bit (36), 419 2 sa_code fixed bin(35); 420 dcl sa_count fixed bin(24); 421 dcl sa_gp bit (3); 422 dcl sa_ptr ptr; 423 dcl sa_sp bit (3); 424 dcl sp_result bit (10); 425 dcl temp_dir char (168) varying; 426 dcl temp_name char (168) varying; 427 dcl (umc, UMC) char (9); 428 dcl working_perm bit (10); 429 430 431 dcl gcos_fms_error_ entry (fixed bin(35), ptr, bit (72) aligned); 432 dcl gcos_mme_bort_$system entry options (variable); 433 434 dcl ( 435 gcos_et_$fms_bad_cfdesc, 436 gcos_et_$fms_perms_denied, 437 gcos_et_$unimp_mme 438 ) fixed bin(35) ext; 439 440 1 1 /* BEGIN INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 1 2 /* 1 3* Changes to gcos_ext_stat_ must be made here AND gcos_ext_stat_.cds 1 4**/ 1 5 /* July 77 (MRJ) Mike Jordan. */ 1 6 /* Change: Mel Wilson Oct 1979 for gtss compatibility (Bell Canada). */ 1 7 /* Change: A. N. Kepner, March, 1978 to allow courtesy call i/o within cc routines. */ 1 8 /* Change: Dave Ward 06/01/81 Reorganized to eliminate alm object (using cds). Use of like structures. */ 1 9 /* Change: Scott C. Akers 01/26/82 Add tape_buffer_size for GEINOS processing. */ 1 10 /* Change: Ron Barstad 83-08-02 Added activity_card_num for execution report */ 1 11 /* Increased size of statistics for 4js3 MMEs */ 1 12 1 13 dcl gcos_ext_stat_$abort_reason char(128) varying /* abort reason from gcos pgm */ ext; 1 14 dcl gcos_ext_stat_$abort_return label /* abort return point */ ext; 1 15 dcl gcos_ext_stat_$activity_card_num pic "9999" ext; /* card number defining current activity */ 1 16 dcl gcos_ext_stat_$activity_name char(8) /* name of activity to be run */ ext; 1 17 dcl gcos_ext_stat_$activity_start_time fixed bin(71) /* TOD start of activity */ ext; 1 18 dcl gcos_ext_stat_$card_num pic "9999" /* ordinal number of card in input stream */ ext; 1 19 dcl gcos_ext_stat_$dbs (36)bit(1) /* Debugging switch. */ ext; 1 20 dcl gcos_ext_stat_$default_nondollar char(2) /* filecode where nondollar cards go by default */ ext; 1 21 dcl gcos_ext_stat_$dir_rings (3) fixed bin(3) /* ring brackets for created catalogs */ ext; 1 22 dcl gcos_ext_stat_$dpno char(100) varying /* arguments for call to dpunch */ ext; 1 23 dcl gcos_ext_stat_$dpo char(100) varying /* arguments for call to dprint */ ext; 1 24 dcl gcos_ext_stat_$endfc char(2) /* endfc value for endcopy processing */ ext; 1 25 dcl gcos_ext_stat_$er ptr /* fib pointer for *er */ ext; 1 26 dcl gcos_ext_stat_$etc_filecode char(2) /* filecode where $ ETC cards should be written */ ext; 1 27 dcl gcos_ext_stat_$gcos_slave_area_seg ptr /* pointer to gcos slave area segment */ ext; 1 28 dcl gcos_ext_stat_$gf fixed bin(24)/* sw used by getfield rtn */ ext; 1 29 dcl gcos_ext_stat_$incode fixed bin(24) /* switches to control incode processing */ ext; 1 30 dcl gcos_ext_stat_$increment_hold fixed bin(24) /* Holds increment for courtesy call returns. */ ext; 1 31 dcl gcos_ext_stat_$initial_cpu_time fixed bin(71) /* vcu time at activity start */ ext; 1 32 dcl gcos_ext_stat_$input_segment_path char(168) varying /* pathname of input segment */ ext; 1 33 dcl gcos_ext_stat_$jcl_warnings fixed bin(24) /* number warnings issued processing control cards */ ext; 1 34 dcl gcos_ext_stat_$job_cpu_time fixed bin(71) /* cpu usage at job start */ ext; 1 35 dcl gcos_ext_stat_$job_id char(18) varying /* unique job id for file naming */ ext; 1 36 dcl gcos_ext_stat_$job_real_time fixed bin(71) /* job start time in microseconds */ ext; 1 37 dcl gcos_ext_stat_$last_mme fixed bin(24)/* number of last mme executed */ ext; 1 38 dcl gcos_ext_stat_$ldrss fixed bin(24) /* loader shared stg. */ ext; 1 39 dcl gcos_ext_stat_$max_activities fixed bin(24)/* max activities in a job */ ext; 1 40 dcl gcos_ext_stat_$max_mem fixed bin(19) /* maximum memory available to an activity */ ext; 1 41 dcl gcos_ext_stat_$mme_rtrn label /* where to return at activity end */ ext; 1 42 dcl gcos_ext_stat_$nondollar char(2) /* non-dollar card file code */ ext; 1 43 dcl gcos_ext_stat_$nongcos char(2) /* filecode where nongcos dollar cards go */ ext; 1 44 dcl gcos_ext_stat_$normal_return label /* nonlocal goto for normal termination */ ext; 1 45 dcl gcos_ext_stat_$patchfile_ptr ptr /* pointer to patchfile */ ext; 1 46 dcl gcos_ext_stat_$pathname_prefix char(168)var ext; 1 47 dcl gcos_ext_stat_$pch ptr /* pointer to fib for syspunch collector file */ ext; 1 48 dcl gcos_ext_stat_$pdir char(168) varying /* pathname of process directory */ ext; 1 49 dcl gcos_ext_stat_$prt ptr /* pointer to fib for sysprint collector file */ ext; 1 50 dcl gcos_ext_stat_$rs ptr /* pointer to fib for geload r* collector file */ ext; 1 51 dcl gcos_ext_stat_$saveseg_ptr ptr /* pointer to save segment used by save/restart */ ext; 1 52 dcl gcos_ext_stat_$save_dir char(168) varying /* pathname of temp save directory */ ext; 1 53 dcl gcos_ext_stat_$seg_rings (3) fixed bin(3) /* ring brackets for created files */ ext; 1 54 dcl gcos_ext_stat_$sig_ptr ptr /* saved pointer to signal_ */ ext; 1 55 dcl gcos_ext_stat_$skip_umc bit(1) ext; 1 56 dcl gcos_ext_stat_$snumb bit (30) aligned /* snumb of the current job */ ext; 1 57 dcl gcos_ext_stat_$sought_label char(8) /* Label from GOTO, IF, or WHEN card */ ext; 1 58 dcl gcos_ext_stat_$statistics (3*44) fixed bin(24) /* mme usage statistics- 3 per mme */ ext; 1 59 dcl gcos_ext_stat_$stop_code fixed bin(24) /* debugging, print results and stop. */ ext; 1 60 dcl gcos_ext_stat_$storage_limit fixed bin(19) /* activity storage limit */ ext; 1 61 dcl gcos_ext_stat_$sysout_limit fixed bin(35) /* sysout line limit */ ext; 1 62 dcl gcos_ext_stat_$sysout_lines fixed bin(35) /* sysout lines used */ ext; 1 63 dcl gcos_ext_stat_$system_free_pointer ptr /* pointer to area for allocating in ext; set by gcos */ ext; 1 64 dcl gcos_ext_stat_$tape_buffer_size fixed bin(35) external static; /* tape buffer size for GEINOS. */ 1 65 dcl gcos_ext_stat_$temp_dir char(168) varying /* pathname of directory to hold temp files */ ext; 1 66 dcl gcos_ext_stat_$temp_seg_ptr ptr ext; 1 67 dcl gcos_ext_stat_$termination_code bit (18) /* termination code from gcos_mme_bort_ */ ext; 1 68 dcl gcos_ext_stat_$time_limit fixed bin(71) /* activity time limit */ ext; 1 69 dcl gcos_ext_stat_$userid char(12) /* the USERID */ ext; 1 70 dcl gcos_ext_stat_$validation_level fixed bin(3) /* current ring of execution */ ext; 1 71 1 72 /* Courtesy Call Queue 1 73* A queue for courtesy call addresses which must be saved during 1 74* execution of courtesy call routines. A courtesy call address is 1 75* saved each time a MME GEROUT or MME GEINOS, which specifies a 1 76* courtesy call, is executed within a courtesy call routine. Each 1 77* time a MME GEENDC is executed a courtesy call address will be 1 78* removed from this FIFO queue and the corresponding courtesy call 1 79* routine executed until the queue is empty. The FIFO "queue" is 1 80* implemented in a circular fashion. "next_avail" points to the 1 81* next empty location in the queue. "next_out" points to the 1 82* entry in the queue which has been in the queue longest. When 1 83* entering or removing entries from the queue the appropriate index 1 84* is incremented modulo the length of the queue. By convention the 1 85* queue is empty when "next_avail" equals "next_out". A 1 86* second convention is that the queue is considered to overflow 1 87* during an attempt to add an entry to the queue which would force 1 88* "next_avail" to "catch up" with "next_out". This means that 1 89* the last empty position in the queue will never be used. 1 90**/ 1 91 1 92 dcl 1 gcos_ext_stat_$courtesy_call_control aligned ext 1 93 , 3 courtesy_call 1 94 , 4 hold like save_machine_conditions /* Mach. conds. restored on courtesy call returns. */ 1 95 , 4 next_avail fixed bin(24) /* next available empty location in cc_queue. */ 1 96 , 4 next_out fixed bin(24) /* next entry to remove from cc_queue. */ 1 97 , 4 queue (6) fixed bin(24) 1 98 ; 1 99 2 1 /* BEGIN INCLUDE FILE gcos_save_mc.incl.pl1 (Wardd Multics) 09/12/81 0905.9 mst Sat */ 2 2 2 3 /* Structure to isolate the definition of the size of the 2 4*space needed to store he machine conditions structure (mc). 2 5**/ 2 6 dcl 1 save_machine_conditions based 2 7 , 3 save_space bit(1728) 2 8 ; 2 9 2 10 /* END INCLUDE FILE gcos_save_mc.incl.pl1 */ 1 100 1 101 1 102 dcl 1 gcos_ext_stat_$fct aligned ext, 1 103 3 fct (40) like fct_entry; 3 1 /* BEGIN INCLUDE FILE gcos_fct_entry.incl.pl1 (Wardd Multics) 05/30/81 1758.6 mst Sat */ 3 2 3 3 dcl 1 fct_entry aligned based, 3 4 2 filecode char(2) aligned, /* file code (or blank) */ 3 5 /* flags */ 3 6 2 sysout bit(1) unaligned, /* 1=file is sysout or dac */ 3 7 2 dac bit(1) unaligned, /* 1=file is dac,0=file is sysout */ 3 8 2 pad bit(34) unaligned, /* unused */ 3 9 2 fibptr ptr aligned /* ptr to fib for this file */ 3 10 ; 3 11 3 12 /* END INCLUDE FILE gcos_fct_entry.incl.pl1 */ 1 104 1 105 1 106 dcl 1 gcos_ext_stat_$save_data aligned ext, 1 107 3 save_data like save_data_entry; 4 1 /* BEGIN INCLUDE FILE gcos_save_data_entry.incl.pl1 (Wardd Multics) 07/01/81 1339.9 mst Wed */ 4 2 /* Change: Dave Ward 07/01/81 include gcos_flags_. */ 4 3 /* Change: Dave Ward 09/10/81 fib changed to fibs & likened to fib. */ 4 4 4 5 dcl 1 save_data_entry aligned based 4 6 ,3 flgs like flags /* system wide flgs */ 4 7 ,3 actid char(8) /* activity no. and accnt i.d. */ 4 8 ,3 short_actid bit(36) aligned /* short form of activity id */ 4 9 ,3 ident char(60) /* holds ident info from snumb card */ 4 10 ,3 psw bit(36) aligned /* program switch word */ 4 11 ,3 last_execute_act_no fixed bin(24)/* activity number of last $ EXECUTE card in job */ 4 12 ,3 activity_no fixed bin(24)/* activity number */ 4 13 ,3 job_time_limit fixed bin(71) /* job time limit */ 4 14 ,3 job_sysout_limit fixed bin(24)/* job sysout line limit */ 4 15 ,3 sysout_queue (10) char(32) /* sysout queue */ 4 16 ,3 sysout_queue_media (10) fixed bin(24)/* medium (print,punch) of each file on queue */ 4 17 ,3 sqindex fixed bin(24)/* curr offset in sysout queue */ 4 18 ,3 pathname_prefix char(168)varying /* prefix for gcos cfdescs */ 4 19 ,3 skip_umc aligned bit(1) /* flag to tell if we should skip umc names */ 4 20 ,3 job_deck pointer /* pointer to seg holding canonicalized job deck */ 4 21 ,3 jd_size fixed bin(24)/* size in words of job deck */ 4 22 ,3 jd_position fixed bin(24) /* position of current block of job deck */ 4 23 ,3 jd_rem_block_len fixed bin(24)/* words remaining in current block of job deck */ 4 24 ,3 syot_dir char(168)varying /* pathname of directory to hold sysout files */ 4 25 ,3 fibs (40) like fib 4 26 ,3 param (32) char(57)varying /* parameters */ 4 27 ; 4 28 5 1 /* BEGIN INCLUDE FILE gcos_flags.incl.pl1 (Wardd Multics) 07/01/81 1344.7 mst Wed */ 5 2 /* Change: Mel Wilson 03/01/79 to add gtssflag & identflag */ 5 3 /* Change: Dave Ward 07/01/81 revised, mad apart of gcos_ext_stat_. */ 5 4 5 5 5 6 /* Declaration of Simulator Wide Flags */ 5 7 5 8 dcl 1 flags aligned based, 5 9 2 ( 5 10 pad1, /* no longer used */ 5 11 copy, /* 1=copy option on|0=off */ 5 12 snumb, /* 1=snumb card read|0=not */ 5 13 ident, /* 1=ident card read|0=not */ 5 14 activ, /* 1=activity being defined|0=not */ 5 15 cc, /* 1=courtesy call active|0=not */ 5 16 pad2, /* no longer used */ 5 17 cksum, /* 1=don't check checksums|0=do */ 5 18 pad3, /* no longer used */ 5 19 wrapup, /* 1=processing wrapup after abort */ 5 20 5 21 /* FOLLOWING ADDED AFTER MARCH 73 */ 5 22 5 23 nosave, /* 1=disable save/restart function,0=not */ 5 24 pad4, /* no longer used */ 5 25 gcos, /* 1=job deck segment in gcos file format */ 5 26 raw, /* 1=sysout punch files to be converted to raw bit strings */ 5 27 list, /* 1=sysout print files to be converted to ascii */ 5 28 brief, /* 1=print nothing but fatal error messages on terminal */ 5 29 debug, /* 1=give option to call debug before aborting */ 5 30 no_canonicalize, /* 1=do NOT canonicalize job deck */ 5 31 5 32 /* 18 bits into first word */ 5 33 5 34 pad5, /* no longer used */ 5 35 dpunch, /* 1=dpunch sysout punch files;0=don't */ 5 36 dprint, /* 1=dprint sysout print files,0=don't */ 5 37 userid, /* 1=userid card read,0=not */ 5 38 userlib, /* 1= -userlib ctl arg given, see gcos_gein_ */ 5 39 dstar, /* 1=current activity card written on d* */ 5 40 write_etc, /* 1 tells get_cc_field to write $ ETC cards on etc_filecode */ 5 41 prev_act_abort, /* turned on by abort and off by $ BREAK */ 5 42 this_act_abort, /* turned on by abort to select abort disp codes */ 5 43 abort_subact, /* 1=processing abort subactivity */ 5 44 dump, /* 1=dump option given on activity card */ 5 45 nondollar, /* 1=reading nondollar card deck in gein */ 5 46 endjob, /* 1=cc_endjob already called once in this job */ 5 47 abort_card, /* 1=the terminator for this activity was a $ ABORT card */ 5 48 truncate, /* 1=truncate option given:truncate long ascii input lines */ 5 49 continue, /* 1=continue option given:continue after nonfatal errors */ 5 50 rout, /* 1=gcos_mme_rout_ was called in this activity */ 5 51 seeking, /* 1=gein is looking for a label and/or terminator */ 5 52 5 53 /* end of first word */ 5 54 5 55 seeking_terminator, /* 1=gein is looking for a terminator */ 5 56 lower_case, /* 1=lower case print conversion wanted */ 5 57 no_bar, /* 1=do not run slave program in BAR mode */ 5 58 long, /* 1=print some lines from execution reort on terminal */ 5 59 endfc, /* 1=process endfc option on endcopy card */ 5 60 gtssflag, /* 1=update gtss_user_state_ during execution */ 5 61 identflag, /* 1= use $ident banner info for print & punch */ 5 62 spawnflag, /* 1= entry due to tss spawn */ 5 63 taskflag /* 1= entry due to tss drl task */ 5 64 ) bit(1) unal, 5 65 2 pad6 bit(27)unal 5 66 ; 5 67 5 68 /* END INCLUDE FILE gcos_flags.incl.pl1 */ 4 29 4 30 4 31 /* END INCLUDE FILE gcos_save_data_entry.incl.pl1 */ 1 108 1 109 6 1 /* BEGIN INCLUDE FILE gcos_file_info_block_.incl.pl1 DAK - APRIL 74 */ 6 2 6 3 /* Declaration of File Information Block (fib) 6 4* 6 5* Change: Mel Wilson 11/01/79 for gtss compatibility 6 6* Change: Dave Ward 05/20/81 *_file constants. 6 7* Change: Dave Ward 05/29/81 separated fct structures. 6 8* Change: Dave Ward 09/02/81 provision for tape density 6250, dens_hist 2 bits (not 3). 6 9**/ 6 10 dcl 1 fib aligned based (fibptr) /* fib structure */ 6 11 6 12 , 2 buffer ptr aligned /* pointer to current buffer (gcos_write_) */ 6 13 , 2 buffer_indx fixed bin /* Index to buffer in use. */ 6 14 , 2 stream char(8)unal /* stream name for attaching this file */ 6 15 , 2 pathnm char(168)unal /* pathname (for disk, print or punch files) */ 6 16 , 2 unique_file_id bit(36) /* multics unique segment id for file */ 6 17 , 2 indicators /* five words of flags */ 6 18 6 19 , 3 indicators_word_1 6 20 , 4 used bit(1) unal /* 1=fib used, 0=fib used */ 6 21 , 4 attached bit(1) unal /* 1=stream is attached */ 6 22 , 4 type bit(1) unal /* 1=random, 0=linked */ 6 23 , 4 perm bit(1) unal /* 1=permanent file, 0=not */ 6 24 , 4 print bit(1) unal /* 1=file type is printer */ 6 25 , 4 punch bit(1) unal /* 1=file type is punch */ 6 26 , 4 reader bit(1) unal /* 1=file type is card reader */ 6 27 , 4 tape bit(1) unal /* 1=file type is tape */ 6 28 , 4 console bit(1) unal /* 1=file type is console typewriter */ 6 29 , 4 read bit(1) unal /* 1=read access permitted */ 6 30 , 4 write bit(1) unal /* 1=write access permitted */ 6 31 , 4 null bit(1) unal /* 1=file is null */ 6 32 , 4 purge bit(1) unal /* 1=purge file at time on release */ 6 33 , 4 gein bit(1) unal /* 1 = this file contains data cards from the job deck */ 6 34 , 4 disp bit(2) unal /* disposition code: 6 35* 00 = dismount 6 36* 01 = release 6 37* 10 = save 6 38* 11 = continue */ 6 39 , 4 adisp bit(2) unal /* abort disp - same codes as disp */ 6 40 , 4 order bit(1) unal /* 1 = write, 0 = read or other */ 6 41 , 4 mode bit(2) unal /* tape i/o mode 6 42* 00 = binary 6 43* 01 = decimal 6 44* 10 = nine */ 6 45 , 4 tracks bit(2) unal /* tape request code: 6 46* 00 = installation default 6 47* 01 = 7 track 6 48* 10 = 9 track */ 6 49 , 4 density bit(4) unal /* tape density from $ TAPE card 6 50* 0000 = site standard high 6 51* 0001 = 200 bpi 6 52* 0010 = 556 bpi 6 53* 0100 = 800 bpi 6 54* 1001 = 1600 bpi 6 55* 1100 = 6250 bpi 6 56* 1111 = handler capable of any appropriate denisty */ 6 57 , 4 dens_hist bit(2) unal /* density history for MME GEFADD */ 6 58 , 4 forced_acl_flag bit(1) unal /* 1 => acl forced for gtss file (2.4) */ 6 59 , 4 fill bit(6) unal /* reserved for future use */ 6 60 , 3 indicators_word_2 6 61 , 4 plud bit(18) unal /* primary log unit designator */ 6 62 /* bcd channel and channel number */ 6 63 6 64 , 4 slud bit(18) unal /* secondary log. unit designator */ 6 65 /* bcd channel and channel number */ 6 66 , 3 indicators_word_3 6 67 , 4 serial_no bit(30) unal /* tape serial number */ 6 68 , 4 pad bit( 6) unal /* unused */ 6 69 , 3 indicators_word_4 6 70 , 4 tape_name bit(72) unal /* tape name */ 6 71 6 72 , 2 current fixed bin(21) /* current file position */ 6 73 , 2 last fixed bin(21) /* eof for sequential disk files */ 6 74 , 2 size fixed bin(24) /* offset of end of file in words */ 6 75 , 2 init_size fixed bin(24) /* file size at start of activity */ 6 76 , 2 init_posit fixed bin(24) /* file position at start of activity */ 6 77 , 2 iocount fixed bin(35) /* total no. of i/o operations */ 6 78 , 2 rec_len fixed bin(24) /* length of current record (gcos_write_) */ 6 79 , 2 command_count fixed bin(17) unal /* size of command table for device (gcos_mme_inos_) */ 6 80 , 2 command_index fixed bin(17) unal /* pointer to command table entry (gcos_mme_inos_) */ 6 81 , 2 error_retry fixed bin(17) unal /* error retry counter */ 6 82 , 2 seq_no fixed bin(17) unal /* tape reel sequence no */ 6 83 ; 6 84 dcl fibptr ptr /* pointer to current fib in gcos_ext_stat_ */; 6 85 6 86 /* File usage classification constants: */ 6 87 dcl linked_file bit(1)static int options(constant)init("0"b); 6 88 dcl random_file bit(1)static int options(constant)init("1"b); 6 89 dcl read_file bit(1)static int options(constant)init("0"b); 6 90 dcl write_file bit(1)static int options(constant)init("1"b); 6 91 6 92 /* END INCLUDE FILE gcos_file_info_block_.incl.pl1 */ 1 110 1 111 1 112 dcl 1 gcos_ext_stat_$mc like mc /* machine condition from abort or fault */ ext; 7 1 /* */ 7 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 7 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 7 4 /* Modified 07/07/76 by Morris for fault register data */ 7 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 7 6 /* Modified '82 to make values constant */ 7 7 7 8 /* words 0-15 pointer registers */ 7 9 7 10 dcl mcp ptr; 7 11 7 12 dcl 1 mc based (mcp) aligned, 7 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 7 14 (2 regs, /* registers */ 7 15 3 x (0:7) bit (18), /* index registers */ 7 16 3 a bit (36), /* accumulator */ 7 17 3 q bit (36), /* q-register */ 7 18 3 e bit (8), /* exponent */ 7 19 3 pad1 bit (28), 7 20 3 t bit (27), /* timer register */ 7 21 3 pad2 bit (6), 7 22 3 ralr bit (3), /* ring alarm register */ 7 23 7 24 2 scu (0:7) bit (36), 7 25 7 26 2 mask bit (72), /* mem controller mask at time of fault */ 7 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 7 28 2 errcode fixed bin (35), /* fault handler's error code */ 7 29 2 fim_temp, 7 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 7 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 7 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 7 33 2 fault_reg bit (36), /* fault register */ 7 34 2 pad2 bit (1), 7 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 7 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 7 37 2 fault_time bit (54), /* time of fault */ 7 38 7 39 2 eis_info (0:7) bit (36)) unaligned; 7 40 7 41 7 42 dcl (apx fixed bin init (0), 7 43 abx fixed bin init (1), 7 44 bpx fixed bin init (2), 7 45 bbx fixed bin init (3), 7 46 lpx fixed bin init (4), 7 47 lbx fixed bin init (5), 7 48 spx fixed bin init (6), 7 49 sbx fixed bin init (7)) internal static options (constant); 7 50 7 51 7 52 7 53 7 54 dcl scup ptr; 7 55 7 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 7 57 7 58 7 59 /* WORD (0) */ 7 60 7 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 7 62 3 prr bit (3), /* procedure ring register */ 7 63 3 psr bit (15), /* procedure segment register */ 7 64 3 p bit (1), /* procedure privileged bit */ 7 65 7 66 2 apu, /* APPENDING UNIT STATUS */ 7 67 3 xsf bit (1), /* ext seg flag - IT modification */ 7 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 7 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 7 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 7 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 7 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 7 73 3 dsptw bit (1), /* Fetch of DSPTW */ 7 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 7 75 3 sdwp bit (1), /* Fetch of SDW paged */ 7 76 3 ptw bit (1), /* Fetch of PTW */ 7 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 7 78 3 fap bit (1), /* Fetch of final address paged */ 7 79 3 fanp bit (1), /* Fetch of final address non-paged */ 7 80 3 fabs bit (1), /* Fetch of final address absolute */ 7 81 7 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 7 83 7 84 7 85 /* WORD (1) */ 7 86 7 87 2 fd, /* FAULT DATA */ 7 88 3 iro bit (1), /* illegal ring order */ 7 89 3 oeb bit (1), /* out of execute bracket */ 7 90 3 e_off bit (1), /* no execute */ 7 91 3 orb bit (1), /* out of read bracket */ 7 92 3 r_off bit (1), /* no read */ 7 93 3 owb bit (1), /* out of write bracket */ 7 94 3 w_off bit (1), /* no write */ 7 95 3 no_ga bit (1), /* not a gate */ 7 96 3 ocb bit (1), /* out of call bracket */ 7 97 3 ocall bit (1), /* outward call */ 7 98 3 boc bit (1), /* bad outward call */ 7 99 3 inret bit (1), /* inward return */ 7 100 3 crt bit (1), /* cross ring transfer */ 7 101 3 ralr bit (1), /* ring alarm register */ 7 102 3 am_er bit (1), /* associative memory fault */ 7 103 3 oosb bit (1), /* out of segment bounds */ 7 104 3 paru bit (1), /* processor parity upper */ 7 105 3 parl bit (1), /* processor parity lower */ 7 106 3 onc_1 bit (1), /* op not complete type 1 */ 7 107 3 onc_2 bit (1), /* op not complete type 2 */ 7 108 7 109 2 port_stat, /* PORT STATUS */ 7 110 3 ial bit (4), /* illegal action lines */ 7 111 3 iac bit (3), /* illegal action channel */ 7 112 3 con_chan bit (3), /* connect channel */ 7 113 7 114 2 fi_num bit (5), /* (fault/interrupt) number */ 7 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 7 116 7 117 7 118 /* WORD (2) */ 7 119 7 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 7 121 3 trr bit (3), /* temporary ring register */ 7 122 3 tsr bit (15), /* temporary segment register */ 7 123 7 124 2 pad2 bit (9), 7 125 7 126 2 cpu_no bit (3), /* CPU number */ 7 127 7 128 2 delta bit (6), /* tally modification DELTA */ 7 129 7 130 7 131 /* WORD (3) */ 7 132 7 133 2 word3 bit (18), 7 134 7 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 7 136 3 tsna, /* Word 1 status */ 7 137 4 prn bit (3), /* Word 1 PR number */ 7 138 4 prv bit (1), /* Word 1 PR valid bit */ 7 139 3 tsnb, /* Word 2 status */ 7 140 4 prn bit (3), /* Word 2 PR number */ 7 141 4 prv bit (1), /* Word 2 PR valid bit */ 7 142 3 tsnc, /* Word 3 status */ 7 143 4 prn bit (3), /* Word 3 PR number */ 7 144 4 prv bit (1), /* Word 3 PR valid bit */ 7 145 7 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 7 147 7 148 7 149 /* WORD (4) */ 7 150 7 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 7 152 7 153 2 ir, /* INDICATOR REGISTERS */ 7 154 3 zero bit (1), /* zero indicator */ 7 155 3 neg bit (1), /* negative indicator */ 7 156 3 carry bit (1), /* carryry indicator */ 7 157 3 ovfl bit (1), /* overflow indicator */ 7 158 3 eovf bit (1), /* eponent overflow */ 7 159 3 eufl bit (1), /* exponent underflow */ 7 160 3 oflm bit (1), /* overflow mask */ 7 161 3 tro bit (1), /* tally runout */ 7 162 3 par bit (1), /* parity error */ 7 163 3 parm bit (1), /* parity mask */ 7 164 3 bm bit (1), /* ^bar mode */ 7 165 3 tru bit (1), /* truncation mode */ 7 166 3 mif bit (1), /* multi-word instruction mode */ 7 167 3 abs bit (1), /* absolute mode */ 7 168 3 pad bit (4), 7 169 7 170 7 171 /* WORD (5) */ 7 172 7 173 2 ca bit (18), /* COMPUTED ADDRESS */ 7 174 7 175 2 cu, /* CONTROL UNIT STATUS */ 7 176 3 rf bit (1), /* on first cycle of repeat instr */ 7 177 3 rpt bit (1), /* repeat instruction */ 7 178 3 rd bit (1), /* repeat double instruction */ 7 179 3 rl bit (1), /* repeat link instruciton */ 7 180 3 pot bit (1), /* IT modification */ 7 181 3 pon bit (1), /* return type instruction */ 7 182 3 xde bit (1), /* XDE from Even location */ 7 183 3 xdo bit (1), /* XDE from Odd location */ 7 184 3 poa bit (1), /* operation preparation */ 7 185 3 rfi bit (1), /* tells CPU to refetch instruction */ 7 186 3 its bit (1), /* ITS modification */ 7 187 3 if bit (1), /* fault occured during instruction fetch */ 7 188 7 189 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 7 190 7 191 7 192 /* WORDS (6,7) */ 7 193 7 194 2 even_inst bit (36), /* even instruction of faulting pair */ 7 195 7 196 2 odd_inst bit (36); /* odd instruction of faulting pair */ 7 197 7 198 7 199 7 200 7 201 7 202 7 203 /* ALTERNATE SCU DECLARATION */ 7 204 7 205 7 206 dcl 1 scux based (scup) aligned, 7 207 7 208 (2 pad0 bit (36), 7 209 7 210 2 fd, /* GROUP II FAULT DATA */ 7 211 3 isn bit (1), /* illegal segment number */ 7 212 3 ioc bit (1), /* illegal op code */ 7 213 3 ia_am bit (1), /* illegal address - modifier */ 7 214 3 isp bit (1), /* illegal slave procedure */ 7 215 3 ipr bit (1), /* illegal procedure */ 7 216 3 nea bit (1), /* non existent address */ 7 217 3 oobb bit (1), /* out of bounds */ 7 218 3 pad bit (29), 7 219 7 220 2 pad2 bit (36), 7 221 7 222 2 pad3a bit (18), 7 223 7 224 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 7 225 3 prn bit (3), /* PR number */ 7 226 3 prv bit (1), /* PR valid bit */ 7 227 7 228 2 pad3b bit (6)) unaligned, 7 229 7 230 2 pad45 (0:1) bit (36), 7 231 7 232 2 instr (0:1) bit (36); /* Instruction ARRAY */ 7 233 7 234 7 235 7 236 /* END INCLUDE FILE mc.incl.pl1 */ 1 113 1 114 1 115 dcl 1 gcos_ext_stat_$gcos_gtss ext 1 116 , 3 gcos_gtss_ext 1 117 , 4 u_state_ptr ptr 1 118 , 4 snumb_index fixed bin(24) 1 119 , 4 home_path char(168) 1 120 ; 1 121 1 122 /* END INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 441 442 443 444 445 dcl 446 (error_table_$incorrect_access, 447 error_table_$nondirseg 448 ) fixed bin(35) ext; 449 450 dcl get_group_id_ entry returns (char (32)); 451 dcl hcs_$add_dir_acl_entries entry (char (*), char (*), ptr, fixed bin(24), fixed bin(35)); 452 dcl hcs_$delete_acl_entries entry (char (*), char (*), ptr, fixed bin(24), fixed bin(35)); 453 dcl hcs_$delete_dir_acl_entries entry (char (*), char (*), ptr, fixed bin(24), fixed bin(35)); 454 dcl hcs_$get_author entry (char (*), char (*), fixed bin(1), char (*), fixed bin(35)); 455 dcl hcs_$list_acl entry (char (*), char (*), ptr, ptr, ptr, fixed bin(24), fixed bin(35)); 456 dcl hcs_$list_dir_acl entry (char (*), char (*), ptr, ptr, ptr, fixed bin(24), fixed bin(35)); 457 dcl match_star_name_ entry (char (*), char (*), fixed bin(35)); 458 dcl msf_manager_$acl_add entry (ptr, ptr, fixed bin(24), fixed bin(35)); 459 dcl msf_manager_$acl_delete entry (ptr, ptr, fixed bin(24), fixed bin(35)); 460 dcl msf_manager_$acl_list entry (ptr, ptr, ptr, ptr, fixed bin(24), fixed bin(35)); 461 dcl msf_manager_$close entry (ptr); 462 dcl msf_manager_$open entry (char (*), char (*), ptr, fixed bin(35)); 463 dcl user_info_ entry (char (*), char (*), char (*)); 464 465 466 dcl (after, before, bin, bit, empty, index, null, rtrim, substr, translate) builtin; 467 end gcos_verify_tss_access_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/09/83 1007.2 gcos_verify_tss_access_.pl1 >spec>on>09/07/83-gcos>gcos_verify_tss_access_.pl1 441 1 09/08/83 1229.3 gcos_ext_stat_.incl.pl1 >spec>on>09/07/83-gcos>gcos_ext_stat_.incl.pl1 1-100 2 03/27/82 0424.8 gcos_save_mc.incl.pl1 >ldd>include>gcos_save_mc.incl.pl1 1-104 3 03/27/82 0424.8 gcos_fct_entry.incl.pl1 >ldd>include>gcos_fct_entry.incl.pl1 1-108 4 03/27/82 0424.8 gcos_save_data_entry.incl.pl1 >ldd>include>gcos_save_data_entry.incl.pl1 4-29 5 09/08/83 1230.3 gcos_flags.incl.pl1 >spec>on>09/07/83-gcos>gcos_flags.incl.pl1 1-110 6 03/27/82 0424.8 gcos_file_info_block_.incl.pl1 >ldd>include>gcos_file_info_block_.incl.pl1 1-113 7 08/17/83 1135.7 mc.incl.pl1 >ldd>include>mc.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. UMC 003362 automatic char(9) unaligned dcl 427 set ref 47* 117 164 a 000100 automatic area(1000) dcl 376 set ref 63* 64 64 103* 104 104 149* 150 150 376* acct 002050 automatic char(32) unaligned dcl 377 set ref 46* after builtin function dcl 466 ref 61 85 88 96 before builtin function dcl 466 ref 61 87 94 95 bin builtin function dcl 466 ref 76 170 bit builtin function dcl 466 ref 135 138 143 buf_ptr parameter pointer dcl 38 set ref 9 265* cat 002060 automatic structure array level 1 packed unaligned dcl 378 set ref 91 cat_dir 002060 automatic char(168) array level 2 packed unaligned dcl 378 set ref 93* 99* 104* cat_name 52 002060 automatic char(32) array level 2 packed unaligned dcl 378 set ref 94* 100* 104* cat_num 003126 automatic fixed bin(17,0) dcl 383 set ref 101* 102 132 code parameter fixed bin(35,0) dcl 331 in procedure "gtss_filact_error_status_" ref 329 333 335 335 335 335 335 341 341 341 341 341 341 348 348 351 351 code 003127 automatic fixed bin(35,0) dcl 384 in procedure "gcos_verify_tss_access_" set ref 49* 50 51* 55* 56 57* 64* 65 66 70* 104* 105 106 109* 150* 151 152 155* 248* 249 274* 275 275 277* 280* 281 282* 295* 296* 297 299* 301* da_array based structure array level 1 unaligned dcl 385 da_count 003130 automatic fixed bin(24,0) dcl 389 set ref 104* 106* 116 da_name based char(32) array level 2 packed unaligned dcl 385 ref 117 118 121 122 da_ptr 003132 automatic pointer dcl 390 set ref 104* 117 118 121 122 dl_array 003134 automatic structure level 1 unaligned dcl 391 set ref 299 299 301 301 dl_name 003134 automatic char(32) level 2 packed unaligned dcl 391 set ref 293* dname parameter char unaligned dcl 36 set ref 9 49* 55* 85 274* 288 295* 296* 301* empty builtin function dcl 466 ref 63 103 149 376 ename parameter char unaligned dcl 36 set ref 9 49* 55* 274* 288 295* 296* 301* error_table_$bad_ring_brackets 000054 external static fixed bin(35,0) dcl 356 ref 335 error_table_$dirseg 000056 external static fixed bin(35,0) dcl 356 ref 341 error_table_$incorrect_access 000020 external static fixed bin(35,0) dcl 445 in procedure "gcos_verify_tss_access_" ref 66 106 152 error_table_$incorrect_access 000060 external static fixed bin(35,0) dcl 356 in procedure "gtss_filact_error_status_" ref 335 error_table_$logical_volume_not_connected 000062 external static fixed bin(35,0) dcl 356 ref 351 error_table_$moderr 000064 external static fixed bin(35,0) dcl 356 ref 335 error_table_$namedup 000066 external static fixed bin(35,0) dcl 356 ref 348 error_table_$no_dir 000070 external static fixed bin(35,0) dcl 356 ref 341 error_table_$no_info 000072 external static fixed bin(35,0) dcl 356 ref 335 error_table_$no_s_permission 000074 external static fixed bin(35,0) dcl 356 ref 335 error_table_$noentry 000076 external static fixed bin(35,0) dcl 356 ref 341 error_table_$nondirseg 000022 external static fixed bin(35,0) dcl 445 in procedure "gcos_verify_tss_access_" ref 275 error_table_$nondirseg 000100 external static fixed bin(35,0) dcl 356 in procedure "gtss_filact_error_status_" ref 341 error_table_$not_seg_type 000102 external static fixed bin(35,0) dcl 356 ref 341 error_table_$notadir 000104 external static fixed bin(35,0) dcl 356 ref 341 error_table_$pvid_not_found 000110 external static fixed bin(35,0) dcl 356 ref 351 error_table_$segnamedup 000106 external static fixed bin(35,0) dcl 356 ref 348 fcbptr 003146 automatic pointer initial dcl 396 set ref 49* 64* 150* 260* 280* 296* 299* 300* 396* fct_entry based structure level 1 dcl 3-3 fib based structure level 1 dcl 6-10 flags based structure level 1 dcl 5-8 fms_code parameter bit(72) dcl 40 set ref 9 51 57 70 109 155 173 258 265* 277 282 fms_overlay based structure level 1 dcl 41 force_acl 003150 automatic structure level 1 unaligned dcl 397 set ref 280 280 force_dir_acl 003163 automatic structure level 1 unaligned dcl 402 set ref 274 274 295 295 force_dir_modes 10 003163 automatic bit(36) level 2 packed unaligned dcl 402 set ref 273* 294* force_dir_name 003163 automatic char(32) level 2 packed unaligned dcl 402 set ref 270* 293* force_modes 10 003150 automatic bit(36) level 2 packed unaligned dcl 397 set ref 272* force_name 003150 automatic char(32) level 2 packed unaligned dcl 397 set ref 270* forced_acl_flag parameter bit(1) unaligned dcl 39 set ref 9 45* 285* 288 292 found_gp 003175 automatic bit(1) unaligned dcl 406 set ref 114* 116 123* 148* 159 162* found_sp 003176 automatic bit(1) unaligned dcl 406 set ref 74* 114* 116 119* 148* 159 166* 231 gc_need 003177 automatic bit(10) unaligned dcl 407 set ref 186* 198* 204* 210* 220* 226* 239 242 gcos_et_$fms_perms_denied 000012 external static fixed bin(35,0) dcl 434 set ref 265* gcos_ext_stat_$pathname_prefix 000014 external static varying char(168) dcl 1-46 ref 80 gcos_ext_stat_$skip_umc 000016 external static bit(1) unaligned dcl 1-55 ref 80 gcos_fms_error_ 000010 constant entry external dcl 431 ref 265 gcos_status based bit(12) level 2 packed unaligned dcl 41 set ref 51* 57* 70* 109* 155* 173* 258* 277* 282* get_group_id_ 000024 constant entry external dcl 450 ref 248 248 270 293 gp 62 002060 automatic char(10) array level 2 packed unaligned dcl 378 set ref 115* 122* 138 138 have_sp 003200 automatic bit(1) unaligned dcl 409 set ref 130* 133 136* 238 hcs_$add_dir_acl_entries 000026 constant entry external dcl 451 ref 274 295 hcs_$delete_dir_acl_entries 000030 constant entry external dcl 453 ref 301 hcs_$get_author 000032 constant entry external dcl 454 ref 55 hcs_$list_dir_acl 000034 constant entry external dcl 456 ref 104 i 003201 automatic fixed bin(24,0) dcl 410 set ref 86* 91* 93 94* 99 100 101 102* 104 104 115 115 118 122* 132* 134 135 138 138 143 143* 159* 160 161 164 165* 247* 248* 254 in_string parameter char unaligned dcl 306 ref 305 310 311 index builtin function dcl 466 in procedure "gcos_verify_tss_access_" ref 91 117 121 index builtin function dcl 320 in procedure "count" ref 310 311 j 003202 automatic fixed bin(24,0) dcl 410 in procedure "gcos_verify_tss_access_" set ref 116* 117 118 121 122* j 000100 automatic fixed bin(24,0) dcl 318 in procedure "count" set ref 308* 310 311* 311 311 k 000101 automatic fixed bin(24,0) dcl 318 set ref 309* 312* 312 315 length builtin function dcl 320 ref 311 match_star_name_ 000036 constant entry external dcl 457 ref 248 mbz 11 003150 automatic bit(36) initial level 2 packed unaligned dcl 397 set ref 397* mc based structure level 1 dcl 7-12 msf_manager_$acl_add 000040 constant entry external dcl 458 ref 280 msf_manager_$acl_delete 000042 constant entry external dcl 459 ref 299 msf_manager_$acl_list 000044 constant entry external dcl 460 ref 64 150 msf_manager_$close 000046 constant entry external dcl 461 ref 260 300 msf_manager_$open 000050 constant entry external dcl 462 ref 49 296 mu_need 003203 automatic bit(3) unaligned dcl 411 set ref 194* 200* 206* 216* 222* 228* 235 242 254 272 null builtin function dcl 466 ref 64 64 104 104 150 150 396 originator 003204 automatic char(32) unaligned dcl 412 set ref 55* 61* 61 62 permissions parameter bit(6) unaligned dcl 37 ref 9 76 170 person 003214 automatic char(22) unaligned dcl 413 set ref 46* prefix_level 003222 automatic fixed bin(24,0) dcl 414 set ref 80* 82* 86 rtrim builtin function dcl 466 ref 85 117 164 sa_array based structure array level 1 unaligned dcl 415 sa_count 003223 automatic fixed bin(24,0) dcl 420 set ref 64* 67* 150* 152* 159 247 sa_gp 003224 automatic bit(3) unaligned dcl 421 set ref 148* 161* 242 sa_modes 10 based bit(36) array level 2 packed unaligned dcl 415 ref 161 165 254 sa_name based char(32) array level 2 packed unaligned dcl 415 set ref 160 164 248* sa_ptr 003226 automatic pointer dcl 422 set ref 64* 150* 160 161 164 165 248 254 sa_sp 003230 automatic bit(3) unaligned dcl 423 set ref 75* 148* 165* 235 save_data_entry based structure level 1 dcl 4-5 save_machine_conditions based structure level 1 packed unaligned dcl 2-6 sp 64(18) 002060 automatic char(10) array level 2 packed unaligned dcl 378 set ref 115* 118* 134 135 143 143 substr builtin function dcl 466 in procedure "gcos_verify_tss_access_" ref 118 122 161 165 254 substr builtin function dcl 320 in procedure "count" ref 310 311 target parameter char unaligned dcl 306 ref 305 310 311 311 temp_dir 003231 automatic varying char(168) dcl 425 set ref 84* 87* 87 93 95* 95 99 temp_name 003304 automatic varying char(168) dcl 426 set ref 85* 87 88* 88 91 94 95 96* 96 100 translate builtin function dcl 466 ref 47 umc 003357 automatic char(9) unaligned dcl 427 set ref 46* 47 62 62 62 user_info_ 000052 constant entry external dcl 463 ref 46 working_perm 003365 automatic bit(10) unaligned dcl 428 set ref 131* 135* 138* 138 143* 239 242 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abx internal static fixed bin(17,0) initial dcl 7-42 after builtin function dcl 320 apx internal static fixed bin(17,0) initial dcl 7-42 bbx internal static fixed bin(17,0) initial dcl 7-42 bpx internal static fixed bin(17,0) initial dcl 7-42 drm_len automatic fixed bin(17,0) dcl 394 exclude automatic bit(1) unaligned dcl 395 fibptr automatic pointer dcl 6-84 gcos_et_$fms_bad_cfdesc external static fixed bin(35,0) dcl 434 gcos_et_$unimp_mme external static fixed bin(35,0) dcl 434 gcos_ext_stat_$abort_reason external static varying char(128) dcl 1-13 gcos_ext_stat_$abort_return external static label variable dcl 1-14 gcos_ext_stat_$activity_card_num external static picture(4) unaligned dcl 1-15 gcos_ext_stat_$activity_name external static char(8) unaligned dcl 1-16 gcos_ext_stat_$activity_start_time external static fixed bin(71,0) dcl 1-17 gcos_ext_stat_$card_num external static picture(4) unaligned dcl 1-18 gcos_ext_stat_$courtesy_call_control external static structure level 1 dcl 1-92 gcos_ext_stat_$dbs external static bit(1) array unaligned dcl 1-19 gcos_ext_stat_$default_nondollar external static char(2) unaligned dcl 1-20 gcos_ext_stat_$dir_rings external static fixed bin(3,0) array dcl 1-21 gcos_ext_stat_$dpno external static varying char(100) dcl 1-22 gcos_ext_stat_$dpo external static varying char(100) dcl 1-23 gcos_ext_stat_$endfc external static char(2) unaligned dcl 1-24 gcos_ext_stat_$er external static pointer dcl 1-25 gcos_ext_stat_$etc_filecode external static char(2) unaligned dcl 1-26 gcos_ext_stat_$fct external static structure level 1 dcl 1-102 gcos_ext_stat_$gcos_gtss external static structure level 1 unaligned dcl 1-115 gcos_ext_stat_$gcos_slave_area_seg external static pointer dcl 1-27 gcos_ext_stat_$gf external static fixed bin(24,0) dcl 1-28 gcos_ext_stat_$incode external static fixed bin(24,0) dcl 1-29 gcos_ext_stat_$increment_hold external static fixed bin(24,0) dcl 1-30 gcos_ext_stat_$initial_cpu_time external static fixed bin(71,0) dcl 1-31 gcos_ext_stat_$input_segment_path external static varying char(168) dcl 1-32 gcos_ext_stat_$jcl_warnings external static fixed bin(24,0) dcl 1-33 gcos_ext_stat_$job_cpu_time external static fixed bin(71,0) dcl 1-34 gcos_ext_stat_$job_id external static varying char(18) dcl 1-35 gcos_ext_stat_$job_real_time external static fixed bin(71,0) dcl 1-36 gcos_ext_stat_$last_mme external static fixed bin(24,0) dcl 1-37 gcos_ext_stat_$ldrss external static fixed bin(24,0) dcl 1-38 gcos_ext_stat_$max_activities external static fixed bin(24,0) dcl 1-39 gcos_ext_stat_$max_mem external static fixed bin(19,0) dcl 1-40 gcos_ext_stat_$mc external static structure level 1 unaligned dcl 1-112 gcos_ext_stat_$mme_rtrn external static label variable dcl 1-41 gcos_ext_stat_$nondollar external static char(2) unaligned dcl 1-42 gcos_ext_stat_$nongcos external static char(2) unaligned dcl 1-43 gcos_ext_stat_$normal_return external static label variable dcl 1-44 gcos_ext_stat_$patchfile_ptr external static pointer dcl 1-45 gcos_ext_stat_$pch external static pointer dcl 1-47 gcos_ext_stat_$pdir external static varying char(168) dcl 1-48 gcos_ext_stat_$prt external static pointer dcl 1-49 gcos_ext_stat_$rs external static pointer dcl 1-50 gcos_ext_stat_$save_data external static structure level 1 dcl 1-106 gcos_ext_stat_$save_dir external static varying char(168) dcl 1-52 gcos_ext_stat_$saveseg_ptr external static pointer dcl 1-51 gcos_ext_stat_$seg_rings external static fixed bin(3,0) array dcl 1-53 gcos_ext_stat_$sig_ptr external static pointer dcl 1-54 gcos_ext_stat_$snumb external static bit(30) dcl 1-56 gcos_ext_stat_$sought_label external static char(8) unaligned dcl 1-57 gcos_ext_stat_$statistics external static fixed bin(24,0) array dcl 1-58 gcos_ext_stat_$stop_code external static fixed bin(24,0) dcl 1-59 gcos_ext_stat_$storage_limit external static fixed bin(19,0) dcl 1-60 gcos_ext_stat_$sysout_limit external static fixed bin(35,0) dcl 1-61 gcos_ext_stat_$sysout_lines external static fixed bin(35,0) dcl 1-62 gcos_ext_stat_$system_free_pointer external static pointer dcl 1-63 gcos_ext_stat_$tape_buffer_size external static fixed bin(35,0) dcl 1-64 gcos_ext_stat_$temp_dir external static varying char(168) dcl 1-65 gcos_ext_stat_$temp_seg_ptr external static pointer dcl 1-66 gcos_ext_stat_$termination_code external static bit(18) unaligned dcl 1-67 gcos_ext_stat_$time_limit external static fixed bin(71,0) dcl 1-68 gcos_ext_stat_$userid external static char(12) unaligned dcl 1-69 gcos_ext_stat_$validation_level external static fixed bin(3,0) dcl 1-70 gcos_mme_bort_$system 000000 constant entry external dcl 432 gp_result automatic bit(10) unaligned dcl 408 hcs_$delete_acl_entries 000000 constant entry external dcl 452 hcs_$list_acl 000000 constant entry external dcl 455 lbx internal static fixed bin(17,0) initial dcl 7-42 linked_file internal static bit(1) initial unaligned dcl 6-87 lpx internal static fixed bin(17,0) initial dcl 7-42 mcp automatic pointer dcl 7-10 random_file internal static bit(1) initial unaligned dcl 6-88 read_file internal static bit(1) initial unaligned dcl 6-89 sbx internal static fixed bin(17,0) initial dcl 7-42 scu based structure level 1 dcl 7-56 scup automatic pointer dcl 7-54 scux based structure level 1 dcl 7-206 sp_result automatic bit(10) unaligned dcl 424 spx internal static fixed bin(17,0) initial dcl 7-42 write_file internal static bit(1) initial unaligned dcl 6-90 NAMES DECLARED BY EXPLICIT CONTEXT. bailout 002012 constant label dcl 260 set ref 58 71 110 156 183 267 278 283 check_end 001667 constant label dcl 231 ref 195 201 207 217 223 check_forced_access 002203 constant entry external dcl 288 check_request 000000 constant label array(0:63) dcl 173 ref 76 170 count 002434 constant entry internal dcl 305 ref 80 force_access 002036 constant label dcl 270 ref 252 254 found_acl_match 001774 constant label dcl 254 ref 249 gcos_verify_tss_access_ 000172 constant entry external dcl 9 gtss_filact_error_status_ 002512 constant entry internal dcl 329 ref 51 57 70 109 155 277 282 permission_denied 002022 constant label dcl 265 ref 235 239 242 permission_granted 002006 constant label dcl 258 ref 286 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 51 57 64 64 70 104 104 109 150 150 155 173 258 274 274 277 280 280 282 295 295 299 299 301 301 hbound builtin function ref 91 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3432 3544 3026 3442 Length 4144 3026 112 364 404 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_verify_tss_access_ 2054 external procedure is an external procedure. count 69 internal procedure is called during a stack extension. gtss_filact_error_status_ internal procedure shares stack frame of external procedure gcos_verify_tss_access_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME count 000100 j count 000101 k count gcos_verify_tss_access_ 000100 a gcos_verify_tss_access_ 002050 acct gcos_verify_tss_access_ 002060 cat gcos_verify_tss_access_ 003126 cat_num gcos_verify_tss_access_ 003127 code gcos_verify_tss_access_ 003130 da_count gcos_verify_tss_access_ 003132 da_ptr gcos_verify_tss_access_ 003134 dl_array gcos_verify_tss_access_ 003146 fcbptr gcos_verify_tss_access_ 003150 force_acl gcos_verify_tss_access_ 003163 force_dir_acl gcos_verify_tss_access_ 003175 found_gp gcos_verify_tss_access_ 003176 found_sp gcos_verify_tss_access_ 003177 gc_need gcos_verify_tss_access_ 003200 have_sp gcos_verify_tss_access_ 003201 i gcos_verify_tss_access_ 003202 j gcos_verify_tss_access_ 003203 mu_need gcos_verify_tss_access_ 003204 originator gcos_verify_tss_access_ 003214 person gcos_verify_tss_access_ 003222 prefix_level gcos_verify_tss_access_ 003223 sa_count gcos_verify_tss_access_ 003224 sa_gp gcos_verify_tss_access_ 003226 sa_ptr gcos_verify_tss_access_ 003230 sa_sp gcos_verify_tss_access_ 003231 temp_dir gcos_verify_tss_access_ 003304 temp_name gcos_verify_tss_access_ 003357 umc gcos_verify_tss_access_ 003362 UMC gcos_verify_tss_access_ 003365 working_perm gcos_verify_tss_access_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc return shorten_stack ext_entry_desc int_entry_desc set_cs_eis index_cs_eis any_to_any_tr empty THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. gcos_fms_error_ get_group_id_ hcs_$add_dir_acl_entries hcs_$delete_dir_acl_entries hcs_$get_author hcs_$list_dir_acl match_star_name_ msf_manager_$acl_add msf_manager_$acl_delete msf_manager_$acl_list msf_manager_$close msf_manager_$open user_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_ring_brackets error_table_$dirseg error_table_$incorrect_access error_table_$incorrect_access error_table_$logical_volume_not_connected error_table_$moderr error_table_$namedup error_table_$no_dir error_table_$no_info error_table_$no_s_permission error_table_$noentry error_table_$nondirseg error_table_$nondirseg error_table_$not_seg_type error_table_$notadir error_table_$pvid_not_found error_table_$segnamedup gcos_et_$fms_perms_denied gcos_ext_stat_$pathname_prefix gcos_ext_stat_$skip_umc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 376 000154 396 000157 397 000161 9 000164 45 000216 46 000222 47 000243 49 000247 50 000276 51 000300 52 000311 55 000312 56 000347 57 000351 58 000362 61 000363 62 000406 63 000422 64 000425 65 000452 66 000454 67 000457 68 000460 70 000461 71 000472 74 000473 75 000475 76 000477 80 000507 82 000550 84 000553 85 000554 86 000613 87 000623 88 000666 89 000712 91 000714 93 000735 94 000744 95 000760 96 001015 97 001041 99 001043 100 001052 101 001057 102 001061 103 001067 104 001072 105 001140 106 001142 109 001147 110 001160 114 001161 115 001163 116 001175 117 001211 118 001260 119 001273 120 001275 121 001276 122 001305 123 001317 125 001321 126 001323 130 001325 131 001326 132 001327 133 001337 134 001341 135 001351 136 001364 137 001366 138 001367 140 001407 143 001410 146 001432 148 001434 149 001440 150 001443 151 001470 152 001472 155 001477 156 001510 159 001511 160 001525 161 001535 162 001541 163 001543 164 001544 165 001604 166 001612 168 001614 170 001616 173 001626 183 001631 186 001632 194 001634 195 001636 198 001637 200 001641 201 001643 204 001644 206 001646 207 001650 210 001651 216 001653 217 001655 220 001656 222 001660 223 001662 226 001663 228 001665 231 001667 235 001671 237 001676 238 001677 239 001701 241 001706 242 001707 247 001721 248 001731 249 001767 251 001771 252 001773 254 001774 258 002006 260 002012 262 002021 265 002022 267 002035 270 002036 272 002053 273 002055 274 002057 275 002116 277 002123 278 002134 280 002135 281 002156 282 002160 283 002171 285 002172 286 002176 288 002177 292 002227 293 002234 294 002251 295 002253 296 002312 297 002341 299 002343 300 002364 301 002373 303 002432 305 002433 308 002454 309 002456 310 002457 311 002501 312 002505 313 002506 315 002507 329 002512 333 002514 335 002523 341 002543 348 002564 351 002575 354 002606 ----------------------------------------------------------- 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