COMPILATION LISTING OF SEGMENT retv_util Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1029.9 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /* format: style2 */ 14 retv_util: 15 proc; 16 17 /* This routine provides some utility functions for the volume retriever. They consist of a 18* check entry to determine if an object exists, a status entry to provide information about an 19* object, a name list entry to return the primary names of all enties in a directory, an interface to the 20* system's hash routine to facilitate searching of a directory image recovered from a dump volume, 21* an entry to set the bit count of an object recovered by the retriever, 22* an entry to delete a branch recovered by the retriever, 23* and an add names entry and add acl entry which provide access control bypass for the retriever. 24**/ 25 26 27 /* coded by Vinograd 9/76 */ 28 /* Modified 07/77 by THVV for bad_dir_ check */ 29 /* Added entry get_entry May 1978 by DRV */ 30 /* Added entry to set bit count March 1981 by DRV */ 31 /* Added entry to delete retrieved entry April 1981 by DRV */ 32 /* Use of SystemFreeSeg removed BIM 4/82. */ 33 /* Changed to use the new dc_find July 1984 by KPL */ 34 /* Changed to provide auditing info, November 1984 by KPL */ 35 36 /* Parameters */ 37 38 dcl a_access_name char (*); 39 dcl a_aclc fixed bin; 40 dcl a_aclp ptr; 41 dcl a_areap ptr; 42 dcl a_auth bit (72) aligned; 43 dcl a_code fixed bin (35); 44 dcl a_dirname char (*); 45 dcl a_dp ptr; 46 dcl a_dtd bit (36) aligned; 47 dcl a_dtm bit (36); 48 dcl a_ename char (*); 49 dcl a_ep ptr; 50 dcl a_level fixed bin; 51 dcl a_mode bit (36) aligned; 52 dcl a_new_bc fixed bin (24); 53 dcl a_newname char (*); 54 dcl a_nlc fixed bin; 55 dcl a_nlp ptr; 56 dcl a_np ptr; 57 dcl a_old_bc fixed bin (24); 58 dcl a_pmode bit (36) aligned; 59 dcl a_pvid bit (36) aligned; 60 dcl a_type fixed bin; 61 dcl a_uid bit (36) aligned; 62 dcl a_volid (3) bit (36) aligned; 63 64 /* Variables */ 65 66 dcl DIRECTORY fixed bin int static init (2) options (constant); 67 dcl LINK fixed bin int static init (3) options (constant); 68 dcl SEGMENT fixed bin int static init (1) options (constant); 69 dcl check_entry fixed bin static init (1) options (constant); 70 dcl delete_entry fixed bin static init (5) options (constant); 71 dcl get_entry fixed bin static init (3) options (constant); 72 dcl set_bc_entry fixed bin static init (4) options (constant); 73 dcl status_entry fixed bin static init (2) options (constant); 74 75 dcl access_name char (32); 76 dcl acl_start_ptr ptr; 77 dcl aclc fixed bin; 78 dcl aclp ptr; 79 dcl add_sw bit (1); 80 dcl auth bit (72); 81 dcl bmode bit (36) aligned; 82 dcl code fixed bin (35); 83 dcl dirl bit (1) aligned; 84 dcl dirname char (168); 85 dcl dtd bit (36) aligned; 86 dcl dtm bit (36); 87 dcl ename char (32); 88 dcl entry_sw fixed bin; 89 dcl exmode bit (36) aligned; 90 dcl i fixed bin; 91 dcl idx fixed bin; 92 dcl ignore fixed bin (35); 93 dcl level fixed bin; 94 dcl 1 local_entry like entry; 95 dcl 1 local_vtoce like vtoce aligned; 96 dcl mode bit (36) aligned; 97 dcl new_bc fixed bin (24); 98 dcl newname char (32); 99 dcl nlc fixed bin; 100 dcl nlp ptr; 101 dcl old_bc fixed bin (24); 102 dcl par_dirl bit (1) aligned; 103 dcl par_ep ptr; 104 dcl pmode bit (36) aligned; 105 dcl prior_dir_acl_count fixed bin; 106 dcl pvid bit (36) aligned; 107 dcl pvtx fixed bin; 108 dcl rp bit (18) aligned; 109 dcl saved_change_pclock fixed bin (35); 110 dcl type fixed bin; 111 dcl uid bit (36) aligned; 112 dcl volid (3) bit (36) aligned; 113 114 /* Based */ 115 116 dcl 1 acl_list (aclc) aligned like input_acl based; 117 dcl 1 based_entry like entry based (a_ep); 118 dcl 1 input_acl based aligned, 119 2 person char (32), 120 2 project char (32), 121 2 tag char (1), 122 2 mode bit (36), 123 2 exmode bit (36); 124 dcl name_list (nlc) char (32) based aligned; 125 dcl user_area area based (a_areap); 126 127 /* External */ 128 129 dcl error_table_$vtoce_connection_fail 130 ext fixed bin (35); 131 132 /* Entries */ 133 134 dcl access_mode$user_effmode 135 entry (ptr, char (32), bit (72), fixed bin, bit (36) aligned, bit (36) aligned, 136 fixed bin (35)); 137 dcl acl_$add_entry entry (fixed bin, bit (36) aligned, ptr, ptr, bit (1), fixed bin (35)); 138 dcl acl_$del_acl entry (ptr, fixed bin (35)); 139 dcl chname$retv entry (ptr, char (*), char (*), fixed bin (35)); 140 dcl delentry$salv_delete_branch 141 entry (ptr, fixed bin (35)); 142 dcl get_pvtx entry (bit (36), fixed bin (35)) returns (fixed bin); 143 dcl getuid entry returns (bit (36)); 144 dcl hash$search entry (ptr, ptr, ptr, fixed bin (35)); 145 dcl lock$dir_lock_read entry (ptr, fixed bin (35)); 146 dcl lock$dir_unlock entry (ptr); 147 dcl sum$dirmod entry (pointer); 148 dcl sum$getbranch entry (ptr, fixed bin, ptr, fixed bin (35)); 149 dcl vtoc_man$get_vtoce entry (bit (36), fixed bin, fixed bin, bit (3), ptr, fixed bin (35)); 150 151 /* Misc */ 152 153 dcl bad_dir_ condition; 154 dcl seg_fault_error condition; 155 156 dcl addr builtin; 157 dcl fixed builtin; 158 dcl null builtin; 159 dcl ptr builtin; 160 dcl unspec builtin; 161 162 delete: 163 entry (a_dirname, a_ename, a_code); 164 entry_sw = delete_entry; 165 goto common; 166 167 set_bc: 168 entry (a_dirname, a_ename, a_new_bc, a_old_bc, a_code); 169 entry_sw = set_bc_entry; 170 new_bc = a_new_bc; 171 goto common; 172 173 get: 174 entry (a_dirname, a_ename, a_ep, a_code); 175 entry_sw = get_entry; 176 goto common; 177 178 check: 179 entry (a_dirname, a_ename, a_type, a_dtm, a_code); 180 181 /* set control arg and default return value */ 182 183 entry_sw = check_entry; 184 dtm = "0"b; 185 goto common; 186 187 status: 188 entry (a_dirname, a_ename, a_auth, a_access_name, a_level, a_type, a_mode, a_pmode, a_uid, a_pvid, a_volid, a_dtd, 189 a_code); 190 191 192 /* set control arg, copy args */ 193 entry_sw = status_entry; 194 access_name = a_access_name; 195 level = a_level; 196 auth = a_auth; 197 198 /* set default return values */ 199 uid = "0"b; 200 pvid = "0"b; 201 volid (*) = "0"b; 202 dtd = "0"b; 203 bmode = "0"b; 204 pmode = "0"b; 205 206 common: /* copy args */ 207 dirname = a_dirname; 208 ename = a_ename; 209 210 /* set return valuse and control args */ 211 code = 0; 212 type = 0; 213 dp = null; 214 dirl = "0"b; 215 par_dirl = "0"b; 216 217 /* in the retriever's environment nothing can be trusted so be prepared */ 218 219 on seg_fault_error 220 begin; 221 code = error_table_$vtoce_connection_fail; 222 goto status_ret; 223 end; 224 225 226 /* locate entry desired */ 227 228 if entry_sw = delete_entry 229 then call dc_find$obj_delete_priv (dirname, ename, DC_FIND_NO_CHASE, ep, code); 230 else if entry_sw = set_bc_entry 231 then call dc_find$obj_status_write_priv (dirname, ename, DC_FIND_NO_CHASE, FS_OBJ_BC_MOD, ep, code); 232 else call dc_find$obj_status_read_priv (dirname, ename, DC_FIND_NO_CHASE, ep, code); 233 if code ^= 0 234 then goto status_ret; 235 dp = ptr (ep, 0); 236 dirl = "1"b; 237 if entry_sw = delete_entry 238 then do; 239 call delentry$salv_delete_branch (ep, code); 240 goto status_ret; 241 end; 242 if entry_sw = get_entry 243 then do; 244 unspec (local_entry) = unspec (entry); 245 goto status_ret; 246 end; 247 if entry_sw = set_bc_entry 248 then do; 249 old_bc = entry.bc; 250 entry.bc = new_bc; 251 goto status_ret; 252 end; 253 254 /* determine type */ 255 if ^entry.bs 256 then type = LINK; 257 else if entry.dirsw 258 then type = DIRECTORY; 259 else type = SEGMENT; /* if status entry determine user access */ 260 if entry_sw = status_entry 261 then do; 262 uid = entry.uid; 263 if type ^= LINK 264 then do; 265 pvid = entry.pvid; 266 call access_mode$user_effmode (ep, access_name, auth, level, mode, exmode, code); 267 if code ^= 0 268 then goto status_ret; 269 if entry.dirsw 270 then bmode = exmode; 271 else bmode = mode; 272 end; 273 call sum$getbranch (dp, 0, par_ep, code); 274 if code ^= 0 275 then goto status_ret; 276 par_dirl = "1"b; 277 278 call access_mode$user_effmode (par_ep, access_name, auth, level, mode, exmode, code); 279 if code ^= 0 280 then goto status_ret; 281 pmode = exmode; 282 end; /* if branch then check if object it describes exists */ 283 284 if entry.bs 285 then do; 286 unspec (local_vtoce) = "0"b; 287 vtocep = addr (local_vtoce); 288 pvtx = get_pvtx (entry.pvid, code); 289 if code ^= 0 290 then goto status_ret; 291 call vtoc_man$get_vtoce (entry.pvid, pvtx, fixed (entry.vtocx, 17), "101"b, vtocep, code); 292 if code ^= 0 293 then goto status_ret; 294 if vtoce.uid ^= entry.uid | vtoce.damaged 295 then do; 296 code = error_table_$vtoce_connection_fail; 297 goto status_ret; 298 end; 299 if entry_sw = status_entry 300 then do; 301 volid (*) = vtoce.volid (*); 302 dtd = vtoce.dtd; 303 end; 304 else dtm = vtoce.dtm; 305 end; 306 307 /* clean up any locks and return values found */ 308 status_ret: 309 if dp ^= null 310 then call dc_find$finished (dp, dirl); 311 if par_dirl 312 then call lock$dir_unlock (ptr (par_ep, 0)); 313 if entry_sw = status_entry 314 then do; 315 a_mode = bmode; 316 a_pmode = pmode; 317 a_uid = uid; 318 a_pvid = pvid; 319 a_volid (*) = volid (*); 320 a_dtd = dtd; 321 a_type = type; 322 end; 323 else if entry_sw = set_bc_entry 324 then do; 325 a_old_bc = old_bc; 326 end; 327 else if entry_sw = check_entry 328 then do; 329 a_dtm = dtm; 330 a_type = type; 331 end; 332 else if entry_sw = get_entry 333 then do; 334 local_entry.uid = getuid (); 335 unspec (based_entry) = unspec (local_entry); 336 end; 337 a_code = code; 338 return; 339 340 name_list: 341 entry (a_dirname, a_areap, a_nlp, a_nlc, a_code); 342 343 /* copy arg and set control args */ 344 dirname = a_dirname; 345 code = 0; 346 dirl = "0"b; 347 idx = 0; 348 dp = null; 349 350 /* find and lock dir */ 351 352 RETRY: call dc_find$dir_read_priv (dirname, dp, code); 353 if code ^= 0 354 then goto name_list_ret; 355 dirl = "1"b; 356 357 nlc = dir.seg_count + dir.dir_count + dir.lcount; /* number of primary names */ 358 saved_change_pclock = dir.change_pclock; 359 360 call lock$dir_unlock (dp); 361 dirl = "0"b; 362 363 /* Unlock dir for allocate */ 364 365 allocate name_list in (user_area) set (nlp); 366 367 /* Relock */ 368 369 call lock$dir_lock_read (dp, code); 370 if code ^= 0 371 then goto name_list_ret; 372 dirl = "1"b; 373 374 if dir.change_pclock ^= saved_change_pclock 375 then do; 376 call lock$dir_unlock (dp); 377 dirl = "0"b; 378 free nlp -> name_list; 379 go to RETRY; 380 end; 381 382 /* Now we have someplace to put the data, but it is user storage */ 383 /* If we fault, though, the worst we do is salvage the dir. */ 384 /* This entry is only called by trusted processes. */ 385 386 i = 0; 387 do rp = dir.entryfrp repeat (entry.efrp) while (rp ^= "0"b); 388 i = i + 1; 389 if i > nlc 390 then signal bad_dir_; 391 ep = ptr (dp, rp); 392 if entry.bs 393 then if entry.owner ^= dir.uid | entry.type ^= SEG_TYPE & entry.type ^= DIR_TYPE 394 then signal bad_dir_; 395 else ; 396 else if link.owner ^= dir.uid | link.type ^= LINK_TYPE 397 then signal bad_dir_; 398 idx = idx + 1; 399 nlp -> name_list (idx) = ptr (ep, entry.name_frp) -> names.name; 400 end; /* unlock dir */ 401 call lock$dir_unlock (dp); 402 dirl = "0"b; 403 404 /* Return pointer and count */ 405 406 a_nlc = nlc; 407 a_nlp = nlp; 408 409 name_list_ret: /* unlock, dereference as required */ 410 if dp ^= null 411 then call dc_find$finished (dp, dirl); 412 a_code = code; 413 return; 414 415 /* hash_index_ is now available in bound_sss_active_, and this should */ 416 /* be deleted ! */ 417 418 hash_search: 419 entry (a_dp, a_np, a_ep, a_code); 420 421 call hash$search (a_dp, a_np, a_ep, a_code); 422 return; 423 424 addname: 425 entry (a_dirname, a_ename, a_newname, a_code); 426 427 /* copy input args and set control vars */ 428 dirl = "0"b; 429 dirname = a_dirname; 430 ename = a_ename; 431 newname = a_newname; 432 dp = null; 433 434 /* locate entry */ 435 436 call dc_find$obj_status_write_priv (dirname, ename, DC_FIND_NO_CHASE, FS_OBJ_RENAME, ep, code); 437 if code ^= 0 438 then goto addname_ret; 439 dirl = "1"b; 440 dp = ptr (ep, 0); /* add name to entry bypassing access checks */ 441 call chname$retv (ep, "", newname, code); 442 443 addname_ret: /* clean up */ 444 if dp ^= null 445 then call dc_find$finished (dp, dirl); 446 a_code = code; 447 return; 448 449 /* lookout. This entry takes dir control acl's, not asd_ style */ 450 /* user acl structures. !!!! */ 451 452 add_acl: 453 entry (a_dirname, a_ename, a_aclp, a_aclc, a_code); /* copy input args and set control vars */ 454 dirname = a_dirname; 455 ename = a_ename; 456 aclc = a_aclc; 457 aclp = a_aclp; 458 dirl = "0"b; 459 dp = null; 460 461 /* We do not copy the input data. First, this is called by trusted */ 462 /* system code. Second, the worst that we can do is crawl out. */ 463 /* boundsfaults do not hold write locks. */ 464 465 /* locate entry */ 466 467 call dc_find$obj_access_write_priv (dirname, ename, DC_FIND_NO_CHASE, FS_OBJ_ACL_MOD, ep, code); 468 if code ^= 0 469 then goto add_acl_ret; 470 dirl = "1"b; 471 dp = ptr (ep, 0); 472 473 /* Loop over each acl term to be added. If unable to add delete all terms added so far. 474* Reset acl counts for directory and entry. */ 475 476 prior_dir_acl_count = dir.acle_total; 477 acl_start_ptr = addr (entry.acl_frp); 478 do i = 1 to aclc while (code = 0); 479 call acl_$add_entry (fixed (entry.acle_count), entry.uid, acl_start_ptr, addr (aclp -> acl_list (i)), 480 add_sw, code); 481 if code ^= 0 482 then do; 483 call acl_$del_acl (acl_start_ptr, ignore); 484 dir.acle_total = prior_dir_acl_count; 485 end; 486 else if add_sw 487 then do; 488 dir.acle_total = dir.acle_total + 1; 489 entry.acle_count = entry.acle_count + 1; 490 end; 491 end; 492 call sum$dirmod (dp); 493 add_acl_ret: /* clean up and unlock */ 494 if dp ^= null 495 then call dc_find$finished (dp, dirl); 496 a_code = code; 497 return; 498 1 1 /* BEGIN include file dc_find_dcls.incl.pl1 */ 1 2 1 3 /* Calling sequences for dc_find. Keith Loepere, June 1984. */ 1 4 /* Added a few more, October 1984. */ 1 5 /* 85-05-08, EJ Sharpe: added obj_delete_uid, obj_status_read_uid, and obj_status_read_raw_uid */ 1 6 /* 85-05-15, EJ Sharpe: changed dir_write_raw_uid to mdir_set_quota_uid */ 1 7 1 8 /* format: style4,indattr,ifthenstmt,ifthen,idind35,^indcomtxt */ 1 9 1 10 dcl DC_FIND_CHASE fixed bin (1) static options (constant) init (1); 1 11 dcl DC_FIND_NO_CHASE fixed bin (1) static options (constant) init (0); 1 12 dcl DC_FIND_NO_UNLOCK_DIR bit (1) aligned static options (constant) init ("0"b); 1 13 dcl DC_FIND_UNLOCK_DIR bit (1) aligned static options (constant) init ("1"b); 1 14 1 15 dcl dc_find$dir_for_append entry (char (168), char (32), fixed bin (1), ptr, ptr, fixed bin (35)); 1 16 dcl dc_find$dir_for_append_raw entry (char (168), char (32), fixed bin (1), ptr, ptr, fixed bin (35)); 1 17 dcl dc_find$dir_for_retrieve_append entry (char (168), char (32), fixed bin (1), ptr, ptr, ptr, fixed bin (35)); 1 18 1 19 dcl dc_find$dir_initiate entry (char (168), ptr, fixed bin (35)); 1 20 1 21 dcl dc_find$dir_move_quota entry (char (168), ptr, ptr, fixed bin (35)); 1 22 1 23 dcl dc_find$dir_read entry (char (168), ptr, fixed bin (35)); 1 24 dcl dc_find$dir_read_priv entry (char (168), ptr, fixed bin (35)); 1 25 1 26 dcl dc_find$dir_reclassify entry (char (168), ptr, ptr, ptr, fixed bin (35)); 1 27 1 28 dcl dc_find$dir_salvage entry (char (168), bit (36) aligned, ptr, fixed bin (35)); 1 29 1 30 dcl dc_find$dir_write entry (char (168), fixed bin (18) uns, ptr, fixed bin (35)); 1 31 dcl dc_find$dir_write_priv entry (char (168), fixed bin (18) uns, ptr, fixed bin (35)); 1 32 1 33 dcl dc_find$finished entry (ptr, bit (1) aligned); 1 34 1 35 dcl dc_find$link_target entry (char (168), char (32), fixed bin (35)); 1 36 1 37 dcl dc_find$mdir_set_quota_uid entry ((0:15) bit (36) aligned, char (168), fixed bin (18) uns, ptr, ptr, fixed bin (35)); 1 38 1 39 dcl dc_find$obj_access_write entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 1 40 dcl dc_find$obj_access_write_priv entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 1 41 1 42 dcl dc_find$obj_attributes_read entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 1 43 dcl dc_find$obj_attributes_read_ptr entry (ptr, ptr, fixed bin (35)); 1 44 1 45 dcl dc_find$obj_attributes_write entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 1 46 dcl dc_find$obj_attributes_write_ptr entry (ptr, fixed bin (18) uns, ptr, fixed bin (35)); 1 47 1 48 dcl dc_find$obj_bc_delta_write entry (char (168), char (32), fixed bin (24), ptr, fixed bin (35)); 1 49 dcl dc_find$obj_bc_delta_write_ptr entry (ptr, fixed bin (24), ptr, fixed bin (35)); 1 50 dcl dc_find$obj_bc_write entry (char (168), char (32), fixed bin (24), ptr, fixed bin (35)); 1 51 dcl dc_find$obj_bc_write_ptr entry (ptr, fixed bin (24), ptr, fixed bin (35)); 1 52 1 53 dcl dc_find$obj_delete entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 1 54 dcl dc_find$obj_delete_priv entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 1 55 dcl dc_find$obj_delete_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 1 56 dcl dc_find$obj_delete_priv_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 1 57 dcl dc_find$obj_delete_ptr entry (ptr, ptr, fixed bin (35)); 1 58 1 59 dcl dc_find$obj_existence_ptr entry (ptr, ptr, fixed bin (35)); 1 60 1 61 dcl dc_find$obj_for_audit entry (char (168), char (32), ptr, fixed bin (35)); 1 62 1 63 dcl dc_find$obj_initiate entry (char (168), char (32), ptr, fixed bin (35)); 1 64 dcl dc_find$obj_initiate_for_linker_dp entry (ptr, char (32), ptr, fixed bin (35)); 1 65 dcl dc_find$obj_initiate_raw entry (char (168), char (32), ptr, fixed bin (35)); 1 66 1 67 dcl dc_find$obj_linkage_ring_ptr entry (ptr, fixed bin (35)); 1 68 1 69 dcl dc_find$obj_modes_ptr entry (ptr, bit (36) aligned, bit (36) aligned, (3) fixed bin (3), fixed bin (35)); 1 70 1 71 dcl dc_find$obj_reclassify entry (char (168), char (32), ptr, ptr, fixed bin (35)); 1 72 1 73 dcl dc_find$obj_status_attributes_read entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 1 74 1 75 dcl dc_find$obj_status_read entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 1 76 dcl dc_find$obj_status_read_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 1 77 dcl dc_find$obj_status_read_priv entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 1 78 dcl dc_find$obj_status_read_priv_ptr entry (ptr, ptr, fixed bin (35)); 1 79 dcl dc_find$obj_status_read_priv_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 1 80 dcl dc_find$obj_status_read_raw_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 1 81 dcl dc_find$obj_status_read_ptr entry (ptr, ptr, fixed bin (35)); 1 82 1 83 dcl dc_find$obj_status_write entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 1 84 dcl dc_find$obj_status_write_priv entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 1 85 dcl dc_find$obj_status_write_priv_ptr entry (ptr, fixed bin (18) uns, ptr, fixed bin (35)); 1 86 dcl dc_find$obj_status_write_ptr entry (ptr, fixed bin (18) uns, ptr, fixed bin (35)); 1 87 1 88 dcl dc_find$obj_terminate entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 1 89 dcl dc_find$obj_terminate_ptr entry (ptr, ptr, fixed bin (35)); 1 90 1 91 dcl dc_find$obj_truncate entry (char (168), char (32), ptr, fixed bin (35)); 1 92 dcl dc_find$obj_truncate_ptr entry (ptr, ptr, fixed bin (35)); 1 93 dcl dc_find$obj_truncate_raw_ptr entry (ptr, ptr, fixed bin (35)); 1 94 1 95 dcl dc_find$obj_volume_retrieve entry (char (168), char (32), ptr, ptr, fixed bin (35)); 1 96 1 97 dcl dc_find$seg_fault entry (ptr, ptr, fixed bin (35)); 1 98 1 99 /* END include file dc_find_dcls.incl.pl1 */ 499 500 2 1 /* BEGIN INCLUDE FILE ... dir_entry.incl.pl1 ...last modified August 1974 for nss */ 2 2 2 3 2 4 /* Template for an entry. Length = 38 words */ 2 5 2 6 dcl ep ptr; 2 7 2 8 dcl 1 entry based (ep) aligned, 2 9 2 10 (2 efrp bit (18), /* forward rel ptr to next entry */ 2 11 2 ebrp bit (18)) unaligned, /* backward rel ptr to previous entry */ 2 12 2 13 2 type bit (18) unaligned, /* type of object = dir entry */ 2 14 2 size fixed bin (17) unaligned, /* size of dir entry */ 2 15 2 16 2 uid bit (36), /* unique id of entry */ 2 17 2 18 2 dtem bit (36), /* date-time entry modified */ 2 19 2 20 (2 bs bit (1), /* branch switch = 1 if branch */ 2 21 2 pad0 bit (17), 2 22 2 nnames fixed bin (17), /* number of names for this entry */ 2 23 2 24 2 name_frp bit (18), /* rel pointer to start of name list */ 2 25 2 name_brp bit (18), /* rel pointer to end of name list */ 2 26 2 27 2 author, /* user who created branch */ 2 28 3 pers_rp bit (18), /* name of user who created branch */ 2 29 3 proj_rp bit (18), /* project of user who created branch */ 2 30 2 31 3 tag char (1), /* tag of user who created branch */ 2 32 3 pad1 char (3), 2 33 2 34 2 primary_name bit (504), /* first name on name list */ 2 35 2 36 2 dtd bit (36), /* date time dumped */ 2 37 2 38 2 pad2 bit (36), 2 39 2 40 2 41 /* the declarations below are for branch only */ 2 42 2 43 2 44 2 pvid bit (36), /* physical volume id */ 2 45 2 46 2 vtocx fixed bin (17), /* vtoc entry index */ 2 47 2 pad3 bit (18), 2 48 2 49 2 dirsw bit (1), /* = 1 if this is a directory branch */ 2 50 2 oosw bit (1), /* out of service switch on = 1 */ 2 51 2 per_process_sw bit (1), /* indicates segment is per process */ 2 52 2 copysw bit (1), /* = 1 make copy of segment whenever initiated */ 2 53 2 safety_sw bit (1), /* if 1 then entry cannot be deleted */ 2 54 2 multiple_class bit (1), /* segment has multiple security classes */ 2 55 2 audit_flag bit (1), /* segment must be audited for security */ 2 56 2 security_oosw bit (1), /* security out of service switch */ 2 57 2 entrypt_sw bit (1), /* 1 if call limiter is to be enabled */ 2 58 2 master_dir bit (1), /* TRUE for master directory */ 2 59 2 tpd bit (1), /* TRUE if this segment is never to go on the PD */ 2 60 2 pad4 bit (11), 2 61 2 entrypt_bound bit (14)) unaligned, /* call limiter */ 2 62 2 63 2 access_class bit (72) aligned, /* security attributes : level and category */ 2 64 2 65 (2 ring_brackets (3) bit (3), /* ring brackets on segment */ 2 66 2 ex_ring_brackets (3) bit (3), /* extended ring brackets */ 2 67 2 acle_count fixed bin (17), /* number of entries on ACL */ 2 68 2 69 2 acl_frp bit (18), /* rel ptr to start of ACL */ 2 70 2 acl_brp bit (18), /* rel ptr to end of ACL */ 2 71 2 72 2 bc_author, /* user who last set the bit count */ 2 73 3 pers_rp bit (18), /* name of user who set the bit count */ 2 74 3 proj_rp bit (18), /* project of user who set the bit count */ 2 75 2 76 3 tag char (1), /* tag of user who set the bit count */ 2 77 3 pad5 bit (2), 2 78 2 bc fixed bin (24)) unaligned, /* bit count for segs, msf indicator for dirs */ 2 79 2 80 2 sons_lvid bit (36), /* logical volume id for immediat inf non dir seg */ 2 81 2 82 2 pad6 bit (36), 2 83 2 84 2 checksum bit (36), /* checksum from dtd */ 2 85 2 86 2 owner bit (36); /* uid of containing directory */ 2 87 2 88 /* END INCLUDE FILE ... dir_entry.incl.pl1 ... */ 501 502 3 1 /* BEGIN INCLUDE FILE ... dir_header.incl.pl1 */ 3 2 /* Modified 8/74 for NSS */ 3 3 /* Modified 8/76 to add version number and hash table rel pointer for variable hash table sizes */ 3 4 /* Modified 3/82 BIM for change pclock */ 3 5 /* format: style3 */ 3 6 3 7 /* Template for the directory header. Length = 64 words. */ 3 8 3 9 dcl dp ptr; 3 10 3 11 dcl 1 dir based (dp) aligned, 3 12 3 13 2 modify bit (36), /* Process ID of last modifier */ 3 14 2 type bit (18) unaligned, /* type of object = dir header */ 3 15 2 size fixed bin (17) unaligned, /* size of header in words */ 3 16 2 dtc (3), /* date-time checked by salvager array */ 3 17 3 date bit (36), /* the date */ 3 18 3 error bit (36), /* what errors were discovered */ 3 19 3 20 2 uid bit (36), /* uid of the directory - copied from branch */ 3 21 3 22 2 pvid bit (36), /* phys vol id of the dir - copied from branch */ 3 23 3 24 2 sons_lvid bit (36), /* log vol id for inf non dir seg - copied from branch */ 3 25 3 26 2 access_class bit (72), /* security attributes of dir - copied from branch */ 3 27 3 28 (2 vtocx fixed bin (17), /* vtoc entry index of the dir - copied from branch */ 3 29 2 version_number fixed bin (17), /* version number of header */ 3 30 3 31 2 entryfrp bit (18), /* rel ptr to beginning of entry list */ 3 32 2 pad2 bit (18), 3 33 3 34 2 entrybrp bit (18), /* rel ptr to end of entry list */ 3 35 2 pad3 bit (18), 3 36 3 37 2 pers_frp bit (18), /* rel ptr to start of person name list */ 3 38 2 proj_frp bit (18), /* rel ptr to start of project name list */ 3 39 3 40 2 pers_brp bit (18), /* rel ptr to end of person name list */ 3 41 2 proj_brp bit (18), /* rel ptr to end of project name list */ 3 42 3 43 2 seg_count fixed bin (17), /* number of non-directory branches */ 3 44 2 dir_count fixed bin (17), /* number of directory branches */ 3 45 3 46 2 lcount fixed bin (17), /* number of links */ 3 47 2 acle_total fixed bin (17), /* total number of ACL entries in directory */ 3 48 3 49 2 arearp bit (18), /* relative pointer to beginning of allocation area */ 3 50 2 per_process_sw bit (1), /* indicates dir contains per process segments */ 3 51 2 master_dir bit (1), /* TRUE if this is a master dir */ 3 52 2 force_rpv bit (1), /* TRUE if segs must be on RPV */ 3 53 2 rehashing bit (1), /* TRUE if hash table is being constructed */ 3 54 2 pad4 bit (14), 3 55 3 56 2 iacl_count (0:7), 3 57 3 seg fixed bin (17), /* number of initial acl entries for segs */ 3 58 3 dir fixed bin (17), /* number of initial acl entries for dir */ 3 59 3 60 2 iacl (0:7), /* pointer to initial ACLs for each ring */ 3 61 3 seg_frp bit (18), /* rel ptr to start of initial ACL for segs */ 3 62 3 seg_brp bit (18), /* rel ptr to end of initial ACL for segs */ 3 63 3 64 3 dir_frp bit (18), /* rel ptr to start of initial for dirs */ 3 65 3 dir_brp bit (18), /* rel ptr to end of initial ACL for dirs */ 3 66 3 67 2 htsize fixed bin (17), /* size of hash table */ 3 68 2 hash_table_rp bit (18), /* rel ptr to start of hash table */ 3 69 3 70 2 htused fixed bin (17), /* no. of used places in hash table */ 3 71 2 pad6 fixed bin (17), 3 72 3 73 2 tree_depth fixed bin (17), /* number of levels from root of this dir */ 3 74 2 pad7 bit (18)) unaligned, 3 75 3 76 2 dts bit (36), /* date-time directory last salvaged */ 3 77 3 78 2 master_dir_uid bit (36), /* uid of superior master dir */ 3 79 2 change_pclock fixed bin (35), /* up one each call to sum$dirmod */ 3 80 2 pad8 (11) bit (36), /* pad to make it a 64 word header */ 3 81 2 checksum bit (36), /* checksummed from uid on */ 3 82 2 owner bit (36); /* uid of parent dir */ 3 83 3 84 dcl version_number_2 fixed bin int static options (constant) init (2); 3 85 3 86 /* END INCLUDE FILE ... dir_header.incl.pl1 */ 503 504 4 1 /* BEGIN INCLUDE FILE ... dir_name.incl.pl1 ... last modified Nov 1975 for nss */ 4 2 4 3 /* Template for names of branches or links. Length = 14 words. */ 4 4 4 5 dcl np ptr; 4 6 4 7 dcl 1 names based aligned, /* based on ptr(dp,ep->entry.name_frp) */ 4 8 2 fp bit(18) unaligned, /* rel ptr to next name */ 4 9 2 bp bit(18) unaligned, /* rel ptr to prev name */ 4 10 4 11 2 type bit (18) unaligned, /* type = dir name */ 4 12 2 size fixed bin (17) unaligned, /* size of dir name */ 4 13 4 14 2 entry_rp bit(18) unaligned, /* rel ptr to entry */ 4 15 2 ht_index fixed bin(17) unaligned, /* index of hash table entry */ 4 16 4 17 2 hash_thread bit (18) unal, /* relative ptr to next hash entry */ 4 18 2 pad3 bit (18) unal, 4 19 4 20 2 name char(32) aligned, 4 21 4 22 2 checksum bit (36), /* checksum from entry_rp */ 4 23 4 24 2 owner bit (36); /* uid of entry */ 4 25 4 26 4 27 /* END INCLUDE FILE ... dir_name.incl.pl1 */ 505 506 5 1 /* BEGIN INCLUDE FILE ... dir_link.incl.pl1 ... last modified August 1974 for nss */ 5 2 5 3 /* Template for link. Note that it is identical to entry for first 24 words. */ 5 4 5 5 5 6 dcl 1 link based (ep) aligned, 5 7 5 8 (2 efrp bit (18), /* forward rel ptr to next entry */ 5 9 2 ebrp bit (18), /* backward rel ptr to previous entry */ 5 10 5 11 2 type bit (18), /* type = dir link */ 5 12 2 size fixed bin (17), /* size of link in words */ 5 13 5 14 2 uid bit (36), /* unique id of entry */ 5 15 5 16 2 dtem bit (36), /* date-time entry modified */ 5 17 5 18 2 bs bit (1), /* entry switch = 1 if entry */ 5 19 2 pad0 bit (17), 5 20 2 nnames fixed bin (17), /* number of names for this entry */ 5 21 5 22 2 name_frp bit (18), /* rel pointer to start of name list */ 5 23 2 name_brp bit (18), /* rel pointer to end of name list */ 5 24 5 25 2 author, /* user who created entry */ 5 26 3 pers_rp bit (18), /* name of user who created entry */ 5 27 3 proj_rp bit (18), /* project of user who created entry */ 5 28 5 29 3 tag char (1), /* tag of user who created entry */ 5 30 3 pad1 char (3), 5 31 5 32 2 primary_name bit (504), /* first name on name list */ 5 33 5 34 2 dtd bit (36), /* date time dumped */ 5 35 5 36 2 pad2 bit (36), 5 37 5 38 5 39 /* the declarations below are only applicable to links */ 5 40 5 41 2 pad3 bit (18), 5 42 2 pathname_size fixed bin (17), /* number of characters in pathname */ 5 43 5 44 2 pathname char (168 refer (pathname_size))) unaligned, /* pathname of link */ 5 45 5 46 2 checksum bit (36), /* checksum from uid */ 5 47 5 48 2 owner bit (36); /* uid of containing directory */ 5 49 5 50 /* END INCLUDE FILE ... dir_link.incl.pl1 */ 507 508 6 1 /* BEGIN include file fs_obj_access_codes.incl.pl1 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(88-05-12,Lippard), approve(88-05-02,MCR7881), 6 6* audit(88-06-16,Fawcett), install(88-08-02,MR12.2-1074): 6 7* Changed to add the FS_OBJ_AUDIT_FLAG_MOD constant. 6 8* END HISTORY COMMENTS */ 6 9 6 10 6 11 /* The possible events within the file system; access codes and 6 12* detailed operation codes. October 1984, Keith Loepere. */ 6 13 6 14 /* format: style4,indattr,ifthenstmt,ifthen,idind35,^indcomtxt */ 6 15 6 16 /* Major file system operations. */ 6 17 6 18 dcl access_operations_$fs_obj_create bit (36) aligned ext; 6 19 dcl access_operations_$fs_obj_delete bit (36) aligned ext; 6 20 dcl access_operations_$fs_obj_initiate bit (36) aligned ext; 6 21 dcl access_operations_$fs_obj_terminate bit (36) aligned ext; 6 22 dcl access_operations_$fs_obj_contents_read bit (36) aligned ext; 6 23 dcl access_operations_$fs_obj_contents_mod bit (36) aligned ext; 6 24 dcl access_operations_$fs_obj_prop_read bit (36) aligned ext; 6 25 dcl access_operations_$fs_obj_attr_mod bit (36) aligned ext; 6 26 dcl access_operations_$fs_obj_status_mod bit (36) aligned ext; 6 27 dcl access_operations_$fs_obj_access_mod bit (36) aligned ext; 6 28 6 29 /* Detailed operations. */ 6 30 6 31 dcl FS_OBJ_CONNECT fixed bin (18) uns init (1) static options (constant); 6 32 dcl FS_OBJ_BC_MOD fixed bin (18) uns init (2) static options (constant); 6 33 dcl FS_OBJ_TRUNCATE fixed bin (18) uns init (3) static options (constant); 6 34 dcl FS_OBJ_ACL_MOD fixed bin (18) uns init (4) static options (constant); 6 35 dcl FS_OBJ_RING_MOD fixed bin (18) uns init (5) static options (constant); 6 36 dcl FS_OBJ_ACL_RING_MOD fixed bin (18) uns init (6) static options (constant); 6 37 dcl FS_OBJ_RENAME fixed bin (18) uns init (7) static options (constant); 6 38 dcl FS_OBJ_COPY_SW_MOD fixed bin (18) uns init (8) static options (constant); 6 39 dcl FS_OBJ_DAMAGED_SW_MOD fixed bin (18) uns init (9) static options (constant); 6 40 dcl FS_OBJ_DNZP_MOD fixed bin (18) uns init (10) static options (constant); 6 41 dcl FS_OBJ_ENTRY_BOUND_MOD fixed bin (18) uns init (11) static options (constant); 6 42 dcl FS_OBJ_MAX_LEN_MOD fixed bin (18) uns init (12) static options (constant); 6 43 dcl FS_OBJ_SAFETY_SW_MOD fixed bin (18) uns init (13) static options (constant); 6 44 dcl FS_OBJ_SYNC_SW_MOD fixed bin (18) uns init (14) static options (constant); 6 45 dcl FS_OBJ_VOL_DUMP_SW_MOD fixed bin (18) uns init (15) static options (constant); 6 46 dcl FS_OBJ_AUTHOR_MOD fixed bin (18) uns init (16) static options (constant); 6 47 dcl FS_OBJ_BC_AUTHOR_MOD fixed bin (18) uns init (17) static options (constant); 6 48 dcl FS_OBJ_BACKUP_TIMES_MOD fixed bin (18) uns init (18) static options (constant); 6 49 dcl FS_OBJ_DATES_MOD fixed bin (18) uns init (19) static options (constant); 6 50 dcl FS_OBJ_DT_DUMPED_MOD fixed bin (18) uns init (20) static options (constant); 6 51 dcl FS_OBJ_FOR_RELOADER_MOD fixed bin (18) uns init (21) static options (constant); 6 52 dcl FS_OBJ_SONS_LVID_MOD fixed bin (18) uns init (22) static options (constant); 6 53 dcl FS_OBJ_SOOS_MOD fixed bin (18) uns init (23) static options (constant); 6 54 dcl FS_OBJ_MOVE_QUOTA fixed bin (18) uns init (24) static options (constant); 6 55 dcl FS_OBJ_CORRECT_QUSED fixed bin (18) uns init (25) static options (constant); 6 56 dcl FS_OBJ_DIR_SALVAGE fixed bin (18) uns init (26) static options (constant); 6 57 dcl FS_OBJ_MDIR_QUOTA_MOD fixed bin (18) uns init (27) static options (constant); 6 58 dcl FS_OBJ_QUOTA_MOD fixed bin (18) uns init (28) static options (constant); 6 59 dcl FS_OBJ_QUOTA_RELOAD fixed bin (18) uns init (29) static options (constant); 6 60 dcl FS_OBJ_RECLASSIFY fixed bin (18) uns init (30) static options (constant); 6 61 dcl FS_OBJ_RECLASSIFY_NODE fixed bin (18) uns init (31) static options (constant); 6 62 dcl FS_OBJ_SEG_MOVE fixed bin (18) uns init (32) static options (constant); 6 63 dcl FS_OBJ_TRP_MOD fixed bin (18) uns init (33) static options (constant); 6 64 dcl FS_OBJ_VOLUME_RETRIEVE fixed bin (18) uns init (34) static options (constant); 6 65 dcl FS_OBJ_IACL_MOD fixed bin (18) uns init (35) static options (constant); 6 66 dcl FS_OBJ_CREATE_BRANCH fixed bin (18) uns init (36) static options (constant); 6 67 dcl FS_OBJ_AUDIT_FLAG_MOD fixed bin (18) uns init (37) static options (constant); 6 68 6 69 /* END include file fs_obj_access_codes.incl.pl1 */ 509 510 7 1 /* BEGIN INCLUDE FILE ... fs_types.incl.pl1 */ 7 2 7 3 dcl ACCESS_NAME_TYPE bit (18) static options (constant) init ("000001"b3); 7 4 dcl ACLE_TYPE bit (18) static options (constant) init ("000002"b3); 7 5 dcl DIR_HEADER_TYPE bit (18) static options (constant) init ("000003"b3); 7 6 dcl DIR_TYPE bit (18) static options (constant) init ("000004"b3); 7 7 dcl LINK_TYPE bit (18) static options (constant) init ("000005"b3); 7 8 dcl NAME_TYPE bit (18) static options (constant) init ("000006"b3); 7 9 dcl SEG_TYPE bit (18) static options (constant) init ("000007"b3); 7 10 dcl HASH_TABLE_TYPE bit (18) static options (constant) init ("000013"b3); 7 11 7 12 dcl access_name_type fixed bin static options (constant) init (1); 7 13 dcl acle_type fixed bin static options (constant) init (2); 7 14 dcl dir_header_type fixed bin static options (constant) init (3); 7 15 dcl dir_type fixed bin static options (constant) init (4); 7 16 dcl link_type fixed bin static options (constant) init (5); 7 17 dcl name_type fixed bin static options (constant) init (6); 7 18 dcl seg_type fixed bin static options (constant) init (7); 7 19 dcl hash_table_type fixed bin static options (constant) init (11); 7 20 7 21 /* END INCLUDE FILE ... fs_types.incl.pl1 */ 511 512 8 1 /* BEGIN INCLUDE FILE ...vtoce.incl.pl1 ... last modified September 1982 */ 8 2 /* Template for a VTOC entry. Length = 192 words. (3 * 64). */ 8 3 /* NOTE: vtoc_man clears pad fields before writing a vtoce. */ 8 4 8 5 dcl vtocep ptr; 8 6 8 7 dcl 1 vtoce based (vtocep) aligned, 8 8 8 9 8 10 (2 pad_free_vtoce_chain bit (36), /* Used to be pointer to next free VTOCE */ 8 11 8 12 2 uid bit (36), /* segment's uid - zero if vtoce is free */ 8 13 8 14 2 msl bit (9), /* maximum segment length in 1024 word units */ 8 15 2 csl bit (9), /* current segment length - in 1024 word units */ 8 16 2 records bit (9), /* number of records used by the seg in second storage */ 8 17 2 pad2 bit (9), 8 18 8 19 2 dtu bit (36), /* date and time segment was last used */ 8 20 8 21 2 dtm bit (36), /* date and time segment was last modified */ 8 22 8 23 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 8 24 2 deciduous bit (1), /* true if hc_sdw */ 8 25 2 nid bit (1), /* no incremental dump switch */ 8 26 2 dnzp bit (1), /* Dont null zero pages */ 8 27 2 gtpd bit (1), /* Global transparent paging device */ 8 28 2 per_process bit (1), /* Per process segment (deleted every bootload) */ 8 29 2 damaged bit (1), /* TRUE if contents damaged */ 8 30 2 fm_damaged bit (1), /* TRUE if filemap checksum bad */ 8 31 2 fm_checksum_valid bit (1), /* TRUE if the checksum has been computed */ 8 32 2 synchronized bit (1), /* TRUE if this is a data management synchronized segment */ 8 33 2 pad3 bit (8), 8 34 2 dirsw bit (1), /* directory switch */ 8 35 2 master_dir bit (1), /* master directory - a root for the logical volume */ 8 36 2 pad4 bit (16)) unaligned, /* not used */ 8 37 8 38 2 fm_checksum bit (36) aligned, /* Checksum of used portion of file map */ 8 39 8 40 (2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 8 41 8 42 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 8 43 8 44 2 received (0:1) fixed bin (18) unsigned, /* total amount of storage this dir has received */ 8 45 8 46 2 trp (0:1) fixed bin (71), /* time record product - (0) for non dir pages */ 8 47 8 48 2 trp_time (0:1) bit (36), /* time time_record_product was last calculated */ 8 49 8 50 8 51 8 52 8 53 8 54 2 fm (0:255) bit (18), /* file map - 256 entries - 18 bits per entry */ 8 55 8 56 2 pad6 (10) bit (36), /* not used */ 8 57 8 58 2 ncd bit (1), /* no complete dump switch */ 8 59 2 pad7 bit (17), 8 60 2 pad8 bit (18), 8 61 8 62 2 dtd bit (36), /* date-time-dumped */ 8 63 8 64 2 volid (3) bit (36), /* volume ids of last incremental, consolidated, and complete dumps */ 8 65 8 66 2 master_dir_uid bit (36), /* superior master directory uid */ 8 67 8 68 8 69 8 70 8 71 2 uid_path (0:15) bit (36), /* uid pathname of all parents starting after the root */ 8 72 8 73 2 primary_name char (32), /* primary name of the segment */ 8 74 8 75 2 time_created bit (36), /* time the segment was created */ 8 76 8 77 2 par_pvid bit (36), /* physical volume id of the parent */ 8 78 8 79 2 par_vtocx fixed bin (17), /* vtoc entry index of the parent */ 8 80 2 branch_rp bit (18)) unaligned, /* rel pointer of the branch of this segment */ 8 81 8 82 2 cn_salv_time bit (36), /* time branch - vtoce connection checked */ 8 83 8 84 2 access_class bit (72), /* access class in branch */ 8 85 2 perm_flags aligned, 8 86 3 per_bootload bit (1) unal, /* ON => deleted each bootload */ 8 87 3 pad9 bit (35) unal, 8 88 2 owner bit (36); /* pvid of this volume */ 8 89 8 90 dcl vtoce_parts (3) bit (36 * 64) aligned based (vtocep); 8 91 8 92 dcl 1 seg_vtoce based (vtocep) aligned, /* Overlay for vtoce of segments, which don't have quota */ 8 93 2 pad1 bit (7*36), 8 94 2 usage fixed bin (35), /* page fault count: overlays quota */ 8 95 2 pad2 bit (184*36); 8 96 8 97 /* END INCLUDE FILE vtoce.incl.pl1 */ 513 514 end retv_util; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0800.9 retv_util.pl1 >spec>install>1110>retv_util.pl1 499 1 05/20/85 0848.1 dc_find_dcls.incl.pl1 >ldd>include>dc_find_dcls.incl.pl1 501 2 04/29/76 1100.6 dir_entry.incl.pl1 >ldd>include>dir_entry.incl.pl1 503 3 05/24/82 1005.0 dir_header.incl.pl1 >ldd>include>dir_header.incl.pl1 505 4 11/02/76 1414.7 dir_name.incl.pl1 >ldd>include>dir_name.incl.pl1 507 5 04/29/76 1049.2 dir_link.incl.pl1 >ldd>include>dir_link.incl.pl1 509 6 08/04/88 2054.1 fs_obj_access_codes.incl.pl1 >ldd>include>fs_obj_access_codes.incl.pl1 511 7 05/26/77 0922.2 fs_types.incl.pl1 >ldd>include>fs_types.incl.pl1 513 8 10/04/83 1105.1 vtoce.incl.pl1 >ldd>include>vtoce.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. DC_FIND_NO_CHASE 000002 constant fixed bin(1,0) initial dcl 1-11 set ref 228* 230* 232* 436* 467* DIRECTORY constant fixed bin(17,0) initial dcl 66 ref 257 DIR_TYPE constant bit(18) initial packed unaligned dcl 7-6 ref 392 FS_OBJ_ACL_MOD 000015 constant fixed bin(18,0) initial unsigned dcl 6-34 set ref 467* FS_OBJ_BC_MOD 000011 constant fixed bin(18,0) initial unsigned dcl 6-32 set ref 230* FS_OBJ_RENAME 000004 constant fixed bin(18,0) initial unsigned dcl 6-37 set ref 436* LINK constant fixed bin(17,0) initial dcl 67 ref 255 263 LINK_TYPE constant bit(18) initial packed unaligned dcl 7-7 ref 396 SEGMENT constant fixed bin(17,0) initial dcl 68 ref 259 SEG_TYPE constant bit(18) initial packed unaligned dcl 7-9 ref 392 a_access_name parameter char packed unaligned dcl 38 ref 187 194 a_aclc parameter fixed bin(17,0) dcl 39 ref 452 456 a_aclp parameter pointer dcl 40 ref 452 457 a_areap parameter pointer dcl 41 ref 340 365 a_auth parameter bit(72) dcl 42 ref 187 196 a_code parameter fixed bin(35,0) dcl 43 set ref 162 167 173 178 187 337* 340 412* 418 421* 424 446* 452 496* a_dirname parameter char packed unaligned dcl 44 ref 162 167 173 178 187 206 340 344 424 429 452 454 a_dp parameter pointer dcl 45 set ref 418 421* a_dtd parameter bit(36) dcl 46 set ref 187 320* a_dtm parameter bit(36) packed unaligned dcl 47 set ref 178 329* a_ename parameter char packed unaligned dcl 48 ref 162 167 173 178 187 208 424 430 452 455 a_ep parameter pointer dcl 49 set ref 173 335 418 421* a_level parameter fixed bin(17,0) dcl 50 ref 187 195 a_mode parameter bit(36) dcl 51 set ref 187 315* a_new_bc parameter fixed bin(24,0) dcl 52 ref 167 170 a_newname parameter char packed unaligned dcl 53 ref 424 431 a_nlc parameter fixed bin(17,0) dcl 54 set ref 340 406* a_nlp parameter pointer dcl 55 set ref 340 407* a_np parameter pointer dcl 56 set ref 418 421* a_old_bc parameter fixed bin(24,0) dcl 57 set ref 167 325* a_pmode parameter bit(36) dcl 58 set ref 187 316* a_pvid parameter bit(36) dcl 59 set ref 187 318* a_type parameter fixed bin(17,0) dcl 60 set ref 178 187 321* 330* a_uid parameter bit(36) dcl 61 set ref 187 317* a_volid parameter bit(36) array dcl 62 set ref 187 319* access_mode$user_effmode 000012 constant entry external dcl 134 ref 266 278 access_name 000100 automatic char(32) packed unaligned dcl 75 set ref 194* 266* 278* acl_$add_entry 000014 constant entry external dcl 137 ref 479 acl_$del_acl 000016 constant entry external dcl 138 ref 483 acl_frp 36 based bit(18) level 2 packed packed unaligned dcl 2-8 set ref 477 acl_list based structure array level 1 dcl 116 set ref 479 479 acl_start_ptr 000110 automatic pointer dcl 76 set ref 477* 479* 483* aclc 000112 automatic fixed bin(17,0) dcl 77 set ref 456* 478 acle_count 35(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 2-8 set ref 479 479 489* 489 acle_total 23(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 3-11 set ref 476 484* 488* 488 aclp 000114 automatic pointer dcl 78 set ref 457* 479 479 add_sw 000116 automatic bit(1) packed unaligned dcl 79 set ref 479* 486 addr builtin function dcl 156 ref 287 477 479 479 auth 000120 automatic bit(72) packed unaligned dcl 80 set ref 196* 266* 278* bad_dir_ 000622 stack reference condition dcl 153 ref 389 392 396 based_entry based structure level 1 unaligned dcl 117 set ref 335* bc 40(11) based fixed bin(24,0) level 2 packed packed unaligned dcl 2-8 set ref 249 250* bmode 000122 automatic bit(36) dcl 81 set ref 203* 269* 271* 315 bs 4 based bit(1) level 2 packed packed unaligned dcl 2-8 ref 255 284 392 change_pclock 62 based fixed bin(35,0) level 2 dcl 3-11 ref 358 374 check_entry constant fixed bin(17,0) initial dcl 69 ref 183 327 chname$retv 000020 constant entry external dcl 139 ref 441 code 000123 automatic fixed bin(35,0) dcl 82 set ref 211* 221* 228* 230* 232* 233 239* 266* 267 273* 274 278* 279 288* 289 291* 292 296* 337 345* 352* 353 369* 370 412 436* 437 441* 446 467* 468 478 479* 481 496 damaged 5(06) based bit(1) level 2 packed packed unaligned dcl 8-7 ref 294 dc_find$dir_read_priv 000044 constant entry external dcl 1-24 ref 352 dc_find$finished 000046 constant entry external dcl 1-33 ref 308 409 443 493 dc_find$obj_access_write_priv 000050 constant entry external dcl 1-40 ref 467 dc_find$obj_delete_priv 000052 constant entry external dcl 1-54 ref 228 dc_find$obj_status_read_priv 000054 constant entry external dcl 1-77 ref 232 dc_find$obj_status_write_priv 000056 constant entry external dcl 1-84 ref 230 436 delentry$salv_delete_branch 000022 constant entry external dcl 140 ref 239 delete_entry constant fixed bin(17,0) initial dcl 70 ref 164 228 237 dir based structure level 1 dcl 3-11 dir_count 22(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 3-11 ref 357 dirl 000124 automatic bit(1) dcl 83 set ref 214* 236* 308* 346* 355* 361* 372* 377* 402* 409* 428* 439* 443* 458* 470* 493* dirname 000125 automatic char(168) packed unaligned dcl 84 set ref 206* 228* 230* 232* 344* 352* 429* 436* 454* 467* dirsw 32 based bit(1) level 2 packed packed unaligned dcl 2-8 ref 257 269 dp 000640 automatic pointer dcl 3-9 set ref 213* 235* 273* 308 308* 348* 352* 357 357 357 358 360* 369* 374 376* 387 391 392 396 401* 409 409* 432* 440* 443 443* 459* 471* 476 484 488 488 492* 493 493* dtd 000177 automatic bit(36) dcl 85 in procedure "retv_util" set ref 202* 302* 320 dtd 233 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 8-7 in procedure "retv_util" ref 302 dtm 4 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 8-7 in procedure "retv_util" ref 304 dtm 000200 automatic bit(36) packed unaligned dcl 86 in procedure "retv_util" set ref 184* 304* 329 efrp based bit(18) level 2 packed packed unaligned dcl 2-8 ref 400 ename 000201 automatic char(32) packed unaligned dcl 87 set ref 208* 228* 230* 232* 430* 436* 455* 467* entry based structure level 1 dcl 2-8 set ref 244 entry_sw 000211 automatic fixed bin(17,0) dcl 88 set ref 164* 169* 175* 183* 193* 228 230 237 242 247 260 299 313 323 327 332 entryfrp 16 based bit(18) level 2 packed packed unaligned dcl 3-11 ref 387 ep 000636 automatic pointer dcl 2-6 set ref 228* 230* 232* 235 239* 244 249 250 255 257 262 265 266* 269 284 288 291 291 291 294 391* 392 392 392 392 396 396 399 399 400 436* 440 441* 467* 471 477 479 479 479 489 489 error_table_$vtoce_connection_fail 000010 external static fixed bin(35,0) dcl 129 ref 221 296 exmode 000212 automatic bit(36) dcl 89 set ref 266* 269 278* 281 fixed builtin function dcl 157 ref 291 291 479 479 get_entry constant fixed bin(17,0) initial dcl 71 ref 175 242 332 get_pvtx 000024 constant entry external dcl 142 ref 288 getuid 000026 constant entry external dcl 143 ref 334 hash$search 000030 constant entry external dcl 144 ref 421 i 000213 automatic fixed bin(17,0) dcl 90 set ref 386* 388* 388 389 478* 479 479* idx 000214 automatic fixed bin(17,0) dcl 91 set ref 347* 398* 398 399 ignore 000215 automatic fixed bin(35,0) dcl 92 set ref 483* input_acl based structure level 1 dcl 118 lcount 23 based fixed bin(17,0) level 2 packed packed unaligned dcl 3-11 ref 357 level 000216 automatic fixed bin(17,0) dcl 93 set ref 195* 266* 278* link based structure level 1 dcl 5-6 local_entry 000217 automatic structure level 1 unaligned dcl 94 set ref 244* 335 local_vtoce 000264 automatic structure level 1 dcl 95 set ref 286* 287 lock$dir_lock_read 000032 constant entry external dcl 145 ref 369 lock$dir_unlock 000034 constant entry external dcl 146 ref 311 360 376 401 mode 000564 automatic bit(36) dcl 96 set ref 266* 271 278* name 4 based char(32) level 2 dcl 4-7 ref 399 name_frp 5 based bit(18) level 2 packed packed unaligned dcl 2-8 ref 399 name_list based char(32) array dcl 124 set ref 365 378 399* names based structure level 1 dcl 4-7 new_bc 000565 automatic fixed bin(24,0) dcl 97 set ref 170* 250 newname 000566 automatic char(32) packed unaligned dcl 98 set ref 431* 441* nlc 000576 automatic fixed bin(17,0) dcl 99 set ref 357* 365 378 389 406 nlp 000600 automatic pointer dcl 100 set ref 365* 378 399 407 null builtin function dcl 158 ref 213 308 348 409 432 443 459 493 old_bc 000602 automatic fixed bin(24,0) dcl 101 set ref 249* 325 owner 44 based bit(36) level 2 in structure "entry" dcl 2-8 in procedure "retv_util" ref 392 owner based bit(36) level 2 in structure "link" dcl 5-6 in procedure "retv_util" ref 396 par_dirl 000603 automatic bit(1) dcl 102 set ref 215* 276* 311 par_ep 000604 automatic pointer dcl 103 set ref 273* 278* 311 311 pathname_size 30(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 5-6 ref 396 pmode 000606 automatic bit(36) dcl 104 set ref 204* 281* 316 prior_dir_acl_count 000607 automatic fixed bin(17,0) dcl 105 set ref 476* 484 ptr builtin function dcl 159 ref 235 311 311 391 399 440 471 pvid 30 based bit(36) level 2 in structure "entry" packed packed unaligned dcl 2-8 in procedure "retv_util" set ref 265 288* 291* pvid 000610 automatic bit(36) dcl 106 in procedure "retv_util" set ref 200* 265* 318 pvtx 000611 automatic fixed bin(17,0) dcl 107 set ref 288* 291* rp 000612 automatic bit(18) dcl 108 set ref 387* 387* 391* saved_change_pclock 000613 automatic fixed bin(35,0) dcl 109 set ref 358* 374 seg_count 22 based fixed bin(17,0) level 2 packed packed unaligned dcl 3-11 ref 357 seg_fault_error 000630 stack reference condition dcl 154 ref 219 set_bc_entry constant fixed bin(17,0) initial dcl 72 ref 169 230 247 323 status_entry constant fixed bin(17,0) initial dcl 73 ref 193 260 299 313 sum$dirmod 000036 constant entry external dcl 147 ref 492 sum$getbranch 000040 constant entry external dcl 148 ref 273 type 000614 automatic fixed bin(17,0) dcl 110 in procedure "retv_util" set ref 212* 255* 257* 259* 263 321 330 type 1 based bit(18) level 2 in structure "link" packed packed unaligned dcl 5-6 in procedure "retv_util" ref 396 type 1 based bit(18) level 2 in structure "entry" packed packed unaligned dcl 2-8 in procedure "retv_util" ref 392 392 uid 000615 automatic bit(36) dcl 111 in procedure "retv_util" set ref 199* 262* 317 uid 2 000217 automatic bit(36) level 2 in structure "local_entry" packed packed unaligned dcl 94 in procedure "retv_util" set ref 334* uid 10 based bit(36) level 2 in structure "dir" dcl 3-11 in procedure "retv_util" ref 392 396 uid 1 based bit(36) level 2 in structure "vtoce" packed packed unaligned dcl 8-7 in procedure "retv_util" ref 294 uid 2 based bit(36) level 2 in structure "entry" dcl 2-8 in procedure "retv_util" set ref 262 294 479* unspec builtin function dcl 160 set ref 244* 244 286* 335* 335 user_area based area(1024) dcl 125 ref 365 volid 234 based bit(36) array level 2 in structure "vtoce" packed packed unaligned dcl 8-7 in procedure "retv_util" ref 301 volid 000616 automatic bit(36) array dcl 112 in procedure "retv_util" set ref 201* 301* 319 vtoc_man$get_vtoce 000042 constant entry external dcl 149 ref 291 vtoce based structure level 1 dcl 8-7 vtocep 000642 automatic pointer dcl 8-5 set ref 287* 291* 294 294 301 302 304 vtocx 31 based fixed bin(17,0) level 2 packed packed unaligned dcl 2-8 ref 291 291 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCESS_NAME_TYPE internal static bit(18) initial packed unaligned dcl 7-3 ACLE_TYPE internal static bit(18) initial packed unaligned dcl 7-4 DC_FIND_CHASE internal static fixed bin(1,0) initial dcl 1-10 DC_FIND_NO_UNLOCK_DIR internal static bit(1) initial dcl 1-12 DC_FIND_UNLOCK_DIR internal static bit(1) initial dcl 1-13 DIR_HEADER_TYPE internal static bit(18) initial packed unaligned dcl 7-5 FS_OBJ_ACL_RING_MOD internal static fixed bin(18,0) initial unsigned dcl 6-36 FS_OBJ_AUDIT_FLAG_MOD internal static fixed bin(18,0) initial unsigned dcl 6-67 FS_OBJ_AUTHOR_MOD internal static fixed bin(18,0) initial unsigned dcl 6-46 FS_OBJ_BACKUP_TIMES_MOD internal static fixed bin(18,0) initial unsigned dcl 6-48 FS_OBJ_BC_AUTHOR_MOD internal static fixed bin(18,0) initial unsigned dcl 6-47 FS_OBJ_CONNECT internal static fixed bin(18,0) initial unsigned dcl 6-31 FS_OBJ_COPY_SW_MOD internal static fixed bin(18,0) initial unsigned dcl 6-38 FS_OBJ_CORRECT_QUSED internal static fixed bin(18,0) initial unsigned dcl 6-55 FS_OBJ_CREATE_BRANCH internal static fixed bin(18,0) initial unsigned dcl 6-66 FS_OBJ_DAMAGED_SW_MOD internal static fixed bin(18,0) initial unsigned dcl 6-39 FS_OBJ_DATES_MOD internal static fixed bin(18,0) initial unsigned dcl 6-49 FS_OBJ_DIR_SALVAGE internal static fixed bin(18,0) initial unsigned dcl 6-56 FS_OBJ_DNZP_MOD internal static fixed bin(18,0) initial unsigned dcl 6-40 FS_OBJ_DT_DUMPED_MOD internal static fixed bin(18,0) initial unsigned dcl 6-50 FS_OBJ_ENTRY_BOUND_MOD internal static fixed bin(18,0) initial unsigned dcl 6-41 FS_OBJ_FOR_RELOADER_MOD internal static fixed bin(18,0) initial unsigned dcl 6-51 FS_OBJ_IACL_MOD internal static fixed bin(18,0) initial unsigned dcl 6-65 FS_OBJ_MAX_LEN_MOD internal static fixed bin(18,0) initial unsigned dcl 6-42 FS_OBJ_MDIR_QUOTA_MOD internal static fixed bin(18,0) initial unsigned dcl 6-57 FS_OBJ_MOVE_QUOTA internal static fixed bin(18,0) initial unsigned dcl 6-54 FS_OBJ_QUOTA_MOD internal static fixed bin(18,0) initial unsigned dcl 6-58 FS_OBJ_QUOTA_RELOAD internal static fixed bin(18,0) initial unsigned dcl 6-59 FS_OBJ_RECLASSIFY internal static fixed bin(18,0) initial unsigned dcl 6-60 FS_OBJ_RECLASSIFY_NODE internal static fixed bin(18,0) initial unsigned dcl 6-61 FS_OBJ_RING_MOD internal static fixed bin(18,0) initial unsigned dcl 6-35 FS_OBJ_SAFETY_SW_MOD internal static fixed bin(18,0) initial unsigned dcl 6-43 FS_OBJ_SEG_MOVE internal static fixed bin(18,0) initial unsigned dcl 6-62 FS_OBJ_SONS_LVID_MOD internal static fixed bin(18,0) initial unsigned dcl 6-52 FS_OBJ_SOOS_MOD internal static fixed bin(18,0) initial unsigned dcl 6-53 FS_OBJ_SYNC_SW_MOD internal static fixed bin(18,0) initial unsigned dcl 6-44 FS_OBJ_TRP_MOD internal static fixed bin(18,0) initial unsigned dcl 6-63 FS_OBJ_TRUNCATE internal static fixed bin(18,0) initial unsigned dcl 6-33 FS_OBJ_VOLUME_RETRIEVE internal static fixed bin(18,0) initial unsigned dcl 6-64 FS_OBJ_VOL_DUMP_SW_MOD internal static fixed bin(18,0) initial unsigned dcl 6-45 HASH_TABLE_TYPE internal static bit(18) initial packed unaligned dcl 7-10 NAME_TYPE internal static bit(18) initial packed unaligned dcl 7-8 access_name_type internal static fixed bin(17,0) initial dcl 7-12 access_operations_$fs_obj_access_mod external static bit(36) dcl 6-27 access_operations_$fs_obj_attr_mod external static bit(36) dcl 6-25 access_operations_$fs_obj_contents_mod external static bit(36) dcl 6-23 access_operations_$fs_obj_contents_read external static bit(36) dcl 6-22 access_operations_$fs_obj_create external static bit(36) dcl 6-18 access_operations_$fs_obj_delete external static bit(36) dcl 6-19 access_operations_$fs_obj_initiate external static bit(36) dcl 6-20 access_operations_$fs_obj_prop_read external static bit(36) dcl 6-24 access_operations_$fs_obj_status_mod external static bit(36) dcl 6-26 access_operations_$fs_obj_terminate external static bit(36) dcl 6-21 acle_type internal static fixed bin(17,0) initial dcl 7-13 dc_find$dir_for_append 000000 constant entry external dcl 1-15 dc_find$dir_for_append_raw 000000 constant entry external dcl 1-16 dc_find$dir_for_retrieve_append 000000 constant entry external dcl 1-17 dc_find$dir_initiate 000000 constant entry external dcl 1-19 dc_find$dir_move_quota 000000 constant entry external dcl 1-21 dc_find$dir_read 000000 constant entry external dcl 1-23 dc_find$dir_reclassify 000000 constant entry external dcl 1-26 dc_find$dir_salvage 000000 constant entry external dcl 1-28 dc_find$dir_write 000000 constant entry external dcl 1-30 dc_find$dir_write_priv 000000 constant entry external dcl 1-31 dc_find$link_target 000000 constant entry external dcl 1-35 dc_find$mdir_set_quota_uid 000000 constant entry external dcl 1-37 dc_find$obj_access_write 000000 constant entry external dcl 1-39 dc_find$obj_attributes_read 000000 constant entry external dcl 1-42 dc_find$obj_attributes_read_ptr 000000 constant entry external dcl 1-43 dc_find$obj_attributes_write 000000 constant entry external dcl 1-45 dc_find$obj_attributes_write_ptr 000000 constant entry external dcl 1-46 dc_find$obj_bc_delta_write 000000 constant entry external dcl 1-48 dc_find$obj_bc_delta_write_ptr 000000 constant entry external dcl 1-49 dc_find$obj_bc_write 000000 constant entry external dcl 1-50 dc_find$obj_bc_write_ptr 000000 constant entry external dcl 1-51 dc_find$obj_delete 000000 constant entry external dcl 1-53 dc_find$obj_delete_priv_uid 000000 constant entry external dcl 1-56 dc_find$obj_delete_ptr 000000 constant entry external dcl 1-57 dc_find$obj_delete_uid 000000 constant entry external dcl 1-55 dc_find$obj_existence_ptr 000000 constant entry external dcl 1-59 dc_find$obj_for_audit 000000 constant entry external dcl 1-61 dc_find$obj_initiate 000000 constant entry external dcl 1-63 dc_find$obj_initiate_for_linker_dp 000000 constant entry external dcl 1-64 dc_find$obj_initiate_raw 000000 constant entry external dcl 1-65 dc_find$obj_linkage_ring_ptr 000000 constant entry external dcl 1-67 dc_find$obj_modes_ptr 000000 constant entry external dcl 1-69 dc_find$obj_reclassify 000000 constant entry external dcl 1-71 dc_find$obj_status_attributes_read 000000 constant entry external dcl 1-73 dc_find$obj_status_read 000000 constant entry external dcl 1-75 dc_find$obj_status_read_priv_ptr 000000 constant entry external dcl 1-78 dc_find$obj_status_read_priv_uid 000000 constant entry external dcl 1-79 dc_find$obj_status_read_ptr 000000 constant entry external dcl 1-81 dc_find$obj_status_read_raw_uid 000000 constant entry external dcl 1-80 dc_find$obj_status_read_uid 000000 constant entry external dcl 1-76 dc_find$obj_status_write 000000 constant entry external dcl 1-83 dc_find$obj_status_write_priv_ptr 000000 constant entry external dcl 1-85 dc_find$obj_status_write_ptr 000000 constant entry external dcl 1-86 dc_find$obj_terminate 000000 constant entry external dcl 1-88 dc_find$obj_terminate_ptr 000000 constant entry external dcl 1-89 dc_find$obj_truncate 000000 constant entry external dcl 1-91 dc_find$obj_truncate_ptr 000000 constant entry external dcl 1-92 dc_find$obj_truncate_raw_ptr 000000 constant entry external dcl 1-93 dc_find$obj_volume_retrieve 000000 constant entry external dcl 1-95 dc_find$seg_fault 000000 constant entry external dcl 1-97 dir_header_type internal static fixed bin(17,0) initial dcl 7-14 dir_type internal static fixed bin(17,0) initial dcl 7-15 hash_table_type internal static fixed bin(17,0) initial dcl 7-19 link_type internal static fixed bin(17,0) initial dcl 7-16 name_type internal static fixed bin(17,0) initial dcl 7-17 np automatic pointer dcl 4-5 seg_type internal static fixed bin(17,0) initial dcl 7-18 seg_vtoce based structure level 1 dcl 8-92 version_number_2 internal static fixed bin(17,0) initial dcl 3-84 vtoce_parts based bit(2304) array dcl 8-90 NAMES DECLARED BY EXPLICIT CONTEXT. RETRY 001154 constant label dcl 352 ref 379 add_acl 001652 constant entry external dcl 452 add_acl_ret 002071 constant label dcl 493 ref 468 addname 001476 constant entry external dcl 424 addname_ret 001625 constant label dcl 443 ref 437 check 000171 constant entry external dcl 178 common 000321 constant label dcl 206 ref 165 171 176 185 delete 000045 constant entry external dcl 162 get 000136 constant entry external dcl 173 hash_search 001442 constant entry external dcl 418 name_list 001123 constant entry external dcl 340 name_list_ret 001415 constant label dcl 409 ref 353 370 retv_util 000033 constant entry external dcl 14 set_bc 000100 constant entry external dcl 167 status 000233 constant entry external dcl 187 status_ret 000775 constant label dcl 308 ref 222 233 240 245 251 267 274 279 289 292 297 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2462 2542 2112 2472 Length 3140 2112 60 361 347 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME retv_util 496 external procedure is an external procedure. on unit on line 219 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME retv_util 000100 access_name retv_util 000110 acl_start_ptr retv_util 000112 aclc retv_util 000114 aclp retv_util 000116 add_sw retv_util 000120 auth retv_util 000122 bmode retv_util 000123 code retv_util 000124 dirl retv_util 000125 dirname retv_util 000177 dtd retv_util 000200 dtm retv_util 000201 ename retv_util 000211 entry_sw retv_util 000212 exmode retv_util 000213 i retv_util 000214 idx retv_util 000215 ignore retv_util 000216 level retv_util 000217 local_entry retv_util 000264 local_vtoce retv_util 000564 mode retv_util 000565 new_bc retv_util 000566 newname retv_util 000576 nlc retv_util 000600 nlp retv_util 000602 old_bc retv_util 000603 par_dirl retv_util 000604 par_ep retv_util 000606 pmode retv_util 000607 prior_dir_acl_count retv_util 000610 pvid retv_util 000611 pvtx retv_util 000612 rp retv_util 000613 saved_change_pclock retv_util 000614 type retv_util 000615 uid retv_util 000616 volid retv_util 000636 ep retv_util 000640 dp retv_util 000642 vtocep retv_util THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac tra_ext_1 signal_op enable_op ext_entry ext_entry_desc int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. access_mode$user_effmode acl_$add_entry acl_$del_acl chname$retv dc_find$dir_read_priv dc_find$finished dc_find$obj_access_write_priv dc_find$obj_delete_priv dc_find$obj_status_read_priv dc_find$obj_status_write_priv delentry$salv_delete_branch get_pvtx getuid hash$search lock$dir_lock_read lock$dir_unlock sum$dirmod sum$getbranch vtoc_man$get_vtoce THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$vtoce_connection_fail LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000032 162 000040 164 000070 165 000072 167 000073 169 000123 170 000125 171 000130 173 000131 175 000161 176 000163 178 000164 183 000216 184 000220 185 000221 187 000222 193 000265 194 000267 195 000275 196 000277 199 000303 200 000304 201 000305 202 000316 203 000317 204 000320 206 000321 208 000327 211 000334 212 000335 213 000336 214 000340 215 000341 219 000342 221 000356 222 000361 228 000364 230 000407 232 000433 233 000452 235 000454 236 000456 237 000460 239 000463 240 000474 242 000475 244 000477 245 000503 247 000504 249 000506 250 000513 251 000517 255 000520 257 000527 259 000535 260 000537 262 000542 263 000544 265 000547 266 000551 267 000574 269 000576 271 000605 273 000607 274 000625 276 000627 278 000631 279 000654 281 000656 284 000660 286 000664 287 000667 288 000671 289 000704 291 000706 292 000735 294 000737 296 000747 297 000752 299 000753 301 000756 302 000770 303 000772 304 000773 308 000775 311 001012 313 001025 315 001030 316 001033 317 001035 318 001037 319 001041 320 001047 321 001051 322 001053 323 001054 325 001056 326 001061 327 001062 329 001064 330 001071 331 001073 332 001074 334 001076 335 001105 337 001113 338 001115 340 001116 344 001141 345 001147 346 001150 347 001151 348 001152 352 001154 353 001167 355 001171 357 001173 358 001210 360 001212 361 001221 365 001222 369 001232 370 001243 372 001245 374 001247 376 001253 377 001262 378 001263 379 001267 386 001270 387 001271 388 001276 389 001277 391 001305 392 001311 395 001333 396 001334 398 001356 399 001357 400 001374 401 001400 402 001407 406 001410 407 001413 409 001415 412 001432 413 001434 418 001435 421 001452 422 001470 424 001471 428 001526 429 001527 430 001535 431 001542 432 001547 436 001551 437 001572 439 001574 440 001576 441 001600 443 001625 446 001642 447 001644 452 001645 454 001675 455 001703 456 001710 457 001712 458 001715 459 001716 467 001720 468 001741 470 001743 471 001745 476 001747 477 001753 478 001756 479 001767 481 002022 483 002024 484 002035 485 002040 486 002041 488 002044 489 002052 491 002060 492 002062 493 002071 496 002106 497 002110 ----------------------------------------------------------- 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