COMPILATION LISTING OF SEGMENT library_info Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/15/84 0855.6 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 /* Modified: January, 1984 by Jim Lippard to align structures passed to lib_args_ */ 11 12 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 13 14 15 library_info: li: procedure 16 options (rename ((alloc_, smart_alloc_))); 17 18 dcl /* automatic variables */ 19 Parea ptr, /* ptr to an MSA. */ 20 Ptree ptr, /* ptr to a tree of status nodes. */ 21 1 arg_struc_temp like arg_struc, /* storage for argument structure. */ 22 code fixed bin(35), /* a status code. */ 23 1 fcb_temp like fcb, /* storage for file control block. */ 24 progress fixed bin init (0), /* integer indicating progress of our search. */ 25 /* 0 = search beginning. */ 26 /* 1 = finding library descriptor. */ 27 /* 2 = seeing if library_info command supported */ 28 /* by this descriptor. */ 29 /* 3 = getting default library names if user */ 30 /* specified none. */ 31 /* 4 = getting default search names if user */ 32 /* specified none. */ 33 /* 5 = allocating the root nodes of the tree. */ 34 /* 6 = searching each library root for entries */ 35 /* identified by the search names. */ 36 /* 7 = no entries matching search names found. */ 37 state char(16); /* an error temporary char string. */ 38 39 dcl /* based variables */ 40 area area based (Parea); /* an MSA (multi-segment area). */ 41 42 dcl (addr, divide, length, min, null, reverse, substr, verify) 43 builtin; 44 dcl cleanup condition; 45 46 dcl /* Entries Called */ 47 com_err_ entry options(variable), 48 condition_ entry (char(*) aligned, entry), 49 cu_$arg_count entry returns (fixed bin), 50 cu_$arg_list_ptr entry returns(ptr), 51 get_line_length_$switch entry (ptr, fixed bin(35)) returns (fixed bin), 52 get_system_msa_ entry (ptr, fixed bin, ptr), 53 lib_args_ entry (1 aligned like LIBRARY, 1 aligned like STARNAME, 1 aligned like STARNAME, bit(72) aligned, 54 bit(36) aligned, ptr, fixed bin(35)), 55 lib_descriptor_$info entry (char(168) varying, ptr, ptr, ptr, bit(72) aligned, bit(36) aligned, 56 ptr, ptr, fixed bin, fixed bin(35)), 57 lib_error_list_ entry (char(32) varying, ptr, char(32) varying), 58 lib_output_node_list_$info entry (ptr, ptr, ptr, ptr, char(45) varying, bit(72) aligned, ptr), 59 lib_sort_tree_$make_name_list 60 entry (ptr, ptr, ptr, ptr, fixed bin(35)), 61 lib_sort_tree_$name_list entry (ptr, ptr), 62 msa_manager_$area_handler entry, 63 release_system_msa_ entry (ptr, fixed bin(35)); 64 65 dcl /* static variables */ 66 True bit(1) aligned int static options(constant) init ("1"b), 67 error_table_$noarg fixed bin(35) ext static, 68 iox_$user_output ptr ext static; 69 70 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 71 72 73 Parg_struc = addr(arg_struc_temp); /* Initialize argument processing structure. */ 74 arg_struc.version = Varg_struc_1; 75 arg_struc.program = "library_info"; 76 arg_struc.Parg_list = cu_$arg_list_ptr(); 77 arg_struc.Iarg_list = 1; 78 arg_struc.Larg_list = cu_$arg_count(); 79 arg_struc.put_error = com_err_; 80 arg_struc.Srequirements_allowed = ""b; 81 arg_struc.Srequirements_initial = ""b; 82 arg_struc.Scontrol_allowed = ""b; 83 arg_struc.Scontrol_initial = ""b; 84 85 Sreq_allowed.access_class = True; /* Mark Sreq bits- show which output args allowed*/ 86 Sreq_allowed.acl = True; 87 Sreq_allowed.aim = True; 88 Sreq_allowed.author = True; 89 Sreq_allowed.bit_count = True; 90 Sreq_allowed.bit_count_author = True; 91 Sreq_allowed.compiler_name = True; 92 Sreq_allowed.compiler_options = True; 93 Sreq_allowed.compiler_version = True; 94 Sreq_allowed.copy = True; 95 Sreq_allowed.current_length = True; 96 Sreq_allowed.dtc = True; 97 Sreq_allowed.dtd = True; 98 Sreq_allowed.dtem = True; 99 Sreq_allowed.dtm = True; 100 Sreq_allowed.dtu = True; 101 Sreq_allowed.entry_bound = True; 102 Sreq_allowed.iacl = True; 103 Sreq_allowed.kids = True; 104 Sreq_allowed.kids_error = True; 105 Sreq_allowed.level = True; 106 Sreq_allowed.link_target = True; 107 Sreq_allowed.lvid = True; 108 Sreq_allowed.matching_names = True; 109 Sreq_allowed.max_length = True; 110 Sreq_allowed.mode = True; 111 Sreq_allowed.msf_indicator = True; 112 Sreq_allowed.names = True; 113 Sreq_allowed.new_line = True; 114 Sreq_allowed.not_ascii = True; 115 Sreq_allowed.object_info = True; 116 Sreq_allowed.offset = True; 117 Sreq_allowed.pathname = True; 118 Sreq_allowed.primary_name = True; 119 Sreq_allowed.pvid = True; 120 Sreq_allowed.quota = True; 121 Sreq_allowed.rb = True; 122 Sreq_allowed.records_used = True; 123 Sreq_allowed.root_search_proc = True; 124 Sreq_allowed.safety = True; 125 Sreq_allowed.type = True; 126 Sreq_allowed.unique_id = True; 127 Sreq_allowed.user = True; 128 129 130 131 Sreq_init.root_search_proc = True; /* Mark bits on by default. */ 132 Sreq_init.level = True; 133 Sreq_init.new_line = True; 134 Sreq_init.user = True; 135 136 Sc_allowed.acl = True; /* Mark Sc bits- show which ctl args allowed. */ 137 Sc_allowed.all_status = True; 138 Sc_allowed.chase = True; 139 Sc_allowed.check_archive = True; 140 Sc_allowed.check_ascii = True; 141 Sc_allowed.components = True; 142 Sc_allowed.container = True; 143 Sc_allowed.default = True; 144 Sc_allowed.iacl = True; 145 Sc_allowed.object_info = True; 146 Sc_allowed.quota = True; 147 Sc_allowed.retain = True; 148 Sc_allowed.descriptor = True; 149 Sc_allowed.library = True; 150 Sc_allowed.search_names = True; 151 152 call lib_args_ (LIBRARY, STARNAME, EXCLUDE, Srequirements, Scontrol, addr(arg_struc), code); 153 if code ^= 0 then return; /* call subr to process all arguments. */ 154 155 if Srequirements & ^arg_struc.Srequirements_initial then; 156 else Sc.default = True; /* give user default output if he didn't care. */ 157 158 if ^Sc.default & ^S.names & ^S.matching_names & ^S.primary_name then do; 159 S.primary_name = True; 160 S.matching_names = True; 161 end; /* output first, matching names by default. */ 162 163 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 164 /* */ 165 /* 1) initialize library pgm's file control block. */ 166 /* 2) establish cleanup on unit. */ 167 /* 3) get ptr to system multi-segment area, and establish area on unit. */ 168 /* 4) search and build status tree for library entries being sought. */ 169 /* 5) make a list of found entries, and sort the list. */ 170 /* */ 171 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 172 173 Pfcb = addr(fcb_temp); 174 fcb.version = Vfcb_1; 175 fcb.ioname = "user_output"; /* print output on user's terminal. */ 176 fcb.Piocb = iox_$user_output; 177 fcb.Eend_page = no_end_page; 178 fcb.page_length = 131071; /* use large page size to avoid footings. */ 179 fcb.page_text_length = 131071; 180 fcb.page_no = 1; 181 fcb.line_length = get_line_length_$switch (fcb.Piocb, code); 182 if code ^= 0 then fcb.line_length = 79; 183 fcb.line_no = 2; /* prevent new_line from being suppressed before */ 184 /* the first entry. They're suppressed for 1st */ 185 /* line of a page. */ 186 187 Parea = null; /* initialize values used by cleanup on unit. */ 188 on cleanup call janitor; 189 190 call condition_ ("area", msa_manager_$area_handler); 191 /* let msa_manager_ handle area conditions. */ 192 call get_system_msa_ (addr(Parea), 0, (null)); /* get MSA ptr. */ 193 194 Plibrary = addr(LIBRARY); 195 Pstarname = addr(STARNAME); 196 Pexclude = addr(EXCLUDE); 197 call lib_descriptor_$info (arg_struc.descriptor, Plibrary, Pstarname, Pexclude, 198 Srequirements, Scontrol, Parea, Ptree, progress, code); 199 /* get a tree of status nodes reflecting the */ 200 if code ^= 0 then go to BAD_SEARCH; /* library entries which match the star name. */ 201 202 allocate index_list in (area), /* allocate space for sorting the status nodes. */ 203 name_list in (area), 204 node_list in (area); 205 index_list.I = 0; /* initialize count of entries in each list. */ 206 name_list.I = 0; 207 node_list.I = 0; 208 call lib_sort_tree_$make_name_list (Ptree, Pname_list, Pindex_list, Pnode_list, code); 209 if code ^= 0 then go to NO_MATCH; /* put the outputable nodes into a name list. */ 210 call lib_sort_tree_$name_list (Pname_list, Pindex_list); 211 /* sort the name list. */ 212 213 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 214 /* */ 215 /* Generate the info from the sorted list of status entries. */ 216 /* */ 217 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 218 219 call lib_output_node_list_$info (Pfcb, Pnode_list, Pname_list, Pindex_list, arg_struc.footing, 220 (72)"1"b, addr(starname)); 221 /* print the nodes, including names which */ 222 /* match the user's search names. */ 223 DETACH: call janitor; /* clean up. */ 224 return; 225 226 janitor: procedure; /* cleanup procedure. */ 227 if Parea ^= null then /* cleanup by releasing any system MSA. */ 228 call release_system_msa_ (addr(Parea), code); 229 230 end janitor; 231 232 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 233 234 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 235 236 237 BAD_SEARCH: 238 progress = min (progress, 7); 239 go to BAD_S (progress); 240 BAD_S(0): call com_err_ (code, arg_struc.program, "^/ While calling lib_descriptor_$info."); 241 go to DETACH; 242 BAD_S(1): call com_err_ (code, arg_struc.program, "^/ While finding the '^R^a^B' library descriptor.", 243 arg_struc.descriptor); 244 go to DETACH; 245 BAD_S(2): call com_err_ (code, arg_struc.program, 246 "^/ Library descriptor '^R^a^B' does not implement^/ the ^a command.", 247 arg_struc.descriptor, arg_struc.program); 248 go to DETACH; 249 BAD_S(3): state = "library"; 250 go to NO_DEFAULT_NAMES; 251 BAD_S(4): state = "search"; 252 NO_DEFAULT_NAMES: 253 call com_err_ (code, arg_struc.program, 254 "^/ No ^a names were specified, and the '^R^a^B' 255 library descriptor does not define any default ^a names.", state, arg_struc.descriptor, state); 256 go to DETACH; 257 BAD_S(5): call com_err_ (code, arg_struc.program, "^/ While allocating the root nodes of the library tree."); 258 go to DETACH; 259 BAD_S(6): 260 NO_MATCH: call com_err_ (code, arg_struc.program, 261 "^/ While searching for entries in the library.^/ Descriptor:^-^5x^a", 262 arg_struc.descriptor); 263 call lib_error_list_ ("library name", Plibrary, arg_struc.program); 264 call lib_error_list_ ("search name", Pstarname, arg_struc.program); 265 go to DETACH; 266 BAD_S(7): call com_err_ (code, arg_struc.program, "^/ No libraries matching the library name(s) could be found. 267 Descriptor:^-^5x^a", arg_struc.descriptor); 268 call lib_error_list_ ("library name", Plibrary, arg_struc.program); 269 go to DETACH; 270 271 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 272 273 274 no_end_page: procedure; /* This is a null end-of-page handling proc. */ 275 276 fcb.page_no = fcb.page_no + 1; 277 fcb.line_no = 2; 278 279 end no_end_page; 280 281 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 282 1 1 /* START OF lib_arg_struc_.incl.pl1 * * * * * * * * * * * * * * * * */ 1 2 1 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 4 /* */ 1 5 /* NAME: lib_arg_struc_.incl.pl1 */ 1 6 /* */ 1 7 /* This include segment defines structures used by the library maintenance tools */ 1 8 /* to process their input arguments. These structures are the arguments to the */ 1 9 /* lib_args_ subroutine. */ 1 10 /* */ 1 11 /* STATUS */ 1 12 /* */ 1 13 /* 0) Created on: May 25, 1976 by Gary C. Dixon */ 1 14 /* 1) Modified: October 24, 1983 by Jim Lippard to add page_length */ 1 15 /* */ 1 16 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 17 1 18 2 1 /* START OF: lib_args_.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* N__a_m_e: lib_args_.incl.pl1 */ 2 6 /* */ 2 7 /* This include segment defines structures for the arrays of library names and search*/ 2 8 /* names used by library descriptor commands. This segment, lib_Svalid_req_.incl.pl1, */ 2 9 /* and lib_Scontrol_.incl.pl1 define the complete set of structures required as input */ 2 10 /* to the lib_descriptor_ subroutine. */ 2 11 /* */ 2 12 /* S__t_a_t_u_s */ 2 13 /* */ 2 14 /* 0) Created on: March 1, 1975 by A. J. Scherer */ 2 15 /* 1) Modified on: April 8, 1975 by G. C. Dixon */ 2 16 /* 2) Modified on: May 13, 1976 by G. C. Dixon */ 2 17 /* 3) Modified on: January 17, 1984 by Jim Lippard to make structures aligned. */ 2 18 /* */ 2 19 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 20 2 21 2 22 dcl 1 LIBRARY aligned, /* a structure containing names of libraries to */ 2 23 /* be searched. */ 2 24 2 N fixed bin, /* attribute: number of library names in array. */ 2 25 2 group (100), /* attribute: array of library names */ 2 26 3 V char(32) unal, /* attribute: a library name (value). */ 2 27 3 C fixed bin(35); /* attribute: code from check_star_name_ for */ 2 28 /* this library name. */ 2 29 2 30 dcl 1 STARNAME aligned, /* a structure containing names of library entries*/ 2 31 /* being searched for. */ 2 32 2 N fixed bin, /* attribute: number of starnames in array. */ 2 33 2 group (1000), /* attribute: array of starnames */ 2 34 3 V char(32) unal, /* attribute: a starname (value). */ 2 35 3 C fixed bin(35); /* attribute: code from check_star_name_ for */ 2 36 /* this starname. */ 2 37 2 38 dcl 1 EXCLUDE aligned like STARNAME; 2 39 /* structure containing names of library entries */ 2 40 /* to be excluded from a search. */ 2 41 2 42 /* END OF: lib_args_.incl.pl1 * * * * * * * * * * * * * * * * */ 1 19 1 20 1 21 dcl Parg_struc ptr; /* ptr to the structure described below. */ 1 22 1 23 dcl 1 arg_struc structure based (Parg_struc), 1 24 2 version fixed bin, /* version number (currently 1). */ 1 25 2 program char(32) varying, /* name of calling program. */ 1 26 2 Parg_list ptr, /* ptr to calling program's argument list. */ 1 27 2 Iarg_list fixed bin, /* first arg of calling program's argument list */ 1 28 /* to be processed. */ 1 29 2 Larg_list fixed bin, /* total number of arguments in calling pgm's list*/ 1 30 2 put_error entry options(variable), 1 31 /* program to call to output an error. */ 1 32 2 Srequirements_allowed bit(72) aligned, /* bits on if control argument associated with */ 1 33 /* that bit is acceptable to the program. */ 1 34 2 Scontrol_allowed bit(36) aligned, /* bits on if control operation associated with */ 1 35 /* that bit is acceptable to the program. */ 1 36 2 Srequirements_initial bit(72) aligned, /* bits on indicating initial settings for */ 1 37 /* Srequirements. */ 1 38 2 Scontrol_initial bit(36) aligned, /* bits on indicating initial settings for */ 1 39 /* Scontrol. */ 1 40 2 descriptor char(168) varying, /* name of library descriptor to be used. */ 1 41 2 footing char(45) varying, /* footing to be used on output pages. */ 1 42 2 heading char(120) varying, /* heading to be used on 1st output page. */ 1 43 2 into_path char(168) varying, /* path into which library entries to be fetched. */ 1 44 2 output_file char(168) varying, /* path of output file to be written. */ 1 45 2 page_length fixed bin, /* length of output page */ 1 46 2 time fixed bin; /* grace period (in days) for library_cleanup. */ 1 47 dcl 1 Sreq_allowed aligned like Svalid_req based (addr(arg_struc.Srequirements_allowed)); 1 48 /* allowed requirements switches. */ 1 49 dcl 1 Sreq_init aligned like Svalid_req based (addr(arg_struc.Srequirements_initial)); 1 50 /* initial values for requirements switches. */ 1 51 dcl 1 Sc_allowed aligned like Sc based (addr(arg_struc.Scontrol_allowed)); 1 52 /* allowed control switches. */ 1 53 dcl 1 Sc_init aligned like Sc based (addr(arg_struc.Scontrol_initial)); 1 54 /* initial values for control switches. */ 1 55 dcl Varg_struc_1 fixed bin int static init (1); 1 56 1 57 /* END OF lib_arg_struc_.incl.pl1 * * * * * * * * * * * * * * * * */ 283 284 3 1 /* START OF: lib_based_args_.incl.pl1 * * * * * * * * * * * * * * * * */ 3 2 3 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 4 /* */ 3 5 /* N__a_m_e: lib_based_args_.incl.pl1 */ 3 6 /* */ 3 7 /* This include segment defines structures for the arrays of library names and search*/ 3 8 /* names used by library descriptor commands. This segment, lib_Svalid_req_.incl.pl1, */ 3 9 /* and lib_Scontrol_.incl.pl1 define the complete set of structures required as input */ 3 10 /* to the lib_descriptor_ subroutine. */ 3 11 /* */ 3 12 /* S__t_a_t_u_s */ 3 13 /* */ 3 14 /* 0) Created on: March 1, 1975 by A. J. Scherer */ 3 15 /* 1) Modified on: April 8, 1975 by G. C. Dixon */ 3 16 /* 2) Modified on: May 13, 1976 by G. C. Dixon */ 3 17 /* 3) Modified on: November 2, 1983 by Jim Lippard to align structures */ 3 18 /* */ 3 19 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 20 3 21 3 22 dcl 1 library aligned based (Plibrary), 3 23 /* a structure containing names of libraries to */ 3 24 /* be searched. */ 3 25 2 N fixed bin, /* attribute: number of library names in array. */ 3 26 2 group (0 refer (library.N)), /* attribute: array of library names */ 3 27 3 V char(32) unal, /* attribute: a library name (value). */ 3 28 3 C fixed bin(35); /* attribute: code from check_star_name_ for */ 3 29 dcl Plibrary ptr; /* ptr to: library structure. */ 3 30 /* this library name. */ 3 31 3 32 dcl 1 starname aligned based (Pstarname), 3 33 /* a structure containing names of library entries*/ 3 34 /* being searched for. */ 3 35 2 N fixed bin, /* attribute: number of starnames in array. */ 3 36 2 group (0 refer (starname.N)), /* attribute: array of starnames */ 3 37 3 V char(32) unal, /* attribute: a starname (value). */ 3 38 3 C fixed bin(35); /* attribute: code from check_star_name_ for */ 3 39 /* this starname. */ 3 40 dcl Pstarname ptr; /* ptr to: starname structure. */ 3 41 3 42 dcl 1 exclude aligned based (Pexclude), 3 43 /* a structure containing names of library entries*/ 3 44 /* being excluded from the search. */ 3 45 2 N fixed bin, /* attribute: number of excludes in array. */ 3 46 2 group (0 refer (exclude.N)), /* attribute: array of excludes */ 3 47 3 V char(32) unal, /* attribute: an exclude (value). */ 3 48 3 C fixed bin(35); /* attribute: code from check_star_name_ for */ 3 49 /* this exclude. */ 3 50 dcl Pexclude ptr; /* ptr to: exclude structure. */ 3 51 3 52 /* END OF: lib_based_args_.incl.pl1 * * * * * * * * * * * * * * * * */ 285 286 4 1 /* START OF: lib_fcb_.incl.pl1 * * * * * * * * * * * * * * * * */ 4 2 4 3 dcl 1 fcb based (Pfcb), /* file control block for our output file. */ 4 4 2 version fixed bin, /* version number = 1; */ 4 5 2 ioname char(32), /* ioname of our I/O control block. */ 4 6 2 Piocb ptr, /* ptr to our I/O control block. */ 4 7 2 Eend_page entry variable, /* entry which handles endpage condition. */ 4 8 2 page_length fixed bin, /* number of lines per page. */ 4 9 2 page_text_length fixed bin, /* number of usable lines per page, excluding */ 4 10 /* footer lines generated by end-of-page */ 4 11 /* handler. */ 4 12 2 page_no fixed bin, /* current page number. */ 4 13 2 line_length fixed bin, /* number of characters per line. */ 4 14 2 line_no fixed bin; /* number of lines on current page. */ 4 15 dcl Pfcb ptr; /* ptr to file control block. */ 4 16 dcl Vfcb_1 fixed bin int static options(constant) init (1); 4 17 4 18 /* END OF: lib_fcb_.incl.pl1 * * * * * * * * * * * * * * * * */ 287 288 5 1 /* START OF: lib_list_.incl.pl1 * * * * * * * * * * * * * * * * */ 5 2 5 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 4 /* */ 5 5 /* Name: lib_list_.incl.pl1 */ 5 6 /* */ 5 7 /* This segment declares the list structures which are used by the library */ 5 8 /* maintenance tools. The structures are filled in by lib_sort_tree_, and referenced by */ 5 9 /* lib_output_node_list_, having been allocated originally by one of the maintenance */ 5 10 /* commands (library_map, library_info, library_print, etc). */ 5 11 /* */ 5 12 /* Status */ 5 13 /* */ 5 14 /* 0) Created on: May 30, 1976 by G. C. Dixon */ 5 15 /* */ 5 16 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 17 5 18 5 19 dcl 1 index_list aligned based (Pindex_list), 5 20 /* an index list. */ 5 21 2 N fixed bin(24), /* max length of list. */ 5 22 2 I fixed bin(24), /* current length of list. */ 5 23 2 e (max_entries refer (index_list.N)) 5 24 fixed bin(24), /* the list. */ 5 25 1 name_list aligned based (Pname_list), 5 26 /* a name list. */ 5 27 2 N fixed bin(24), /* max length of list. */ 5 28 2 I fixed bin(24), /* current length of list. */ 5 29 2 e (max_entries refer (name_list.N)) ptr unal, /* list of ptrs to node names. */ 5 30 1 node_list aligned based (Pnode_list), 5 31 /* a list of ptrs to nodes to be output. */ 5 32 2 N fixed bin(24), /* max length of list. */ 5 33 2 I fixed bin(24), /* current length of list. */ 5 34 2 e (max_entries refer (node_list.N)) ptr unal, /* list of ptrs to nodes. */ 5 35 1 page_list aligned based (Ppage_list), 5 36 /* list of page numbers on which each node was */ 5 37 /* output. */ 5 38 2 N fixed bin(24), /* max length of list. */ 5 39 2 I fixed bin(24), /* current length of list. */ 5 40 2 e (max_entries refer (page_list.N)) 5 41 fixed bin(24), /* list of page numbers. */ 5 42 max_entries fixed bin int static init (32000), 5 43 Pindex_list ptr, /* ptr to index_list structure. */ 5 44 Pname_list ptr, /* ptr to name_list structure. */ 5 45 Pnode_list ptr, /* ptr to node_list structure. */ 5 46 Ppage_list ptr; /* ptr to page_list structure. */ 5 47 5 48 /* END OF: lib_list_.incl.pl1 * * * * * * * * * * * * * * * * */ 289 290 6 1 /* START OF: lib_node_.incl.pl1 * * * * * * * * * * * * * * * * */ 6 2 6 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 4 /* */ 6 5 /* N__a_m_e: lib_node_.incl.pl1 */ 6 6 /* */ 6 7 /* This include segment defines the structures which form the tree of status nodes */ 6 8 /* created by lib_get_tree_. Each node of the tree is associated with a directory */ 6 9 /* entry or an archive component. The node lists the attributes of that entry, which is */ 6 10 /* called the node target. */ 6 11 /* */ 6 12 /* S__t_a_t_u_s */ 6 13 /* */ 6 14 /* 0) Created: May, 1973 by G. C. Dixon */ 6 15 /* 1) Modified: Aug, 1973 by G. C. Dixon - standardize descriptor format. */ 6 16 /* 2) Modified: Oct, 1973 by G. C. Dixon - add object_info_ descriptor. */ 6 17 /* 3) Modified: Apr, 1975 by G. C. Dixon - add ACL and IACL descriptors. */ 6 18 /* 4) Modified: Oct, 1975 by G. C. Dixon - additional status info added. */ 6 19 /* */ 6 20 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 21 6 22 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 23 /* */ 6 24 /* The structure of each node whose target is a link is shown below. The */ 6 25 /* structure of nodes for other types of targets is shown on the next page. Note that */ 6 26 /* both types of nodes are the same length. */ 6 27 /* */ 6 28 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 29 6 30 dcl 1 link_node based (Pnode), /* node of a status tree. */ 6 31 2 Pparent ptr, /* ptr to: parent node (previous tree level). */ 6 32 2 PD ptr, /* ptr to: descriptor chain attached to node. */ 6 33 2 Svalid bit(72) aligned, /* switches: node data which is valid. */ 6 34 2 Sreq bit(72) aligned, /* switches: node data which is req'd for output.*/ 6 35 /* (= node.Svalid & Srequirements) */ 6 36 2 T fixed bin(35), /* attribute: type of node target. */ 6 37 2 switches unaligned, 6 38 3 Smode bit(3), /* attribute: user's access mode to entry. */ 6 39 3 Sprev_mode bit(3), /* attribute: user's previous access mode to the */ 6 40 /* entry before lib_access_mode_$set. */ 6 41 3 pad bit(22), 6 42 3 Smaster_dir bit(1), /* attribute: master directory */ 6 43 3 Stpd bit(1), /* attribute: transparent (never on) paging device*/ 6 44 3 Ssafety bit(1), /* attribute: safety switch. */ 6 45 3 Saim_security_oos bit(1), /* attribute: security out-of-service. */ 6 46 3 Saim_audit bit(1), /* attribute: AIM audit use of node target. */ 6 47 3 Saim_multiple_class bit(1), /* attribute: AIM multiple class segment. */ 6 48 3 Sterminal_account bit(1), /* attribute: if on, records charged against quota*/ 6 49 /* in this directory; if off, records*/ 6 50 /* charged against 1st superior */ 6 51 /* directory with switch on. */ 6 52 3 Sterminal_account_dir bit(1), /* attribute: like Sterminal_account for dir quota*/ 6 53 3 Scopy bit(1), /* attribute: copy-on-write switch. */ 6 54 2 unique_id bit(36), /* attribute: unique identifier. */ 6 55 2 author char(32) varying, /* attribute: author of node target. */ 6 56 2 dtem bit(36), /* attribute: date-time attributes modified. */ 6 57 2 dtd bit(36), /* attribute: date-time node target dumped. */ 6 58 6 59 /* From here on, link_nodes differ from nodes */ 6 60 /* for other types of node targets. */ 6 61 2 link_target char(168) varying; /* attribute: target pathname of the link. */ 6 62 6 63 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 64 /* */ 6 65 /* The structure of nodes for other types of node targets is shown below. */ 6 66 /* */ 6 67 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 68 6 69 dcl 1 node based (Pnode), /* node of a status tree. */ 6 70 2 Pparent ptr, /* ptr to: parent node (previous tree level). */ 6 71 2 PD ptr, /* ptr to: descriptor chain attached to node. */ 6 72 2 Svalid bit(72) aligned, /* switches: node data which is valid. */ 6 73 2 Sreq bit(72) aligned, /* switches: node data which is req'd for output.*/ 6 74 /* (= node.Svalid & Srequirements) */ 6 75 2 T fixed bin(35), /* attribute: type of node target. */ 6 76 2 switches unaligned, 6 77 3 Smode bit(3), /* attribute: user's access mode to entry. */ 6 78 3 Sprev_mode bit(3), /* attribute: user's previous access mode to the */ 6 79 /* entry before lib_access_mode_$set. */ 6 80 3 pad bit(22), 6 81 3 Smaster_dir bit(1), /* attribute: master directory */ 6 82 3 Stpd bit(1), /* attribute: transparent (never on) paging device*/ 6 83 3 Ssafety bit(1), /* attribute: safety switch. */ 6 84 3 Saim_security_oos bit(1), /* attribute: security out-of-service. */ 6 85 3 Saim_audit bit(1), /* attribute: AIM audit use of node target. */ 6 86 3 Saim_multiple_class bit(1), /* attribute: AIM multiple class segment. */ 6 87 3 Sterminal_account bit(1), /* attribute: if on, records charged against quota*/ 6 88 /* in this directory; if off, records*/ 6 89 /* charged against 1st superior */ 6 90 /* directory with switch on. */ 6 91 3 Sterminal_account_dir bit(1), /* attribute: like Sterminal_account for dir quota*/ 6 92 3 Scopy bit(1), /* attribute: copy-on-write switch. */ 6 93 2 unique_id bit(36), /* attribute: unique identifier. */ 6 94 2 author char(32) varying, /* attribute: author of node target. */ 6 95 2 dtem bit(36), /* attribute: date-time attributes modified. */ 6 96 2 dtd bit(36), /* attribute: date-time node target dumped. */ 6 97 6 98 /* From here on, other nodes differ from */ 6 99 /* link_nodes. */ 6 100 2 dtm bit(36), /* attribute: date-time node target modified. */ 6 101 2 dtu bit(36), /* attribute: date-time node target last used. */ 6 102 2 rb (3) fixed bin(3), /* attribute: ring brackets. */ 6 103 2 pad1 (1) fixed bin, 6 104 2 access_class bit(72) aligned, /* attribute: access class assoc. with entry. */ 6 105 2 records_used fixed bin(35), /* attribute: storage used, in records. */ 6 106 2 current_length fixed bin(35), /* attribute: length, in records. */ 6 107 2 max_length fixed bin(35), /* attribute: maximum length. */ 6 108 2 msf_indicator fixed bin(35), /* attribute: msf indicator. */ 6 109 2 bit_count fixed bin(35), /* attribute: bit count. */ 6 110 2 bit_count_author char(32) varying, /* attribute: bit count/msf indicator author. */ 6 111 2 offset fixed bin(35), /* attribute: offset, in words, of an archive */ 6 112 /* component from the base of archive.*/ 6 113 2 entry_bound fixed bin(35), /* attribute: entry limit for calls to a gate. */ 6 114 2 segment, /* group: segment quota information for a dir. */ 6 115 3 quota fixed bin(35), /* attribute: quota set. */ 6 116 3 quota_used fixed bin(35), /* attribute: quota used. */ 6 117 3 trp fixed bin(71), /* attribute: time-record product. */ 6 118 3 dttrp bit(36), /* attribute: date-time time-record product last */ 6 119 /* updated. */ 6 120 3 Ninf_quota fixed bin(35), /* attribute: number of immediately-inferior */ 6 121 /* directories with Sterminal_account */ 6 122 /* on. */ 6 123 2 directory, /* group: directory quota information for a dir. */ 6 124 3 quota fixed bin(35), /* attribute: quota set. */ 6 125 3 quota_used fixed bin(35), /* attribute: quota used. */ 6 126 3 trp fixed bin(71), /* attribute: time-record product. */ 6 127 3 dttrp bit(36), /* attribute: date-time time-record product last */ 6 128 /* updated. */ 6 129 3 Ninf_quota fixed bin(35), /* attribute: number of immediately-inferior */ 6 130 /* directories with Sterminal_account */ 6 131 /* on. */ 6 132 2 pvid bit(36), /* attribute: physical volume id. */ 6 133 2 lvid bit(36), /* attribute: logical volume id. */ 6 134 2 pad2 (5) fixed bin, 6 135 Pnode ptr; /* ptr to: a tree node. */ 6 136 6 137 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 138 /* */ 6 139 /* The descriptors attached to each node of the tree describe the variable-sized */ 6 140 /* attributes of the directory entry or archive component associated with the node. */ 6 141 /* Each descriptor must begin with a header shown in structure D below. The following */ 6 142 /* descriptors are the only ones that have been defined. */ 6 143 /* */ 6 144 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 145 6 146 dcl 1 D based (PD), /* Header common to all descriptors. */ 6 147 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 148 2 version fixed bin(17) unal, /* descriptor: version number. */ 6 149 2 T fixed bin, /* descriptor: type of descriptor. */ 6 150 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 151 PD ptr; /* ptr to: a descriptor. */ 6 152 6 153 dcl 1 Dacl based (PDacl), /* a segment ACL descriptor. */ 6 154 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 155 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 156 2 T fixed bin, /* descriptor: type = Tacl. */ 6 157 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 158 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 6 159 2 N fixed bin, /* attribute: number of ACL entries. */ 6 160 2 acls (Nacls refer (Dacl.N)), /* attribute: ACL entries. */ 6 161 3 access_name char(32), /* attribute: access name associated with entry. */ 6 162 3 modes bit(36), /* attribute: access modes associated with entry. */ 6 163 3 zero_pad bit(36), 6 164 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 6 165 Nacls fixed bin, /* temporary: number of entries in ACL descriptor.*/ 6 166 PDacl ptr, /* ptr to: a segment ACL descriptor. */ 6 167 Vacl_1 fixed bin int static options(constant) init (1), 6 168 /* version: version of ACL descriptor. */ 6 169 Tacl fixed bin int static options(constant) init (7); 6 170 /* attribute: type of a segment ACL descriptor. */ 6 171 6 172 dcl 1 Ddir_acl based (PDdir_acl), /* a directory ACL descriptor. */ 6 173 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 174 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 175 2 T fixed bin, /* descriptor: type = Tdir_acl. */ 6 176 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 177 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 6 178 2 N fixed bin, /* attribute: number of ACL entries. */ 6 179 2 acls (Ndir_acls refer (Ddir_acl.N)), /* attribute: ACL entries. */ 6 180 3 access_name char(32), /* attribute: access name associated with entry. */ 6 181 3 dir_modes bit(36), /* attribute: access modes associated with entry. */ 6 182 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 6 183 Ndir_acls fixed bin, /* temporary: number of entries in ACL descriptor.*/ 6 184 PDdir_acl ptr, /* ptr to: a directory ACL descriptor. */ 6 185 Vdir_acl_1 fixed bin int static options(constant) init (1), 6 186 /* version: version of directory ACL descriptor.*/ 6 187 Tdir_acl fixed bin int static options(constant) init (8); 6 188 /* attribute: type of a directory ACL descriptor. */ 6 189 6 190 dcl 1 Ddir_iacl based (PDdir_iacl), /* a directory IACL descriptor. */ 6 191 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 192 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 193 2 T fixed bin, /* descriptor: type = Tdir_iacl. */ 6 194 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 195 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 6 196 2 N fixed bin, /* attribute: number of ACL entries. */ 6 197 2 Iring (0:7) fixed bin, /* attribute: index of first ACLe in each ring. */ 6 198 2 Nring (0:7) fixed bin, /* attribute: number of ACL entries in each ring. */ 6 199 2 acls (Ndir_iacls refer (Ddir_iacl.N)), /* attribute: ACL entries. */ 6 200 3 access_name char(32), /* attribute: access name associated with entry. */ 6 201 3 dir_modes bit(36), /* attribute: access modes associated with entry. */ 6 202 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 6 203 Ndir_iacls fixed bin, /* temporary: number of entries in IACL descriptor*/ 6 204 PDdir_iacl ptr, /* ptr to: a directory IACL descriptor. */ 6 205 Vdir_iacl_1 fixed bin int static options(constant) init (1), 6 206 /* version: version of dir IACL descriptor. */ 6 207 Tdir_iacl fixed bin int static options(constant) init (9); 6 208 6 209 dcl 1 Diacl based (PDiacl), /* a segment IACL descriptor. */ 6 210 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 211 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 212 2 T fixed bin, /* descriptor: type = Tiacl. */ 6 213 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 214 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 6 215 2 N fixed bin, /* attribute: number of ACL entries. */ 6 216 2 Iring (0:7) fixed bin, /* attribute: index of first ACLe in each ring. */ 6 217 2 Nring (0:7) fixed bin, /* attribute: number of ACL entries in each ring. */ 6 218 2 acls (Niacls refer (Diacl.N)), /* attribute: ACL entries. */ 6 219 3 access_name char(32), /* attribute: access name associated with entry. */ 6 220 3 modes bit(36), /* attribute: access modes associated with entry. */ 6 221 3 zero_pad bit(36), 6 222 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 6 223 Niacls fixed bin, /* temporary: number of entries in IACL descriptor*/ 6 224 PDiacl ptr, /* ptr to: a segment IACL descriptor. */ 6 225 Viacl_1 fixed bin int static options(constant) init (1), 6 226 /* version: version of segment IACL descriptor. */ 6 227 Tiacl fixed bin int static options(constant) init (10); 6 228 /* attribute: type of a segment IACL descriptor. */ 6 229 6 230 dcl 1 Dnames based (PDnames), /* name attribute descriptor. */ 6 231 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 232 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 233 2 T fixed bin, /* descriptor: type = Tnames. */ 6 234 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 235 2 N fixed bin, /* attribute: number of names. */ 6 236 2 names (Nnames refer (Dnames.N)) 6 237 char(32), /* attribute: names. */ 6 238 Nnames fixed bin, /* temporary: number of names in name descriptor. */ 6 239 PDnames ptr, /* ptr to: a name descriptor. */ 6 240 Vnames_1 fixed bin int static options(constant) init (1), 6 241 /* version: version of names descriptor. */ 6 242 Tnames fixed bin int static options(constant) init (1); 6 243 /* attribute: type of a name descriptor. */ 6 244 6 245 dcl 1 Dnodes based (PDnodes), /* descriptor for array of immediately-inferior */ 6 246 /* nodes. */ 6 247 2 header, 6 248 3 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 249 3 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 250 3 T fixed bin, /* descriptor: type = Tnodes. */ 6 251 3 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 252 3 C fixed bin(35), /* attribute: error code from filling array. */ 6 253 3 N fixed bin, /* attribute: number of nodes in node array. */ 6 254 2 nodes (Nnodes refer (Dnodes.N)) /* attribute: node array */ 6 255 like node, 6 256 Nnodes fixed bin, /* temporary: number of nodes in node array. */ 6 257 PDnodes ptr, /* ptr to: a node array descriptor. */ 6 258 Vnodes_1 fixed bin int static options(constant) init (1), 6 259 /* version: version of nodes descriptor. */ 6 260 Tnodes fixed bin int static options(constant) init (2); 6 261 /* attribute: type of a node descriptor. */ 6 262 6 263 dcl 1 Dobj based (PDobj), /* an object_info_ descriptor. */ 6 264 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 265 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 266 2 T fixed bin, /* descriptor: type = Tobj. */ 6 267 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 268 2 info, 6 269 3 Otext fixed bin(35), /* attribute: offset of text. */ 6 270 3 Odefinitions fixed bin(35), /* attribute: offset of definitions. */ 6 271 3 Olink fixed bin(35), /* attribute: offset of linkage section. */ 6 272 3 Ostatic fixed bin(35), /* attribute: offset of static section. */ 6 273 3 Osymbols fixed bin(35), /* attribute: offset of symbol section. */ 6 274 3 Obreaks fixed bin(35), /* attribute: offset of break map. */ 6 275 3 Ltext fixed bin(35), /* attribute: length of text, in words. */ 6 276 3 Ldefinitions fixed bin(35), /* attribute: length of definitions, in words. */ 6 277 3 Llink fixed bin(35), /* attribute: length of linkage section, in words.*/ 6 278 3 Lstatic fixed bin(35), /* attribute: length of static section, in words. */ 6 279 3 Lsymbols fixed bin(35), /* attribute: length of symbol section, in words. */ 6 280 3 Lbreaks fixed bin(35), /* attribute: length of break map, in words. */ 6 281 3 format aligned, 6 282 4 old_format bit(1) unal, /* attribute: segment is in old format. */ 6 283 4 bound bit(1) unal, /* attribute: a bound segment. */ 6 284 4 relocatable bit(1) unal, /* attribute: object is relocatable. */ 6 285 4 procedure bit(1) unal, /* attribute: executable procedure. */ 6 286 4 standard bit(1) unal, /* attribute: standard object segment. */ 6 287 4 gate bit(1) unal, /* attribute: gate procedure. */ 6 288 4 separate_static bit(1) unal, /* attribute: proc has separate static section. */ 6 289 4 links_in_text bit(1) unal, /* attribute: proc has links in text section. */ 6 290 4 pad bit(28) unal, 6 291 3 entry_bound fixed bin(35), /* attribute: entry point bound for a gate. */ 6 292 3 Otext_links fixed bin(35), /* attribute: offset of first link in text section*/ 6 293 3 compiler char(8), /* attribute: compiler of this object segment. */ 6 294 3 compile_time fixed bin(71), /* attribute: date/time of compilation. */ 6 295 3 userid char(32), /* attribute: id of user who compiled segment. */ 6 296 3 cversion, /* attribite: compiler version string. */ 6 297 4 O fixed bin(17) unal, /* offset */ 6 298 4 L fixed bin(17) unal, /* length */ 6 299 3 comment, /* attribute: compiler-generated comment. */ 6 300 4 O fixed bin(17) unal, /* offset */ 6 301 4 L fixed bin(17) unal, /* length */ 6 302 3 Osource fixed bin(35), /* attribute: offset of source map. */ 6 303 2 cversion char(64) varying, /* attribute: compiler version number */ 6 304 2 comment char(64) varying, /* attribute: compiler's comment info */ 6 305 PDobj ptr, /* ptr to: an object_info_ descriptor. */ 6 306 Vobj_1 fixed bin int static options(constant) init (1), 6 307 /* version: version of object_info_ descriptor. */ 6 308 Tobj fixed bin int static options(constant) init (3); 6 309 /* attribute: type of a node descriptor. */ 6 310 6 311 dcl 1 Dsearch_proc based (PDsearch_proc), 6 312 /* library root search_proc attribute descriptor. */ 6 313 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 314 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 315 2 T fixed bin, /* descriptor: type = Tsearch_proc. */ 6 316 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 317 2 search_proc char(65) varying, /* attribute: name of library search procedure. */ 6 318 PDsearch_proc ptr, /* ptr to: a search_proc info descriptor. */ 6 319 Vsearch_proc_1 fixed bin int static options(constant) init (1), 6 320 /* version: version of search_proc info descrip.*/ 6 321 Tsearch_proc fixed bin int static options(constant) init (5); 6 322 /* attribute: type of a search_proc descriptor. */ 6 323 6 324 dcl 1 Duser based (PDuser), /* user attribute descriptor. */ 6 325 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 6 326 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 6 327 2 T fixed bin, /* descriptor: type = Tuser. */ 6 328 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 6 329 2 label char(18), /* attribute: label to be used for this field in */ 6 330 /* output. */ 6 331 2 L fixed bin, /* attribute: length of user info string. */ 6 332 2 info char(Luser refer (Duser.L)), 6 333 /* attribute: user info string. */ 6 334 Luser fixed bin, /* temporary: length of user info string. */ 6 335 PDuser ptr, /* ptr to: a user info descriptor. */ 6 336 Vuser_1 fixed bin int static options(constant) init (1), 6 337 /* version: version of user info descriptor. */ 6 338 Tuser fixed bin int static options(constant) init (6); 6 339 /* attribute: type of a user descriptor. */ 6 340 7 1 /* START OF: lib_Svalid_req_.incl.pl1 * * * * * * * * * * * * * * * * */ 7 2 7 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 4 /* */ 7 5 /* N__a_m_e: lib_Svalid_req_.incl.pl1 */ 7 6 /* */ 7 7 /* This include segment defines the switches which request/validate the fields */ 7 8 /* in a status node produced by lib_get_tree_. This segment, lib_Scontrol_.incl.pl1, */ 7 9 /* and lib_args_.incl.pl1 define the complete set of structures required as input to */ 7 10 /* the lib_descriptor_ subroutine. This subroutine is called by all of the library */ 7 11 /* descriptor commands to obtain information about entries in a library. */ 7 12 /* */ 7 13 /* If a switch is on, then the corresponding information in the node is valid, or */ 7 14 /* is requested for output. */ 7 15 /* */ 7 16 /* S__t_a_t_u_s */ 7 17 /* */ 7 18 /* 0) Created on: April 8, 1975 by G. C. Dixon */ 7 19 /* */ 7 20 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 21 7 22 7 23 dcl 1 Svalid_req aligned based, 7 24 2 primary_name bit(1) unal, /* switch: output includes primary name */ 7 25 2 matching_names bit(1) unal, /* switch: output includes matching names */ 7 26 2 names bit(1) unal, /* switch: output includes all names */ 7 27 7 28 2 pathname bit(1) unal, /* switch: output include pathname of node target */ 7 29 2 kids bit(1) unal, /* switch: children nodes (inferior) exist */ 7 30 2 kids_error bit(1) unal, /* switch: error occurred obtaining kid's info */ 7 31 7 32 2 type bit(1) unal, /* switch: type */ 7 33 2 mode bit(1) unal, /* switch: user's access mode to node target */ 7 34 2 safety bit(1) unal, /* switch: safety switch setting */ 7 35 7 36 2 aim bit(1) unal, /* switch: Access Isolation Mechanism switches */ 7 37 2 copy bit(1) unal, /* switch: copy-on-write switch setting */ 7 38 2 unique_id bit(1) unal, /* switch: unique identifier */ 7 39 7 40 2 author bit(1) unal, /* switch: author of node target */ 7 41 2 dtem bit(1) unal, /* switch: date attributes modified */ 7 42 2 dtd bit(1) unal, /* switch: date dumped */ 7 43 7 44 2 link_target bit(1) unal, /* switch: target pathname of link node */ 7 45 2 dtm bit(1) unal, /* switch: date modified */ 7 46 2 dtu bit(1) unal, /* switch: date used */ 7 47 7 48 2 rb bit(1) unal, /* switch: ring brackets */ 7 49 2 access_class bit(1) unal, /* switch: AIM access class */ 7 50 2 records_used bit(1) unal, /* switch: records used */ 7 51 7 52 2 current_length bit(1) unal, /* switch: current length */ 7 53 2 max_length bit(1) unal, /* switch: maximum length */ 7 54 2 msf_indicator bit(1) unal, /* switch: count of MSF components. */ 7 55 7 56 2 bit_count bit(1) unal, /* switch: bit count */ 7 57 2 bit_count_author bit(1) unal, /* switch: bit count author. */ 7 58 2 offset bit(1) unal, /* switch: offset from segment base */ 7 59 7 60 2 entry_bound bit(1) unal, /* switch: call limit for gate node */ 7 61 2 lvid bit(1) unal, /* switch: logical volume id */ 7 62 2 pvid bit(1) unal, /* switch: physical volume id */ 7 63 7 64 2 quota bit(1) unal, /* switch: directory quota information */ 7 65 2 acl bit(1) unal, /* switch: ACL */ 7 66 2 iacl bit(1) unal, /* switch: initial ACLs */ 7 67 7 68 2 dtc bit(1) unal, /* switch: date-time compiled */ 7 69 2 compiler_name bit(1) unal, /* switch: name of compiler */ 7 70 2 compiler_version bit(1) unal, /* switch: compiler version number */ 7 71 7 72 2 compiler_options bit(1) unal, /* switch: compiler options info */ 7 73 2 object_info bit(1) unal, /* switch: other object segment info */ 7 74 2 not_ascii bit(1) unal, /* switch: contents is not printable */ 7 75 7 76 2 user bit(1) unal, /* switch: user-defined node information */ 7 77 2 root_search_proc bit(1) unal, /* switch: root search procedure info. */ 7 78 2 prev_mode bit(1) unal, /* switch: user's previous acces mode set. */ 7 79 2 pad bit(26) unal, 7 80 7 81 2 delete bit(1) unal, /* switch: on (for lcln) if node to be deleted. */ 7 82 7 83 2 cross_ref bit(1) unal, /* switch: cross-reference all names */ 7 84 2 level bit(1) unal, /* switch: output status tree level number */ 7 85 2 new_line bit(1) unal; /* switch: output begins with newline char */ 7 86 7 87 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 88 /* */ 7 89 /* The following declarations define a series of bit strings to be overlaid by */ 7 90 /* structures which are exactly like Svalid_req above, except for their level 1 name. */ 7 91 /* These structures are used throughout the library descriptor commands and subroutines. */ 7 92 /* */ 7 93 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 94 7 95 7 96 dcl 1 S aligned based (addr(Srequirements)) like Svalid_req, 7 97 Srequirements bit(72) aligned; 7 98 7 99 /* END OF: lib_Svalid_req_.incl.pl1 * * * * * * * * * * * * * * * * */ 6 341 6 342 6 343 dcl 1 Svalid aligned based(addr(node.Svalid)) like Svalid_req, 6 344 1 Sreq aligned based(addr(node.Sreq)) like Svalid_req; 6 345 8 1 /* START OF: lib_Scontrol_.incl.pl1 * * * * * * * * * * * * * * * * */ 8 2 8 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 4 /* */ 8 5 /* N__a_m_e: lib_Scontrol_.incl.pl1 */ 8 6 /* */ 8 7 /* This include segment defines the control switches used by library descriptor */ 8 8 /* commands and subroutines. These switches control the amount of information which is */ 8 9 /* attached to each node of the tree by lib_get_tree_. This segment, lib_args_.incl.pl1, */ 8 10 /* and lib_Svalid_req_.incl.pl1 define the complete set of structures required as input */ 8 11 /* to the lib_descriptor_ subroutine. */ 8 12 /* */ 8 13 /* S__t_a_t_u_s */ 8 14 /* */ 8 15 /* 0) Created on: April 8, 1975 by G. C. Dixon */ 8 16 /* 1) Modified on: October 24, 1983 by Jim Lippard to add page_length, first_match */ 8 17 /* */ 8 18 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 19 8 20 dcl 1 Sc aligned based (addr (Scontrol)), 8 21 2 acl bit(1) unal, /* switch: return ACL for library entries. */ 8 22 2 all_status bit(1) unal, /* switch: return extra status information. */ 8 23 2 chase bit(1) unal, /* switch: link entries are to be chased. */ 8 24 8 25 2 check_archive bit(1) unal, /* switch: see if contents of entry is archive. */ 8 26 2 check_ascii bit(1) unal, /* switch: see if contents of entry is ascii. */ 8 27 2 components bit(1) unal, /* switch: return info about parent of terminal */ 8 28 /* nodes of the tree, and about all the */ 8 29 /* nodes below the parent. */ 8 30 8 31 2 container bit(1) unal, /* switch: return info about parent of terminal */ 8 32 /* nodes of the tree. */ 8 33 2 default bit(1) unal, /* switch: use default requirement switch settings*/ 8 34 2 iacl bit(1) unal, /* switch: return initial ACLs for library entries*/ 8 35 8 36 2 object_info bit(1) unal, /* switch: return object info for object segments.*/ 8 37 2 quota bit(1) unal, /* switch: return quota information. */ 8 38 2 retain bit(1) unal, /* switch: print information about nodes awaiting */ 8 39 /* deletion. */ 8 40 8 41 2 pad bit(10) unal, 8 42 8 43 2 first_match bit(1) unal, /* switch: stop after first match */ 8 44 2 page_length bit(1) unal, /* switch: page length of output */ 8 45 8 46 2 delete bit(1) unal, /* switch: delete library entries */ 8 47 2 descriptor bit(1) unal, /* switch: library descriptor */ 8 48 2 exclude bit(1) unal, /* switch: exclusion search names. */ 8 49 8 50 2 footing bit(1) unal, /* switch: footing for output pages. */ 8 51 2 heading bit(1) unal, /* switch: heading for 1st output page. */ 8 52 2 into_path bit(1) unal, /* switch: path into which entries are fetched. */ 8 53 8 54 2 library bit(1) unal, /* switch: library names */ 8 55 2 list bit(1) unal, /* switch: list library entries */ 8 56 2 long bit(1) unal, /* switch: long output format required. */ 8 57 8 58 2 output_file bit(1) unal, /* switch: pathname of output file */ 8 59 2 search_names bit(1) unal, /* switch: search names */ 8 60 2 time bit(1) unal, /* switch: grace time for deletion of entries. */ 8 61 Scontrol bit(36) aligned; /* switches: aligned copy of control switches. */ 8 62 8 63 /* END OF: lib_Scontrol_.incl.pl1 * * * * * * * * * * * * * * * * */ 6 346 6 347 6 348 6 349 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 350 /* */ 6 351 /* The following entry type attributes have been defined. Note that the types */ 6 352 /* for segments, archive components, and msf components all have the characteristic */ 6 353 /* that: mod (type, 2) = 1; */ 6 354 /* */ 6 355 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 356 6 357 6 358 dcl (Tlink init (0), 6 359 Tsegment init (1), 6 360 Tdirectory init (2), 6 361 Tmsf init (3), 6 362 Tmsf_comp init (4), 6 363 Tarchive init (5), 6 364 Tarchive_comp init (6)) fixed bin(17) int static options(constant); 6 365 6 366 6 367 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 368 /* */ 6 369 /* The following character string arrays identify each entry type attribute by name. */ 6 370 /* Both brief and long string arrays are provided. */ 6 371 /* */ 6 372 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 373 6 374 dcl node_type (0:6) char(32) varying aligned int static options(constant) init ( 6 375 "link", 6 376 "segment", 6 377 "directory", 6 378 "multisegment file", 6 379 "multi-segment file component", 6 380 "archive", 6 381 "archive component"), 6 382 brief_node_type (0:6) char(12) varying aligned int static options(constant) init ( 6 383 "link", 6 384 "segment", 6 385 "directory", 6 386 "msf", 6 387 "msf comp", 6 388 "archive", 6 389 "arch comp"); 6 390 6 391 6 392 /* END OF: lib_node_.incl.pl1 * * * * * * * * * * * * * * * * */ 291 292 293 294 end library_info; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/15/84 0750.0 library_info.pl1 >special_ldd>on>6588>library_info.pl1 283 1 02/15/84 0754.7 lib_arg_struc_.incl.pl1 >special_ldd>on>6588>lib_arg_struc_.incl.pl1 1-19 2 02/15/84 0754.6 lib_args_.incl.pl1 >special_ldd>on>6588>lib_args_.incl.pl1 285 3 02/15/84 0754.6 lib_based_args_.incl.pl1 >special_ldd>on>6588>lib_based_args_.incl.pl1 287 4 01/05/79 1321.1 lib_fcb_.incl.pl1 >ldd>include>lib_fcb_.incl.pl1 289 5 02/28/77 1409.2 lib_list_.incl.pl1 >ldd>include>lib_list_.incl.pl1 291 6 08/16/79 1752.9 lib_node_.incl.pl1 >ldd>include>lib_node_.incl.pl1 6-341 7 02/28/77 1409.3 lib_Svalid_req_.incl.pl1 >ldd>include>lib_Svalid_req_.incl.pl1 6-346 8 02/15/84 0754.6 lib_Scontrol_.incl.pl1 >special_ldd>on>6588>lib_Scontrol_.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. EXCLUDE 023732 automatic structure level 1 dcl 2-38 set ref 152* 196 Eend_page 14 based entry variable level 2 dcl 4-3 set ref 177* I 1 based fixed bin(24,0) level 2 in structure "node_list" dcl 5-19 in procedure "li" set ref 207* I 1 based fixed bin(24,0) level 2 in structure "index_list" dcl 5-19 in procedure "li" set ref 205* I 1 based fixed bin(24,0) level 2 in structure "name_list" dcl 5-19 in procedure "li" set ref 206* Iarg_list 14 based fixed bin(17,0) level 2 dcl 1-23 set ref 77* LIBRARY 000454 automatic structure level 1 dcl 2-22 set ref 152* 194 Larg_list 15 based fixed bin(17,0) level 2 dcl 1-23 set ref 78* N based fixed bin(24,0) level 2 in structure "index_list" dcl 5-19 in procedure "li" set ref 202* N based fixed bin(24,0) level 2 in structure "node_list" dcl 5-19 in procedure "li" set ref 202* N based fixed bin(24,0) level 2 in structure "name_list" dcl 5-19 in procedure "li" set ref 202* Parea 000100 automatic pointer dcl 18 set ref 187* 192 192 197* 202 202 202 227 227 227 Parg_list 12 based pointer level 2 dcl 1-23 set ref 76* Parg_struc 045404 automatic pointer dcl 1-21 set ref 73* 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 131 132 133 134 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 152 152 155 197 219 240 242 242 245 245 245 252 252 257 259 259 263 264 266 266 268 Pexclude 045412 automatic pointer dcl 3-50 set ref 196* 197* Pfcb 045414 automatic pointer dcl 4-15 set ref 173* 174 175 176 177 178 179 180 181 181 182 183 219* 276 276 277 Pindex_list 045416 automatic pointer dcl 5-19 set ref 202* 205 208* 210* 219* Piocb 12 based pointer level 2 dcl 4-3 set ref 176* 181* Plibrary 045406 automatic pointer dcl 3-29 set ref 194* 197* 263* 268* Pname_list 045420 automatic pointer dcl 5-19 set ref 202* 206 208* 210* 219* Pnode_list 045422 automatic pointer dcl 5-19 set ref 202* 207 208* 219* Pstarname 045410 automatic pointer dcl 3-40 set ref 195* 197* 219 219 264* Ptree 000102 automatic pointer dcl 18 set ref 197* 208* S based structure level 1 dcl 7-96 STARNAME 002261 automatic structure level 1 dcl 2-30 set ref 152* 195 Sc based structure level 1 dcl 8-20 Sc_allowed based structure level 1 dcl 1-51 Scontrol 045426 automatic bit(36) dcl 8-20 set ref 152* 156 158 197* Scontrol_allowed 24 based bit(36) level 2 dcl 1-23 set ref 82* 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 Scontrol_initial 27 based bit(36) level 2 dcl 1-23 set ref 83* Sreq_allowed based structure level 1 dcl 1-47 Sreq_init based structure level 1 dcl 1-49 Srequirements 045424 automatic bit(72) dcl 7-96 set ref 152* 155 158 158 158 159 160 197* Srequirements_allowed 22 based bit(72) level 2 dcl 1-23 set ref 80* 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 Srequirements_initial 25 based bit(72) level 2 dcl 1-23 set ref 81* 131 132 133 134 155 Svalid_req based structure level 1 dcl 7-23 True constant bit(1) initial dcl 65 ref 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 131 132 133 134 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 156 159 160 Varg_struc_1 constant fixed bin(17,0) initial dcl 1-55 ref 74 Vfcb_1 constant fixed bin(17,0) initial dcl 4-16 ref 174 access_class 0(19) based bit(1) level 2 packed unaligned dcl 1-47 set ref 85* acl 0(31) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 86* acl based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "li" set ref 136* addr builtin function dcl 42 ref 73 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 131 132 133 134 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 152 152 156 158 158 158 158 159 160 173 192 192 194 195 196 219 219 227 227 aim 0(09) based bit(1) level 2 packed unaligned dcl 1-47 set ref 87* all_status 0(01) based bit(1) level 2 packed unaligned dcl 1-51 set ref 137* area based area(1024) dcl 39 ref 202 202 202 arg_struc based structure level 1 unaligned dcl 1-23 set ref 152 152 arg_struc_temp 000104 automatic structure level 1 unaligned dcl 18 set ref 73 author 0(12) based bit(1) level 2 packed unaligned dcl 1-47 set ref 88* bit_count 0(24) based bit(1) level 2 packed unaligned dcl 1-47 set ref 89* bit_count_author 0(25) based bit(1) level 2 packed unaligned dcl 1-47 set ref 90* chase 0(02) based bit(1) level 2 packed unaligned dcl 1-51 set ref 138* check_archive 0(03) based bit(1) level 2 packed unaligned dcl 1-51 set ref 139* check_ascii 0(04) based bit(1) level 2 packed unaligned dcl 1-51 set ref 140* cleanup 000446 stack reference condition dcl 44 ref 188 code 000413 automatic fixed bin(35,0) dcl 18 set ref 152* 153 181* 182 197* 200 208* 209 227* 240* 242* 245* 252* 257* 259* 266* com_err_ 000012 constant entry external dcl 46 ref 79 240 242 245 252 257 259 266 compiler_name 0(34) based bit(1) level 2 packed unaligned dcl 1-47 set ref 91* compiler_options 1 based bit(1) level 2 packed unaligned dcl 1-47 set ref 92* compiler_version 0(35) based bit(1) level 2 packed unaligned dcl 1-47 set ref 93* components 0(05) based bit(1) level 2 packed unaligned dcl 1-51 set ref 141* condition_ 000014 constant entry external dcl 46 ref 190 container 0(06) based bit(1) level 2 packed unaligned dcl 1-51 set ref 142* copy 0(10) based bit(1) level 2 packed unaligned dcl 1-47 set ref 94* cu_$arg_count 000016 constant entry external dcl 46 ref 78 cu_$arg_list_ptr 000020 constant entry external dcl 46 ref 76 current_length 0(21) based bit(1) level 2 packed unaligned dcl 1-47 set ref 95* default 0(07) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "li" set ref 143* default 0(07) based bit(1) level 2 in structure "Sc" packed unaligned dcl 8-20 in procedure "li" set ref 156* 158 descriptor 0(25) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "li" set ref 148* descriptor 30 based varying char(168) level 2 in structure "arg_struc" dcl 1-23 in procedure "li" set ref 197* 242* 245* 252* 259* 266* dtc 0(33) based bit(1) level 2 packed unaligned dcl 1-47 set ref 96* dtd 0(14) based bit(1) level 2 packed unaligned dcl 1-47 set ref 97* dtem 0(13) based bit(1) level 2 packed unaligned dcl 1-47 set ref 98* dtm 0(16) based bit(1) level 2 packed unaligned dcl 1-47 set ref 99* dtu 0(17) based bit(1) level 2 packed unaligned dcl 1-47 set ref 100* entry_bound 0(27) based bit(1) level 2 packed unaligned dcl 1-47 set ref 101* fcb based structure level 1 unaligned dcl 4-3 fcb_temp 000414 automatic structure level 1 unaligned dcl 18 set ref 173 footing 103 based varying char(45) level 2 dcl 1-23 set ref 219* get_line_length_$switch 000022 constant entry external dcl 46 ref 181 get_system_msa_ 000024 constant entry external dcl 46 ref 192 iacl 0(32) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 102* iacl 0(08) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "li" set ref 144* index_list based structure level 1 dcl 5-19 set ref 202 ioname 1 based char(32) level 2 packed unaligned dcl 4-3 set ref 175* iox_$user_output 000046 external static pointer dcl 65 ref 176 kids 0(04) based bit(1) level 2 packed unaligned dcl 1-47 set ref 103* kids_error 0(05) based bit(1) level 2 packed unaligned dcl 1-47 set ref 104* level 1(34) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 105* level 1(34) based bit(1) level 2 in structure "Sreq_init" packed unaligned dcl 1-49 in procedure "li" set ref 132* lib_args_ 000026 constant entry external dcl 46 ref 152 lib_descriptor_$info 000030 constant entry external dcl 46 ref 197 lib_error_list_ 000032 constant entry external dcl 46 ref 263 264 268 lib_output_node_list_$info 000034 constant entry external dcl 46 ref 219 lib_sort_tree_$make_name_list 000036 constant entry external dcl 46 ref 208 lib_sort_tree_$name_list 000040 constant entry external dcl 46 ref 210 library 0(30) based bit(1) level 2 packed unaligned dcl 1-51 set ref 149* line_length 23 based fixed bin(17,0) level 2 dcl 4-3 set ref 181* 182* line_no 24 based fixed bin(17,0) level 2 dcl 4-3 set ref 183* 277* link_target 0(15) based bit(1) level 2 packed unaligned dcl 1-47 set ref 106* lvid 0(28) based bit(1) level 2 packed unaligned dcl 1-47 set ref 107* matching_names 0(01) based bit(1) level 2 in structure "S" packed unaligned dcl 7-96 in procedure "li" set ref 158 160* matching_names 0(01) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 108* max_entries constant fixed bin(17,0) initial dcl 5-19 ref 202 202 202 202 202 202 max_length 0(22) based bit(1) level 2 packed unaligned dcl 1-47 set ref 109* min builtin function dcl 42 ref 237 mode 0(07) based bit(1) level 2 packed unaligned dcl 1-47 set ref 110* msa_manager_$area_handler 000042 constant entry external dcl 46 ref 190 190 msf_indicator 0(23) based bit(1) level 2 packed unaligned dcl 1-47 set ref 111* name_list based structure level 1 dcl 5-19 set ref 202 names 0(02) based bit(1) level 2 in structure "S" packed unaligned dcl 7-96 in procedure "li" ref 158 names 0(02) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 112* new_line 1(35) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 113* new_line 1(35) based bit(1) level 2 in structure "Sreq_init" packed unaligned dcl 1-49 in procedure "li" set ref 133* node based structure level 1 unaligned dcl 6-69 node_list based structure level 1 dcl 5-19 set ref 202 not_ascii 1(02) based bit(1) level 2 packed unaligned dcl 1-47 set ref 114* null builtin function dcl 42 ref 187 192 227 object_info 0(09) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "li" set ref 145* object_info 1(01) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 115* offset 0(26) based bit(1) level 2 packed unaligned dcl 1-47 set ref 116* page_length 20 based fixed bin(17,0) level 2 dcl 4-3 set ref 178* page_no 22 based fixed bin(17,0) level 2 dcl 4-3 set ref 180* 276* 276 page_text_length 21 based fixed bin(17,0) level 2 dcl 4-3 set ref 179* pathname 0(03) based bit(1) level 2 packed unaligned dcl 1-47 set ref 117* primary_name based bit(1) level 2 in structure "S" packed unaligned dcl 7-96 in procedure "li" set ref 158 159* primary_name based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 118* program 1 based varying char(32) level 2 dcl 1-23 set ref 75* 240* 242* 245* 245* 252* 257* 259* 263* 264* 266* 268* progress 000441 automatic fixed bin(17,0) initial dcl 18 set ref 18* 197* 237* 237 239 put_error 16 based entry variable level 2 dcl 1-23 set ref 79* pvid 0(29) based bit(1) level 2 packed unaligned dcl 1-47 set ref 119* quota 0(30) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 120* quota 0(10) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "li" set ref 146* rb 0(18) based bit(1) level 2 packed unaligned dcl 1-47 set ref 121* records_used 0(20) based bit(1) level 2 packed unaligned dcl 1-47 set ref 122* release_system_msa_ 000044 constant entry external dcl 46 ref 227 retain 0(11) based bit(1) level 2 packed unaligned dcl 1-51 set ref 147* root_search_proc 1(04) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 123* root_search_proc 1(04) based bit(1) level 2 in structure "Sreq_init" packed unaligned dcl 1-49 in procedure "li" set ref 131* safety 0(08) based bit(1) level 2 packed unaligned dcl 1-47 set ref 124* search_names 0(34) based bit(1) level 2 packed unaligned dcl 1-51 set ref 150* starname based structure level 1 dcl 3-32 set ref 219 219 state 000442 automatic char(16) unaligned dcl 18 set ref 249* 251* 252* 252* type 0(06) based bit(1) level 2 packed unaligned dcl 1-47 set ref 125* unique_id 0(11) based bit(1) level 2 packed unaligned dcl 1-47 set ref 126* user 1(03) based bit(1) level 2 in structure "Sreq_init" packed unaligned dcl 1-49 in procedure "li" set ref 134* user 1(03) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "li" set ref 127* version based fixed bin(17,0) level 2 in structure "fcb" dcl 4-3 in procedure "li" set ref 174* version based fixed bin(17,0) level 2 in structure "arg_struc" dcl 1-23 in procedure "li" set ref 74* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. D based structure level 1 unaligned dcl 6-146 Dacl based structure level 1 unaligned dcl 6-153 Ddir_acl based structure level 1 unaligned dcl 6-172 Ddir_iacl based structure level 1 unaligned dcl 6-190 Diacl based structure level 1 unaligned dcl 6-209 Dnames based structure level 1 unaligned dcl 6-230 Dnodes based structure level 1 unaligned dcl 6-245 Dobj based structure level 1 unaligned dcl 6-263 Dsearch_proc based structure level 1 unaligned dcl 6-311 Duser based structure level 1 unaligned dcl 6-324 Luser automatic fixed bin(17,0) dcl 6-324 Nacls automatic fixed bin(17,0) dcl 6-153 Ndir_acls automatic fixed bin(17,0) dcl 6-172 Ndir_iacls automatic fixed bin(17,0) dcl 6-190 Niacls automatic fixed bin(17,0) dcl 6-209 Nnames automatic fixed bin(17,0) dcl 6-230 Nnodes automatic fixed bin(17,0) dcl 6-245 PD automatic pointer dcl 6-146 PDacl automatic pointer dcl 6-153 PDdir_acl automatic pointer dcl 6-172 PDdir_iacl automatic pointer dcl 6-190 PDiacl automatic pointer dcl 6-209 PDnames automatic pointer dcl 6-230 PDnodes automatic pointer dcl 6-245 PDobj automatic pointer dcl 6-263 PDsearch_proc automatic pointer dcl 6-311 PDuser automatic pointer dcl 6-324 Pnode automatic pointer dcl 6-69 Ppage_list automatic pointer dcl 5-19 Sc_init based structure level 1 dcl 1-53 Sreq based structure level 1 dcl 6-343 Svalid based structure level 1 dcl 6-343 Tacl internal static fixed bin(17,0) initial dcl 6-153 Tarchive internal static fixed bin(17,0) initial dcl 6-358 Tarchive_comp internal static fixed bin(17,0) initial dcl 6-358 Tdir_acl internal static fixed bin(17,0) initial dcl 6-172 Tdir_iacl internal static fixed bin(17,0) initial dcl 6-190 Tdirectory internal static fixed bin(17,0) initial dcl 6-358 Tiacl internal static fixed bin(17,0) initial dcl 6-209 Tlink internal static fixed bin(17,0) initial dcl 6-358 Tmsf internal static fixed bin(17,0) initial dcl 6-358 Tmsf_comp internal static fixed bin(17,0) initial dcl 6-358 Tnames internal static fixed bin(17,0) initial dcl 6-230 Tnodes internal static fixed bin(17,0) initial dcl 6-245 Tobj internal static fixed bin(17,0) initial dcl 6-263 Tsearch_proc internal static fixed bin(17,0) initial dcl 6-311 Tsegment internal static fixed bin(17,0) initial dcl 6-358 Tuser internal static fixed bin(17,0) initial dcl 6-324 Vacl_1 internal static fixed bin(17,0) initial dcl 6-153 Vdir_acl_1 internal static fixed bin(17,0) initial dcl 6-172 Vdir_iacl_1 internal static fixed bin(17,0) initial dcl 6-190 Viacl_1 internal static fixed bin(17,0) initial dcl 6-209 Vnames_1 internal static fixed bin(17,0) initial dcl 6-230 Vnodes_1 internal static fixed bin(17,0) initial dcl 6-245 Vobj_1 internal static fixed bin(17,0) initial dcl 6-263 Vsearch_proc_1 internal static fixed bin(17,0) initial dcl 6-311 Vuser_1 internal static fixed bin(17,0) initial dcl 6-324 brief_node_type internal static varying char(12) initial array dcl 6-374 divide builtin function dcl 42 error_table_$noarg external static fixed bin(35,0) dcl 65 exclude based structure level 1 dcl 3-42 length builtin function dcl 42 library based structure level 1 dcl 3-22 link_node based structure level 1 unaligned dcl 6-30 node_type internal static varying char(32) initial array dcl 6-374 page_list based structure level 1 dcl 5-19 reverse builtin function dcl 42 substr builtin function dcl 42 verify builtin function dcl 42 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_S 000000 constant label array(0:7) dcl 240 ref 239 BAD_SEARCH 001230 constant label dcl 237 set ref 200 DETACH 001223 constant label dcl 223 ref 241 244 248 256 258 265 269 NO_DEFAULT_NAMES 001370 constant label dcl 252 set ref 250 NO_MATCH 001463 constant label dcl 259 ref 209 janitor 001645 constant entry internal dcl 226 ref 188 223 li 000257 constant entry external dcl 15 library_info 000267 constant entry external dcl 15 no_end_page 001673 constant entry internal dcl 274 ref 177 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2162 2232 1712 2172 Length 2616 1712 50 347 247 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME li 19354 external procedure is an external procedure. on unit on line 188 64 on unit janitor 72 internal procedure is called by several nonquick procedures. no_end_page 64 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME li 000100 Parea li 000102 Ptree li 000104 arg_struc_temp li 000413 code li 000414 fcb_temp li 000441 progress li 000442 state li 000454 LIBRARY li 002261 STARNAME li 023732 EXCLUDE li 045404 Parg_struc li 045406 Plibrary li 045410 Pstarname li 045412 Pexclude li 045414 Pfcb li 045416 Pindex_list li 045420 Pname_list li 045422 Pnode_list li 045424 Srequirements li 045426 Scontrol li THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ condition_ cu_$arg_count cu_$arg_list_ptr get_line_length_$switch get_system_msa_ lib_args_ lib_descriptor_$info lib_error_list_ lib_output_node_list_$info lib_sort_tree_$make_name_list lib_sort_tree_$name_list msa_manager_$area_handler release_system_msa_ smart_alloc_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000253 15 000256 73 000275 74 000300 75 000302 76 000307 77 000317 78 000323 79 000333 80 000342 81 000345 82 000347 83 000350 85 000351 86 000353 87 000355 88 000357 89 000361 90 000363 91 000365 92 000367 93 000371 94 000373 95 000375 96 000377 97 000401 98 000403 99 000405 100 000407 101 000411 102 000413 103 000415 104 000417 105 000421 106 000423 107 000425 108 000427 109 000431 110 000433 111 000435 112 000437 113 000441 114 000443 115 000445 116 000447 117 000451 118 000453 119 000455 120 000457 121 000461 122 000463 123 000465 124 000467 125 000471 126 000473 127 000475 131 000477 132 000501 133 000503 134 000505 136 000507 137 000511 138 000513 139 000515 140 000517 141 000521 142 000523 143 000525 144 000527 145 000531 146 000533 147 000535 148 000537 149 000541 150 000543 152 000545 153 000572 155 000574 156 000606 158 000610 159 000620 160 000622 173 000624 174 000626 175 000630 176 000633 177 000637 178 000642 179 000644 180 000645 181 000647 182 000662 183 000670 187 000674 188 000676 190 000720 192 000745 194 000767 195 000772 196 000774 197 000776 200 001031 202 001033 205 001125 206 001127 207 001131 208 001133 209 001153 210 001155 219 001170 223 001223 224 001227 237 001230 239 001235 240 001236 241 001265 242 001266 244 001321 245 001322 248 001360 249 001361 250 001364 251 001365 252 001370 256 001432 257 001433 258 001462 259 001463 263 001516 264 001541 265 001564 266 001565 268 001620 269 001643 226 001644 227 001652 230 001671 274 001672 276 001700 277 001704 279 001706 ----------------------------------------------------------- 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