COMPILATION LISTING OF SEGMENT set_sons_lvid 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 1042.1 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /* format: style4 */ 14 set_sons_lvid: proc (a_dirname, a_ename, a_sons_lvid, a_code); 15 16 /* 17* Last modified: 18* 19* 06/03/76 by R. Bratt to call find_$finished 20* 02/28/82 by J. Bongiovanni to eliminate use of FSDCT 21* 08/06/83 by E. N. Kittlitz for search_ast$check 22* 831219 by E. N. Kittlitz for set_pdir_sons_lvid 23* 07/03/84 by Keith Loepere to use the new dc_find. 24* 10/15/84 by Keith Loepere for auditing info; also explicit activate of dir. 25* 12/17/84 by E. Swenson to not violate the locking protocol. 26**/ 27 28 /* Parameters */ 29 30 dcl a_code fixed bin (35) parameter; 31 dcl a_dirname char (*) parameter; 32 dcl a_ename char (*) parameter; 33 dcl a_sons_lvid bit (36) parameter; 34 35 /* Variables */ 36 37 dcl code fixed bin (35); 38 dcl dir_locked bit (1) aligned; /* indicates we have the directory locked */ 39 dcl dirname char (168); 40 dcl ename char (32); 41 dcl ignore fixed bin (35); 42 dcl 1 my_makeknown_info aligned like makeknown_info; 43 dcl pdir bit (1) aligned; 44 dcl ring fixed bin; 45 dcl seg_pvid bit (36) aligned; 46 dcl seg_uid bit (36) aligned; 47 dcl seg_vtocx fixed bin; 48 dcl segnum fixed bin (17); 49 dcl segptr ptr; 50 dcl set_lvid bit (1); 51 dcl sons_lvid bit (36); 52 dcl target_locked bit (1) aligned; /* indicates we have the target directory locked */ 53 dcl write_lock bit (36) aligned init ("1"b); 54 55 /* External */ 56 57 dcl error_table_$argerr fixed bin (35) ext; 58 dcl error_table_$bad_ring_brackets fixed bin (35) ext; 59 dcl error_table_$fulldir fixed bin (35) ext; 60 dcl error_table_$notadir fixed bin (35) ext; 61 dcl error_table_$segknown fixed bin (35) ext; 62 dcl pvt$root_lvid bit (36) aligned ext; 63 64 /* Entries */ 65 66 dcl level$get entry returns (fixed bin); 67 dcl lock$dir_lock_write entry (ptr, fixed bin (35)); 68 dcl lock$dir_unlock entry (ptr); 69 dcl lock$lock_ast entry; 70 dcl lock$unlock_ast entry; 71 dcl makeknown_ entry (ptr, fixed bin (17), fixed bin, fixed bin (35)); 72 dcl makeunknown_ entry (fixed bin, bit (36) aligned, bit (1) aligned, fixed bin (35)); 73 dcl search_ast$check entry (bit (36) aligned, bit (36) aligned, fixed bin, fixed bin (35)) returns (ptr); 74 dcl sum$dirmod entry (ptr); 75 76 /* Misc */ 77 78 dcl (addr, baseptr, fixed, ptr, null, unspec) builtin; 79 80 sons_lvid = a_sons_lvid; /* Copy arg */ 81 set_lvid = "1"b; 82 pdir = "0"b; 83 go to join; 84 85 set_pdir_sons_lvid: entry (a_dirname, a_ename, a_sons_lvid, a_code); 86 87 sons_lvid = a_sons_lvid; 88 set_lvid = "1"b; 89 pdir = "1"b; 90 go to join; 91 92 set_rpv: entry (a_dirname, a_ename, a_code); /* Force segs to be created on rpv */ 93 94 pdir = "0"b; 95 set_lvid = "0"b; 96 join: 97 dirname = a_dirname; /* copy arguments */ 98 ename = a_ename; 99 100 ring = level$get (); /* get validation level */ 101 102 target_locked = "0"b; 103 dir_locked = "0"b; 104 segptr = null; 105 106 call dc_find$obj_status_write (dirname, ename, DC_FIND_NO_CHASE, FS_OBJ_SONS_LVID_MOD, ep, code); /* get ptr to entry + lock dir for writing */ 107 if code ^= 0 then go to finale; 108 dp = ptr (ep, 0); 109 dir_locked = "1"b; 110 111 if ^ep -> entry.dirsw then do; 112 code = error_table_$notadir; 113 go to finale; 114 end; 115 116 if ring > fixed (ep -> entry.ex_ring_brackets (1), 3) 117 then do; 118 code = error_table_$bad_ring_brackets; /* ringbrackets must be consistent with validation level */ 119 go to finale; 120 end; 121 122 seg_uid = entry.uid; 123 124 makeknown_infop = addr (my_makeknown_info); /* activate target dir */ 125 unspec (makeknown_info) = "0"b; 126 makeknown_info.activate, makeknown_info.dirsw, makeknown_info.allow_write = "1"b; 127 makeknown_info.uid = seg_uid; 128 makeknown_info.entryp = ep; 129 call makeknown_ (makeknown_infop, segnum, (0), code); 130 if code ^= 0 then 131 if code ^= error_table_$segknown then go to finale; 132 segptr = baseptr (segnum); 133 134 call dc_find$finished (dp, "1"b); /* unlock so we can lock child */ 135 dir_locked = "0"b; 136 137 call lock$dir_lock_write (segptr, code); /* Lock the dir to be modified */ 138 if code ^= 0 then go to finale; 139 target_locked = "1"b; 140 141 call dc_find$obj_status_write (dirname, ename, DC_FIND_NO_CHASE, FS_OBJ_SONS_LVID_MOD, ep, code); /* refind and relock parent */ 142 if code ^= 0 then go to finale; 143 dp = ptr (ep, 0); /* just in case it changed */ 144 dir_locked = "1"b; /* remember to unlock it */ 145 146 if set_lvid then do; 147 if segptr -> dir.sons_lvid ^= sons_lvid then do; /* If this is really a change */ 148 if segptr -> dir.seg_count ^= 0 & ^pdir then do; 149 code = error_table_$fulldir; 150 go to finale; 151 end; 152 153 if ^pdir then do; 154 segptr -> dir.master_dir = "1"b; 155 segptr -> dir.master_dir_uid = seg_uid; 156 entry.master_dir = "1"b; 157 end; 158 segptr -> dir.sons_lvid = sons_lvid; /* Tudo bem. Set the directory header */ 159 entry.sons_lvid = sons_lvid; /* Set into branch for the dir too. */ 160 seg_pvid = entry.pvid; /* no page fault with dir & ast locked */ 161 seg_vtocx = entry.vtocx; /* ... */ 162 if ^pdir then do; 163 call lock$lock_ast; /* turn on ast bit */ 164 astep = search_ast$check (seg_uid, seg_pvid, seg_vtocx, (0)); /* ignore double-uid error */ 165 if astep ^= null () then astep -> aste.master_dir = "1"b; 166 call lock$unlock_ast; 167 end; 168 end; 169 end; 170 else do; /* Setting RPV */ 171 if segptr -> dir.sons_lvid ^= pvt$root_lvid then do; 172 code = error_table_$argerr; 173 go to finale; 174 end; 175 segptr -> dir.force_rpv = "1"b; 176 end; 177 call sum$dirmod (dp); /* Indicate parent dir modified */ 178 179 finale: if segptr ^= null then do; 180 if target_locked then 181 call lock$dir_unlock (segptr); 182 call makeunknown_ (segnum, "0"b, ("0"b), ignore); 183 end; 184 if dir_locked then 185 call dc_find$finished (dp, "1"b); 186 a_code = code; 187 return; 188 189 /* format: off */ 190 191 /* BEGIN INCLUDE FILE ...aste.incl.pl1 ... */ 1 2 1 3 /* Template for an AST entry. Length = 12 words. */ 1 4 1 5 /* Words 0 to 7, and 11 are read by PC; they are read and modified by SC. 1 6* Words 8, 9 and 10 are modified by PC; they should never be modified without locking the PC lock */ 1 7 /* Modified January 1985 by Keith Loepere for multi_class. */ 1 8 1 9 dcl astep ptr; 1 10 1 11 dcl 1 aste based (astep) aligned, 1 12 1 13 (2 fp bit (18), /* forward used list rel pointer */ 1 14 2 bp bit (18), /* backward used list rel pointer */ 1 15 1 16 2 infl bit (18), /* ptr to NEXT in list of ASTE's of my brothers */ 1 17 2 infp bit (18), /* ptr to FIRST in list of ASTE's of my children */ 1 18 1 19 2 strp bit (18), /* rel pointer to process trailer */ 1 20 2 par_astep bit (18), /* rel pointer to parent aste */ 1 21 1 22 2 uid bit (36), /* segment unique id */ 1 23 1 24 2 msl bit (9), /* maximum segment length in 1024 word units */ 1 25 2 pvtx fixed bin (8), /* physical volume table index */ 1 26 2 vtocx fixed bin (17), /* vtoc entry index */ 1 27 1 28 2 usedf bit (1), /* ast entry is being used if non-zero */ 1 29 2 init bit (1), /* used bit - insure 1 lap */ 1 30 2 gtus bit (1), /* global transparent usage switch */ 1 31 2 gtms bit (1), /* global transparent modified switch */ 1 32 2 hc bit (1), /* hard core segment */ 1 33 2 hc_sdw bit (1), /* aste with sdw for hardcore seg if non-zero */ 1 34 2 any_access_on bit (1), /* any sdw allows access, unless write_access_on */ 1 35 2 write_access_on bit (1), /* any sdw allows write access */ 1 36 2 inhibit_cache bit (1), /* flag not to reset above bits */ 1 37 2 explicit_deact_ok bit (1), /* set if user can deactivate seg */ 1 38 2 deact_error bit (1), /* set if error occurred while deactivating */ 1 39 2 hc_part bit (1), /* set if pages are in a hardcore partition */ 1 40 2 fm_damaged bit (1), /* set if filemap checksum was ever bad */ 1 41 2 multi_class bit (1), /* set if page_control should watch state changes to this segment */ 1 42 2 pad1 bit (2), /* OO */ 1 43 2 dius bit (1), /* dumper in use switch */ 1 44 2 nid bit (1), /* if on prevents addtion to incremental dump map */ 1 45 2 dmpr_pad bit (1), 1 46 2 ehs bit (1), /* entry hold switch */ 1 47 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 1 48 2 dirsw bit (1), /* directory switch */ 1 49 2 master_dir bit (1), /* master dir - a root for the log volume */ 1 50 2 volmap_seg bit (1), /* volmap_seg for some volume */ 1 51 2 tqsw (0:1) bit (1), /* terminal quota switch - (0) for non dir pages */ 1 52 2 pad_ic bit (10), /* Used to be aste.ic */ 1 53 1 54 2 dtu bit (36), /* date and time segment last used */ 1 55 1 56 2 dtm bit (36), /* date and time segment last modified */ 1 57 1 58 1 59 2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 1 60 1 61 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 1 62 1 63 2 csl bit (9), /* current segment length in 1024 words units */ 1 64 2 fmchanged bit (1), /* turned on by page if file map changed */ 1 65 2 fms bit (1), /* file modified switch */ 1 66 2 npfs bit (1), /* no page fault switch */ 1 67 2 gtpd bit (1), /* global transparent paging device switch */ 1 68 2 dnzp bit (1), /* don't null out if zero page switch */ 1 69 2 per_process bit (1), /* use master quota for this entry */ 1 70 2 ddnp bit (1), /* don't deposit nulled pages */ 1 71 2 pad2 bit (2), 1 72 2 records bit (9), /* number of records used by the seg in sec storage */ 1 73 2 np bit (9), /* number of pages in core */ 1 74 1 75 1 76 2 ht_fp bit (18), /* hash table forward rel pointer */ 1 77 2 fmchanged1 bit (1), /* value of "fmchanged" saved by pc$get_file_map */ 1 78 2 damaged bit (1), /* PC declared segment unusable */ 1 79 2 pack_ovfl bit (1), /* page fault on seg would cause pack overflow */ 1 80 2 synchronized bit (1), /* Data Management synchronized segment */ 1 81 2 pad3 bit (6), /* OOOOOOOOO */ 1 82 2 ptsi bit (2), /* page table size index */ 1 83 2 marker bit (6)) unaligned; /* marker to indicate last word of ASTE */ 1 84 1 85 1 86 dcl asta (0 : 8000) bit (36*12 /* sst-> sst.astsize */) based aligned; 1 87 1 88 1 89 dcl 1 aste_part aligned based (astep), 1 90 1 91 2 one bit (36) unaligned, /* fp and bp */ 1 92 2 two bit (36*11 - 8) unaligned, /* part that has to be zeroed when ASTE is freed */ 1 93 2 three bit (8) unaligned; /* ptsi and marker */ 1 94 1 95 1 96 dcl 1 seg_aste based (astep) aligned, /* Overlay because quota is only for dirs */ 1 97 2 pad1 bit (8*36), 1 98 2 usage fixed bin (35), /* page fault count: overlays quota */ 1 99 2 pad2 bit (3*36); 1 100 1 101 /* END INCLUDE FILE ... aste.incl.pl1 */ 191 192 /* BEGIN include file dc_find_dcls.incl.pl1 */ 2 2 2 3 /* Calling sequences for dc_find. Keith Loepere, June 1984. */ 2 4 /* Added a few more, October 1984. */ 2 5 /* 85-05-08, EJ Sharpe: added obj_delete_uid, obj_status_read_uid, and obj_status_read_raw_uid */ 2 6 /* 85-05-15, EJ Sharpe: changed dir_write_raw_uid to mdir_set_quota_uid */ 2 7 2 8 /* format: style4,indattr,ifthenstmt,ifthen,idind35,^indcomtxt */ 2 9 2 10 dcl DC_FIND_CHASE fixed bin (1) static options (constant) init (1); 2 11 dcl DC_FIND_NO_CHASE fixed bin (1) static options (constant) init (0); 2 12 dcl DC_FIND_NO_UNLOCK_DIR bit (1) aligned static options (constant) init ("0"b); 2 13 dcl DC_FIND_UNLOCK_DIR bit (1) aligned static options (constant) init ("1"b); 2 14 2 15 dcl dc_find$dir_for_append entry (char (168), char (32), fixed bin (1), ptr, ptr, fixed bin (35)); 2 16 dcl dc_find$dir_for_append_raw entry (char (168), char (32), fixed bin (1), ptr, ptr, fixed bin (35)); 2 17 dcl dc_find$dir_for_retrieve_append entry (char (168), char (32), fixed bin (1), ptr, ptr, ptr, fixed bin (35)); 2 18 2 19 dcl dc_find$dir_initiate entry (char (168), ptr, fixed bin (35)); 2 20 2 21 dcl dc_find$dir_move_quota entry (char (168), ptr, ptr, fixed bin (35)); 2 22 2 23 dcl dc_find$dir_read entry (char (168), ptr, fixed bin (35)); 2 24 dcl dc_find$dir_read_priv entry (char (168), ptr, fixed bin (35)); 2 25 2 26 dcl dc_find$dir_reclassify entry (char (168), ptr, ptr, ptr, fixed bin (35)); 2 27 2 28 dcl dc_find$dir_salvage entry (char (168), bit (36) aligned, ptr, fixed bin (35)); 2 29 2 30 dcl dc_find$dir_write entry (char (168), fixed bin (18) uns, ptr, fixed bin (35)); 2 31 dcl dc_find$dir_write_priv entry (char (168), fixed bin (18) uns, ptr, fixed bin (35)); 2 32 2 33 dcl dc_find$finished entry (ptr, bit (1) aligned); 2 34 2 35 dcl dc_find$link_target entry (char (168), char (32), fixed bin (35)); 2 36 2 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)); 2 38 2 39 dcl dc_find$obj_access_write entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 2 40 dcl dc_find$obj_access_write_priv entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 2 41 2 42 dcl dc_find$obj_attributes_read entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 2 43 dcl dc_find$obj_attributes_read_ptr entry (ptr, ptr, fixed bin (35)); 2 44 2 45 dcl dc_find$obj_attributes_write entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 2 46 dcl dc_find$obj_attributes_write_ptr entry (ptr, fixed bin (18) uns, ptr, fixed bin (35)); 2 47 2 48 dcl dc_find$obj_bc_delta_write entry (char (168), char (32), fixed bin (24), ptr, fixed bin (35)); 2 49 dcl dc_find$obj_bc_delta_write_ptr entry (ptr, fixed bin (24), ptr, fixed bin (35)); 2 50 dcl dc_find$obj_bc_write entry (char (168), char (32), fixed bin (24), ptr, fixed bin (35)); 2 51 dcl dc_find$obj_bc_write_ptr entry (ptr, fixed bin (24), ptr, fixed bin (35)); 2 52 2 53 dcl dc_find$obj_delete entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 2 54 dcl dc_find$obj_delete_priv entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 2 55 dcl dc_find$obj_delete_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 2 56 dcl dc_find$obj_delete_priv_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 2 57 dcl dc_find$obj_delete_ptr entry (ptr, ptr, fixed bin (35)); 2 58 2 59 dcl dc_find$obj_existence_ptr entry (ptr, ptr, fixed bin (35)); 2 60 2 61 dcl dc_find$obj_for_audit entry (char (168), char (32), ptr, fixed bin (35)); 2 62 2 63 dcl dc_find$obj_initiate entry (char (168), char (32), ptr, fixed bin (35)); 2 64 dcl dc_find$obj_initiate_for_linker_dp entry (ptr, char (32), ptr, fixed bin (35)); 2 65 dcl dc_find$obj_initiate_raw entry (char (168), char (32), ptr, fixed bin (35)); 2 66 2 67 dcl dc_find$obj_linkage_ring_ptr entry (ptr, fixed bin (35)); 2 68 2 69 dcl dc_find$obj_modes_ptr entry (ptr, bit (36) aligned, bit (36) aligned, (3) fixed bin (3), fixed bin (35)); 2 70 2 71 dcl dc_find$obj_reclassify entry (char (168), char (32), ptr, ptr, fixed bin (35)); 2 72 2 73 dcl dc_find$obj_status_attributes_read entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 2 74 2 75 dcl dc_find$obj_status_read entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 2 76 dcl dc_find$obj_status_read_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 2 77 dcl dc_find$obj_status_read_priv entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 2 78 dcl dc_find$obj_status_read_priv_ptr entry (ptr, ptr, fixed bin (35)); 2 79 dcl dc_find$obj_status_read_priv_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 2 80 dcl dc_find$obj_status_read_raw_uid entry ((0:15) bit (36) aligned, char (168), char (32), ptr, fixed bin (35)); 2 81 dcl dc_find$obj_status_read_ptr entry (ptr, ptr, fixed bin (35)); 2 82 2 83 dcl dc_find$obj_status_write entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 2 84 dcl dc_find$obj_status_write_priv entry (char (168), char (32), fixed bin (1), fixed bin (18) uns, ptr, fixed bin (35)); 2 85 dcl dc_find$obj_status_write_priv_ptr entry (ptr, fixed bin (18) uns, ptr, fixed bin (35)); 2 86 dcl dc_find$obj_status_write_ptr entry (ptr, fixed bin (18) uns, ptr, fixed bin (35)); 2 87 2 88 dcl dc_find$obj_terminate entry (char (168), char (32), fixed bin (1), ptr, fixed bin (35)); 2 89 dcl dc_find$obj_terminate_ptr entry (ptr, ptr, fixed bin (35)); 2 90 2 91 dcl dc_find$obj_truncate entry (char (168), char (32), ptr, fixed bin (35)); 2 92 dcl dc_find$obj_truncate_ptr entry (ptr, ptr, fixed bin (35)); 2 93 dcl dc_find$obj_truncate_raw_ptr entry (ptr, ptr, fixed bin (35)); 2 94 2 95 dcl dc_find$obj_volume_retrieve entry (char (168), char (32), ptr, ptr, fixed bin (35)); 2 96 2 97 dcl dc_find$seg_fault entry (ptr, ptr, fixed bin (35)); 2 98 2 99 /* END include file dc_find_dcls.incl.pl1 */ 192 193 /* BEGIN INCLUDE FILE ... dir_entry.incl.pl1 ...last modified August 1974 for nss */ 3 2 3 3 3 4 /* Template for an entry. Length = 38 words */ 3 5 3 6 dcl ep ptr; 3 7 3 8 dcl 1 entry based (ep) aligned, 3 9 3 10 (2 efrp bit (18), /* forward rel ptr to next entry */ 3 11 2 ebrp bit (18)) unaligned, /* backward rel ptr to previous entry */ 3 12 3 13 2 type bit (18) unaligned, /* type of object = dir entry */ 3 14 2 size fixed bin (17) unaligned, /* size of dir entry */ 3 15 3 16 2 uid bit (36), /* unique id of entry */ 3 17 3 18 2 dtem bit (36), /* date-time entry modified */ 3 19 3 20 (2 bs bit (1), /* branch switch = 1 if branch */ 3 21 2 pad0 bit (17), 3 22 2 nnames fixed bin (17), /* number of names for this entry */ 3 23 3 24 2 name_frp bit (18), /* rel pointer to start of name list */ 3 25 2 name_brp bit (18), /* rel pointer to end of name list */ 3 26 3 27 2 author, /* user who created branch */ 3 28 3 pers_rp bit (18), /* name of user who created branch */ 3 29 3 proj_rp bit (18), /* project of user who created branch */ 3 30 3 31 3 tag char (1), /* tag of user who created branch */ 3 32 3 pad1 char (3), 3 33 3 34 2 primary_name bit (504), /* first name on name list */ 3 35 3 36 2 dtd bit (36), /* date time dumped */ 3 37 3 38 2 pad2 bit (36), 3 39 3 40 3 41 /* the declarations below are for branch only */ 3 42 3 43 3 44 2 pvid bit (36), /* physical volume id */ 3 45 3 46 2 vtocx fixed bin (17), /* vtoc entry index */ 3 47 2 pad3 bit (18), 3 48 3 49 2 dirsw bit (1), /* = 1 if this is a directory branch */ 3 50 2 oosw bit (1), /* out of service switch on = 1 */ 3 51 2 per_process_sw bit (1), /* indicates segment is per process */ 3 52 2 copysw bit (1), /* = 1 make copy of segment whenever initiated */ 3 53 2 safety_sw bit (1), /* if 1 then entry cannot be deleted */ 3 54 2 multiple_class bit (1), /* segment has multiple security classes */ 3 55 2 audit_flag bit (1), /* segment must be audited for security */ 3 56 2 security_oosw bit (1), /* security out of service switch */ 3 57 2 entrypt_sw bit (1), /* 1 if call limiter is to be enabled */ 3 58 2 master_dir bit (1), /* TRUE for master directory */ 3 59 2 tpd bit (1), /* TRUE if this segment is never to go on the PD */ 3 60 2 pad4 bit (11), 3 61 2 entrypt_bound bit (14)) unaligned, /* call limiter */ 3 62 3 63 2 access_class bit (72) aligned, /* security attributes : level and category */ 3 64 3 65 (2 ring_brackets (3) bit (3), /* ring brackets on segment */ 3 66 2 ex_ring_brackets (3) bit (3), /* extended ring brackets */ 3 67 2 acle_count fixed bin (17), /* number of entries on ACL */ 3 68 3 69 2 acl_frp bit (18), /* rel ptr to start of ACL */ 3 70 2 acl_brp bit (18), /* rel ptr to end of ACL */ 3 71 3 72 2 bc_author, /* user who last set the bit count */ 3 73 3 pers_rp bit (18), /* name of user who set the bit count */ 3 74 3 proj_rp bit (18), /* project of user who set the bit count */ 3 75 3 76 3 tag char (1), /* tag of user who set the bit count */ 3 77 3 pad5 bit (2), 3 78 2 bc fixed bin (24)) unaligned, /* bit count for segs, msf indicator for dirs */ 3 79 3 80 2 sons_lvid bit (36), /* logical volume id for immediat inf non dir seg */ 3 81 3 82 2 pad6 bit (36), 3 83 3 84 2 checksum bit (36), /* checksum from dtd */ 3 85 3 86 2 owner bit (36); /* uid of containing directory */ 3 87 3 88 /* END INCLUDE FILE ... dir_entry.incl.pl1 ... */ 193 194 /* BEGIN INCLUDE FILE ... dir_header.incl.pl1 */ 4 2 /* Modified 8/74 for NSS */ 4 3 /* Modified 8/76 to add version number and hash table rel pointer for variable hash table sizes */ 4 4 /* Modified 3/82 BIM for change pclock */ 4 5 /* format: style3 */ 4 6 4 7 /* Template for the directory header. Length = 64 words. */ 4 8 4 9 dcl dp ptr; 4 10 4 11 dcl 1 dir based (dp) aligned, 4 12 4 13 2 modify bit (36), /* Process ID of last modifier */ 4 14 2 type bit (18) unaligned, /* type of object = dir header */ 4 15 2 size fixed bin (17) unaligned, /* size of header in words */ 4 16 2 dtc (3), /* date-time checked by salvager array */ 4 17 3 date bit (36), /* the date */ 4 18 3 error bit (36), /* what errors were discovered */ 4 19 4 20 2 uid bit (36), /* uid of the directory - copied from branch */ 4 21 4 22 2 pvid bit (36), /* phys vol id of the dir - copied from branch */ 4 23 4 24 2 sons_lvid bit (36), /* log vol id for inf non dir seg - copied from branch */ 4 25 4 26 2 access_class bit (72), /* security attributes of dir - copied from branch */ 4 27 4 28 (2 vtocx fixed bin (17), /* vtoc entry index of the dir - copied from branch */ 4 29 2 version_number fixed bin (17), /* version number of header */ 4 30 4 31 2 entryfrp bit (18), /* rel ptr to beginning of entry list */ 4 32 2 pad2 bit (18), 4 33 4 34 2 entrybrp bit (18), /* rel ptr to end of entry list */ 4 35 2 pad3 bit (18), 4 36 4 37 2 pers_frp bit (18), /* rel ptr to start of person name list */ 4 38 2 proj_frp bit (18), /* rel ptr to start of project name list */ 4 39 4 40 2 pers_brp bit (18), /* rel ptr to end of person name list */ 4 41 2 proj_brp bit (18), /* rel ptr to end of project name list */ 4 42 4 43 2 seg_count fixed bin (17), /* number of non-directory branches */ 4 44 2 dir_count fixed bin (17), /* number of directory branches */ 4 45 4 46 2 lcount fixed bin (17), /* number of links */ 4 47 2 acle_total fixed bin (17), /* total number of ACL entries in directory */ 4 48 4 49 2 arearp bit (18), /* relative pointer to beginning of allocation area */ 4 50 2 per_process_sw bit (1), /* indicates dir contains per process segments */ 4 51 2 master_dir bit (1), /* TRUE if this is a master dir */ 4 52 2 force_rpv bit (1), /* TRUE if segs must be on RPV */ 4 53 2 rehashing bit (1), /* TRUE if hash table is being constructed */ 4 54 2 pad4 bit (14), 4 55 4 56 2 iacl_count (0:7), 4 57 3 seg fixed bin (17), /* number of initial acl entries for segs */ 4 58 3 dir fixed bin (17), /* number of initial acl entries for dir */ 4 59 4 60 2 iacl (0:7), /* pointer to initial ACLs for each ring */ 4 61 3 seg_frp bit (18), /* rel ptr to start of initial ACL for segs */ 4 62 3 seg_brp bit (18), /* rel ptr to end of initial ACL for segs */ 4 63 4 64 3 dir_frp bit (18), /* rel ptr to start of initial for dirs */ 4 65 3 dir_brp bit (18), /* rel ptr to end of initial ACL for dirs */ 4 66 4 67 2 htsize fixed bin (17), /* size of hash table */ 4 68 2 hash_table_rp bit (18), /* rel ptr to start of hash table */ 4 69 4 70 2 htused fixed bin (17), /* no. of used places in hash table */ 4 71 2 pad6 fixed bin (17), 4 72 4 73 2 tree_depth fixed bin (17), /* number of levels from root of this dir */ 4 74 2 pad7 bit (18)) unaligned, 4 75 4 76 2 dts bit (36), /* date-time directory last salvaged */ 4 77 4 78 2 master_dir_uid bit (36), /* uid of superior master dir */ 4 79 2 change_pclock fixed bin (35), /* up one each call to sum$dirmod */ 4 80 2 pad8 (11) bit (36), /* pad to make it a 64 word header */ 4 81 2 checksum bit (36), /* checksummed from uid on */ 4 82 2 owner bit (36); /* uid of parent dir */ 4 83 4 84 dcl version_number_2 fixed bin int static options (constant) init (2); 4 85 4 86 /* END INCLUDE FILE ... dir_header.incl.pl1 */ 194 195 /* BEGIN INCLUDE FILE ... dir_name.incl.pl1 ... last modified Nov 1975 for nss */ 5 2 5 3 /* Template for names of branches or links. Length = 14 words. */ 5 4 5 5 dcl np ptr; 5 6 5 7 dcl 1 names based aligned, /* based on ptr(dp,ep->entry.name_frp) */ 5 8 2 fp bit(18) unaligned, /* rel ptr to next name */ 5 9 2 bp bit(18) unaligned, /* rel ptr to prev name */ 5 10 5 11 2 type bit (18) unaligned, /* type = dir name */ 5 12 2 size fixed bin (17) unaligned, /* size of dir name */ 5 13 5 14 2 entry_rp bit(18) unaligned, /* rel ptr to entry */ 5 15 2 ht_index fixed bin(17) unaligned, /* index of hash table entry */ 5 16 5 17 2 hash_thread bit (18) unal, /* relative ptr to next hash entry */ 5 18 2 pad3 bit (18) unal, 5 19 5 20 2 name char(32) aligned, 5 21 5 22 2 checksum bit (36), /* checksum from entry_rp */ 5 23 5 24 2 owner bit (36); /* uid of entry */ 5 25 5 26 5 27 /* END INCLUDE FILE ... dir_name.incl.pl1 */ 195 196 /* 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 */ 196 197 /* BEGIN INCLUDE FILE - - - makeknown_info.incl.pl1 - - - last modified March 1975 by R. Bratt - - - */ 7 2 /* Modified October 1984 for explicit activate flag and to remove 7 3* detectable flag, Keith Loepere. */ 7 4 7 5 dcl makeknown_infop ptr; 7 6 7 7 dcl 1 makeknown_info aligned based (makeknown_infop), 7 8 2 uid bit (36) aligned, 7 9 2 entryp ptr unaligned, 7 10 2 flags unaligned, 7 11 3 dirsw bit (1), 7 12 3 rsw bit (1), 7 13 3 allow_write bit (1), 7 14 3 priv_init bit (1), 7 15 3 audit bit (1), 7 16 3 activate bit (1); /* Use only for directory initiation within directory control */ 7 17 7 18 /* END INCLUDE FILE makeknown_info.incl.pl1 - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 197 198 end set_sons_lvid; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0800.6 set_sons_lvid.pl1 >spec>install>1110>set_sons_lvid.pl1 191 1 01/30/85 1523.9 aste.incl.pl1 >ldd>include>aste.incl.pl1 192 2 05/20/85 0848.1 dc_find_dcls.incl.pl1 >ldd>include>dc_find_dcls.incl.pl1 193 3 04/29/76 1100.6 dir_entry.incl.pl1 >ldd>include>dir_entry.incl.pl1 194 4 05/24/82 1005.0 dir_header.incl.pl1 >ldd>include>dir_header.incl.pl1 195 5 11/02/76 1414.7 dir_name.incl.pl1 >ldd>include>dir_name.incl.pl1 196 6 08/04/88 2054.1 fs_obj_access_codes.incl.pl1 >ldd>include>fs_obj_access_codes.incl.pl1 197 7 01/30/85 1523.9 makeknown_info.incl.pl1 >ldd>include>makeknown_info.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 000001 constant fixed bin(1,0) initial dcl 2-11 set ref 106* 141* FS_OBJ_SONS_LVID_MOD 000000 constant fixed bin(18,0) initial unsigned dcl 6-52 set ref 106* 141* a_code parameter fixed bin(35,0) dcl 30 set ref 14 85 92 186* a_dirname parameter char packed unaligned dcl 31 ref 14 85 92 96 a_ename parameter char packed unaligned dcl 32 ref 14 85 92 98 a_sons_lvid parameter bit(36) packed unaligned dcl 33 ref 14 80 85 87 activate 2(05) based bit(1) level 3 packed packed unaligned dcl 7-7 set ref 126* addr builtin function dcl 78 ref 124 allow_write 2(02) based bit(1) level 3 packed packed unaligned dcl 7-7 set ref 126* aste based structure level 1 dcl 1-11 astep 000204 automatic pointer dcl 1-9 set ref 164* 165 165 baseptr builtin function dcl 78 ref 132 code 000100 automatic fixed bin(35,0) dcl 37 set ref 106* 107 112* 118* 129* 130 130 137* 138 141* 142 149* 172* 186 dc_find$finished 000046 constant entry external dcl 2-33 ref 134 184 dc_find$obj_status_write 000050 constant entry external dcl 2-83 ref 106 141 dir based structure level 1 dcl 4-11 dir_locked 000101 automatic bit(1) dcl 38 set ref 103* 109* 135* 144* 184 dirname 000102 automatic char(168) packed unaligned dcl 39 set ref 96* 106* 141* dirsw 2 based bit(1) level 3 in structure "makeknown_info" packed packed unaligned dcl 7-7 in procedure "set_sons_lvid" set ref 126* dirsw 32 based bit(1) level 2 in structure "entry" packed packed unaligned dcl 3-8 in procedure "set_sons_lvid" ref 111 dp 000210 automatic pointer dcl 4-9 set ref 108* 134* 143* 177* 184* ename 000154 automatic char(32) packed unaligned dcl 40 set ref 98* 106* 141* entry based structure level 1 dcl 3-8 entryp 1 based pointer level 2 packed packed unaligned dcl 7-7 set ref 128* ep 000206 automatic pointer dcl 3-6 set ref 106* 108 111 116 122 128 141* 143 156 159 160 161 error_table_$argerr 000010 external static fixed bin(35,0) dcl 57 ref 172 error_table_$bad_ring_brackets 000012 external static fixed bin(35,0) dcl 58 ref 118 error_table_$fulldir 000014 external static fixed bin(35,0) dcl 59 ref 149 error_table_$notadir 000016 external static fixed bin(35,0) dcl 60 ref 112 error_table_$segknown 000020 external static fixed bin(35,0) dcl 61 ref 130 ex_ring_brackets 35(09) based bit(3) array level 2 packed packed unaligned dcl 3-8 ref 116 fixed builtin function dcl 78 ref 116 flags 2 based structure level 2 packed packed unaligned dcl 7-7 force_rpv 24(20) based bit(1) level 2 packed packed unaligned dcl 4-11 set ref 175* ignore 000164 automatic fixed bin(35,0) dcl 41 set ref 182* level$get 000024 constant entry external dcl 66 ref 100 lock$dir_lock_write 000026 constant entry external dcl 67 ref 137 lock$dir_unlock 000030 constant entry external dcl 68 ref 180 lock$lock_ast 000032 constant entry external dcl 69 ref 163 lock$unlock_ast 000034 constant entry external dcl 70 ref 166 makeknown_ 000036 constant entry external dcl 71 ref 129 makeknown_info based structure level 1 dcl 7-7 set ref 125* makeknown_infop 000212 automatic pointer dcl 7-5 set ref 124* 125 126 126 126 127 128 129* makeunknown_ 000040 constant entry external dcl 72 ref 182 master_dir 32(09) based bit(1) level 2 in structure "entry" packed packed unaligned dcl 3-8 in procedure "set_sons_lvid" set ref 156* master_dir 24(19) based bit(1) level 2 in structure "dir" packed packed unaligned dcl 4-11 in procedure "set_sons_lvid" set ref 154* master_dir 5(22) based bit(1) level 2 in structure "aste" packed packed unaligned dcl 1-11 in procedure "set_sons_lvid" set ref 165* master_dir_uid 61 based bit(36) level 2 dcl 4-11 set ref 155* my_makeknown_info 000165 automatic structure level 1 dcl 42 set ref 124 null builtin function dcl 78 ref 104 165 179 pdir 000170 automatic bit(1) dcl 43 set ref 82* 89* 94* 148 153 162 ptr builtin function dcl 78 ref 108 143 pvid 30 based bit(36) level 2 packed packed unaligned dcl 3-8 ref 160 pvt$root_lvid 000022 external static bit(36) dcl 62 ref 171 ring 000171 automatic fixed bin(17,0) dcl 44 set ref 100* 116 search_ast$check 000042 constant entry external dcl 73 ref 164 seg_count 22 based fixed bin(17,0) level 2 packed packed unaligned dcl 4-11 ref 148 seg_pvid 000172 automatic bit(36) dcl 45 set ref 160* 164* seg_uid 000173 automatic bit(36) dcl 46 set ref 122* 127 155 164* seg_vtocx 000174 automatic fixed bin(17,0) dcl 47 set ref 161* 164* segnum 000175 automatic fixed bin(17,0) dcl 48 set ref 129* 132 182* segptr 000176 automatic pointer dcl 49 set ref 104* 132* 137* 147 148 154 155 158 171 175 179 180* set_lvid 000200 automatic bit(1) packed unaligned dcl 50 set ref 81* 88* 95* 146 sons_lvid 000201 automatic bit(36) packed unaligned dcl 51 in procedure "set_sons_lvid" set ref 80* 87* 147 158 159 sons_lvid 41 based bit(36) level 2 in structure "entry" dcl 3-8 in procedure "set_sons_lvid" set ref 159* sons_lvid 12 based bit(36) level 2 in structure "dir" dcl 4-11 in procedure "set_sons_lvid" set ref 147 158* 171 sum$dirmod 000044 constant entry external dcl 74 ref 177 target_locked 000202 automatic bit(1) dcl 52 set ref 102* 139* 180 uid based bit(36) level 2 in structure "makeknown_info" dcl 7-7 in procedure "set_sons_lvid" set ref 127* uid 2 based bit(36) level 2 in structure "entry" dcl 3-8 in procedure "set_sons_lvid" ref 122 unspec builtin function dcl 78 set ref 125* vtocx 31 based fixed bin(17,0) level 2 packed packed unaligned dcl 3-8 ref 161 write_lock 000203 automatic bit(36) initial dcl 53 set ref 53* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DC_FIND_CHASE internal static fixed bin(1,0) initial dcl 2-10 DC_FIND_NO_UNLOCK_DIR internal static bit(1) initial dcl 2-12 DC_FIND_UNLOCK_DIR internal static bit(1) initial dcl 2-13 FS_OBJ_ACL_MOD internal static fixed bin(18,0) initial unsigned dcl 6-34 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_BC_MOD internal static fixed bin(18,0) initial unsigned dcl 6-32 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_RENAME internal static fixed bin(18,0) initial unsigned dcl 6-37 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_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 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 asta based bit(432) array dcl 1-86 aste_part based structure level 1 dcl 1-89 dc_find$dir_for_append 000000 constant entry external dcl 2-15 dc_find$dir_for_append_raw 000000 constant entry external dcl 2-16 dc_find$dir_for_retrieve_append 000000 constant entry external dcl 2-17 dc_find$dir_initiate 000000 constant entry external dcl 2-19 dc_find$dir_move_quota 000000 constant entry external dcl 2-21 dc_find$dir_read 000000 constant entry external dcl 2-23 dc_find$dir_read_priv 000000 constant entry external dcl 2-24 dc_find$dir_reclassify 000000 constant entry external dcl 2-26 dc_find$dir_salvage 000000 constant entry external dcl 2-28 dc_find$dir_write 000000 constant entry external dcl 2-30 dc_find$dir_write_priv 000000 constant entry external dcl 2-31 dc_find$link_target 000000 constant entry external dcl 2-35 dc_find$mdir_set_quota_uid 000000 constant entry external dcl 2-37 dc_find$obj_access_write 000000 constant entry external dcl 2-39 dc_find$obj_access_write_priv 000000 constant entry external dcl 2-40 dc_find$obj_attributes_read 000000 constant entry external dcl 2-42 dc_find$obj_attributes_read_ptr 000000 constant entry external dcl 2-43 dc_find$obj_attributes_write 000000 constant entry external dcl 2-45 dc_find$obj_attributes_write_ptr 000000 constant entry external dcl 2-46 dc_find$obj_bc_delta_write 000000 constant entry external dcl 2-48 dc_find$obj_bc_delta_write_ptr 000000 constant entry external dcl 2-49 dc_find$obj_bc_write 000000 constant entry external dcl 2-50 dc_find$obj_bc_write_ptr 000000 constant entry external dcl 2-51 dc_find$obj_delete 000000 constant entry external dcl 2-53 dc_find$obj_delete_priv 000000 constant entry external dcl 2-54 dc_find$obj_delete_priv_uid 000000 constant entry external dcl 2-56 dc_find$obj_delete_ptr 000000 constant entry external dcl 2-57 dc_find$obj_delete_uid 000000 constant entry external dcl 2-55 dc_find$obj_existence_ptr 000000 constant entry external dcl 2-59 dc_find$obj_for_audit 000000 constant entry external dcl 2-61 dc_find$obj_initiate 000000 constant entry external dcl 2-63 dc_find$obj_initiate_for_linker_dp 000000 constant entry external dcl 2-64 dc_find$obj_initiate_raw 000000 constant entry external dcl 2-65 dc_find$obj_linkage_ring_ptr 000000 constant entry external dcl 2-67 dc_find$obj_modes_ptr 000000 constant entry external dcl 2-69 dc_find$obj_reclassify 000000 constant entry external dcl 2-71 dc_find$obj_status_attributes_read 000000 constant entry external dcl 2-73 dc_find$obj_status_read 000000 constant entry external dcl 2-75 dc_find$obj_status_read_priv 000000 constant entry external dcl 2-77 dc_find$obj_status_read_priv_ptr 000000 constant entry external dcl 2-78 dc_find$obj_status_read_priv_uid 000000 constant entry external dcl 2-79 dc_find$obj_status_read_ptr 000000 constant entry external dcl 2-81 dc_find$obj_status_read_raw_uid 000000 constant entry external dcl 2-80 dc_find$obj_status_read_uid 000000 constant entry external dcl 2-76 dc_find$obj_status_write_priv 000000 constant entry external dcl 2-84 dc_find$obj_status_write_priv_ptr 000000 constant entry external dcl 2-85 dc_find$obj_status_write_ptr 000000 constant entry external dcl 2-86 dc_find$obj_terminate 000000 constant entry external dcl 2-88 dc_find$obj_terminate_ptr 000000 constant entry external dcl 2-89 dc_find$obj_truncate 000000 constant entry external dcl 2-91 dc_find$obj_truncate_ptr 000000 constant entry external dcl 2-92 dc_find$obj_truncate_raw_ptr 000000 constant entry external dcl 2-93 dc_find$obj_volume_retrieve 000000 constant entry external dcl 2-95 dc_find$seg_fault 000000 constant entry external dcl 2-97 names based structure level 1 dcl 5-7 np automatic pointer dcl 5-5 seg_aste based structure level 1 dcl 1-96 version_number_2 internal static fixed bin(17,0) initial dcl 4-84 NAMES DECLARED BY EXPLICIT CONTEXT. finale 000527 constant label dcl 179 ref 107 113 119 130 138 142 150 173 join 000152 constant label dcl 96 ref 83 90 set_pdir_sons_lvid 000063 constant entry external dcl 85 set_rpv 000124 constant entry external dcl 92 set_sons_lvid 000024 constant entry external dcl 14 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1034 1106 605 1044 Length 1436 605 52 314 226 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME set_sons_lvid 165 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME set_sons_lvid 000100 code set_sons_lvid 000101 dir_locked set_sons_lvid 000102 dirname set_sons_lvid 000154 ename set_sons_lvid 000164 ignore set_sons_lvid 000165 my_makeknown_info set_sons_lvid 000170 pdir set_sons_lvid 000171 ring set_sons_lvid 000172 seg_pvid set_sons_lvid 000173 seg_uid set_sons_lvid 000174 seg_vtocx set_sons_lvid 000175 segnum set_sons_lvid 000176 segptr set_sons_lvid 000200 set_lvid set_sons_lvid 000201 sons_lvid set_sons_lvid 000202 target_locked set_sons_lvid 000203 write_lock set_sons_lvid 000204 astep set_sons_lvid 000206 ep set_sons_lvid 000210 dp set_sons_lvid 000212 makeknown_infop set_sons_lvid THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dc_find$finished dc_find$obj_status_write level$get lock$dir_lock_write lock$dir_unlock lock$lock_ast lock$unlock_ast makeknown_ makeunknown_ search_ast$check sum$dirmod THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$argerr error_table_$bad_ring_brackets error_table_$fulldir error_table_$notadir error_table_$segknown pvt$root_lvid LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 53 000013 14 000017 80 000050 81 000055 82 000057 83 000060 85 000061 87 000107 88 000114 89 000116 90 000117 92 000120 94 000150 95 000151 96 000152 98 000160 100 000165 102 000174 103 000175 104 000176 106 000200 107 000221 108 000223 109 000225 111 000227 112 000233 113 000236 116 000237 118 000244 119 000247 122 000250 124 000252 125 000254 126 000257 127 000265 128 000267 129 000270 130 000306 132 000313 134 000317 135 000332 137 000333 138 000344 139 000346 141 000350 142 000371 143 000373 144 000375 146 000377 147 000401 148 000405 149 000414 150 000417 153 000420 154 000422 155 000424 156 000426 158 000431 159 000433 160 000435 161 000437 162 000442 163 000444 164 000451 165 000471 166 000500 169 000505 171 000506 172 000513 173 000515 175 000516 177 000520 179 000527 180 000533 182 000544 184 000565 186 000602 187 000604 ----------------------------------------------------------- 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