COMPILATION LISTING OF SEGMENT library_descriptor Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/15/84 0856.4 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_descriptor: lds: procedure; 16 17 18 dcl /* automatic variables */ 19 Larg fixed bin, /* length of input argument. */ 20 Lkey fixed bin, /* length of function key. */ 21 Lret fixed bin, /* max length of active fnc return value. */ 22 Nargs fixed bin, /* number of input arguments. */ 23 Parg ptr, /* ptr to input argument. */ 24 Pkey ptr, /* ptr to function key. */ 25 Pret ptr, /* ptr to active function return value. */ 26 Scommand bit(1) aligned, /* on if invoked as a command. */ 27 Sunsupported bit(1) unal, /* on if library command is not supported by desc.*/ 28 1 arg_struc_temp structure like arg_struc, 29 command_name char(32), /* name of a library command. */ 30 code fixed bin(35), /* error code. */ 31 dir char(168) varying, /* dir part of library pathname. */ 32 ent char(32) varying, /* ent part of library pathname. */ 33 error entry options(variable) variable, 34 /* procedure to call to report errors to user. */ 35 1 fcb_temp like fcb, /* storage for file control block. */ 36 get_arg entry (fixed bin, ptr, fixed bin, fixed bin(35)) variable, 37 /* procedure to call to get next argument. */ 38 i fixed bin, /* function index; also, do-group index. */ 39 progress fixed bin; /* progress of lib_descriptor_ operations. */ 40 41 dcl /* based variables */ 42 arg char(Larg) based (Parg), 43 /* an input argument. */ 44 key char(Lkey) based (Pkey), 45 /* a function key. */ 46 ret char(Lret) varying based (Pret); 47 /* our active function return value. */ 48 49 dcl /* builtin functions & conditions */ 50 (addr, dimension, length, null) 51 builtin, 52 cleanup condition; 53 54 dcl /* entries called */ 55 (active_fnc_err_, 56 com_err_) entry options(variable), 57 cu_$af_arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin(35)), 58 cu_$af_return_arg entry (fixed bin, ptr, fixed bin, fixed bin(35)), 59 cu_$arg_count entry returns(fixed bin), 60 cu_$arg_list_ptr entry returns (ptr), 61 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin(35)), 62 get_line_length_$switch entry (ptr, fixed bin(35)) returns (fixed bin), 63 get_system_free_area_ entry returns(ptr), 64 ioa_ entry options(variable), 65 lib_args_ entry (1 aligned like LIBRARY, 1 aligned like STARNAME, 1 aligned like STARNAME, bit(72) aligned, 66 bit(36) aligned, ptr, fixed bin(35)), 67 lib_array_list_ entry (char(32) varying, ptr, ptr), 68 lib_descriptor_$default_values 69 entry (char(168) varying, fixed bin, char(32), bit(1), ptr, ptr, ptr, 70 fixed bin, fixed bin(35)), 71 lib_descriptor_$libraries entry (char(168) varying, ptr, bit(72) aligned, ptr, ptr, 72 fixed bin, fixed bin(35)), 73 lib_descriptor_$name entry (char(168) varying), 74 lib_descriptor_$set_name entry (char(168) varying, fixed bin(35)), 75 lib_error_list_ entry (char(32) varying, ptr, char(32) varying), 76 lib_free_node_$array entry (ptr), 77 lib_node_path_ entry (ptr, char(168) varying, char(32) varying), 78 lib_output_node_$info entry (ptr, ptr, bit(72) aligned, fixed bin, ptr); 79 80 dcl /* static variables */ 81 False bit(1) aligned int static options(constant) init ("0"b), 82 Parea ptr int static init (null), 83 True bit(1) aligned int static options(constant) init ("1"b), 84 allowed_keys (9) char(8) varying int static options(constant) init ( 85 "name", "nm", 86 "set", 87 "pathname", "pn", 88 "default", "dft", 89 "root", "rt"), 90 error_table_$bad_arg fixed bin(35) ext static, 91 error_table_$wrong_no_of_args fixed bin(35) ext static, 92 iox_$user_output ptr ext static; 93 94 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 95 96 97 98 call cu_$af_return_arg (Nargs, Pret, Lret, code); 99 if code = 0 then do; /* invoked as an active function. */ 100 Scommand = False; 101 error = active_fnc_err_; 102 get_arg = cu_$af_arg_ptr; 103 ret = ""; 104 end; 105 else do; /* invoked as a command. */ 106 Scommand = True; 107 error = com_err_; 108 get_arg = cu_$arg_ptr; 109 Nargs = cu_$arg_count(); 110 end; 111 112 if Nargs = 0 then go to GIVE_HELP; /* user doesn't know what to do with this program.*/ 113 114 call get_arg (1, Pkey, Lkey, 0); /* find out what we're doing, by getting key. */ 115 do i = 1 to dimension(allowed_keys,1) while (key ^= allowed_keys(i)); 116 end; 117 if i > dimension(allowed_keys,1) then go to GIVE_HELP_1; 118 119 go to CHECK_AF(i); /* check allowability of active function invoc. */ 120 121 CHECK_AF(3): /* set */ 122 CHECK_AF(6): /* default */ 123 CHECK_AF(7): /* dft */ 124 CHECK_AF(8): /* root */ 125 CHECK_AF(9): /* rt */ 126 if ^Scommand then go to INVALID_ACTIVE_FCN; 127 CHECK_AF(1): /* name */ 128 CHECK_AF(2): /* nm */ 129 CHECK_AF(4): /* pathname */ 130 CHECK_AF(5): /* pn */ 131 Parg_struc = addr(arg_struc_temp); 132 go to STEP_1(i); /* perform function in steps. */ 133 134 STEP_1(1): /* name - has only 1 step. */ 135 STEP_1(2): /* nm */ 136 if Nargs > 1 then go to WRONG_NO_OF_ARGS; 137 call lib_descriptor_$name (arg_struc.descriptor); 138 if Scommand then 139 call ioa_ ("^2x^a^/", arg_struc.descriptor); 140 else ret = arg_struc.descriptor; 141 return; /* have gotten name of current descriptor. */ 142 143 STEP_1(3): /* set - has only 1 step, too. */ 144 if Nargs > 2 then go to WRONG_NO_OF_ARGS; /* set name of default library descriptor. */ 145 if Nargs = 2 then do; 146 call get_arg (2, Parg, Larg, 0); 147 arg_struc.descriptor = arg; 148 end; 149 else arg_struc.descriptor = ""; /* return to initial default descriptor. */ 150 call lib_descriptor_$set_name (arg_struc.descriptor, code); 151 if code ^= 0 then go to BAD_SET; 152 return; 153 154 STEP_1(4): /* pathname */ 155 STEP_1(5): /* pn */ 156 STEP_1(6): /* default */ 157 STEP_1(7): /* dft */ 158 STEP_1(8): /* root */ 159 STEP_1(9): /* rt */ 160 arg_struc.Srequirements_allowed = ""b; 161 arg_struc.Srequirements_initial = ""b; 162 arg_struc.Scontrol_allowed = ""b; 163 arg_struc.Scontrol_initial = ""b; 164 go to STEP_2(i); 165 166 STEP_2(4): /* pathname */ 167 STEP_2(5): /* pn */ 168 Sc_allowed.library = True; 169 Sc_allowed.descriptor = True; 170 Sc_init.library = True; 171 LIBRARY.N = 1; 172 LIBRARY.V(1) = "**"; 173 LIBRARY.C(1) = 2; 174 go to DO_ARGS; 175 STEP_2(6): /* default */ 176 STEP_2(7): /* dft */ 177 Sc_allowed.search_names = True; 178 Sc_allowed.descriptor = True; 179 go to DO_ARGS; 180 STEP_2(8): /* root */ 181 STEP_2(9): /* rt */ 182 Sc_allowed.library = True; 183 Sc_allowed.descriptor = True; 184 Sreq_allowed.names = True; 185 Sreq_allowed.matching_names = True; 186 Sreq_allowed.primary_name = True; 187 Sc_init.library = True; 188 LIBRARY.N = 1; 189 LIBRARY.V(1) = "**"; 190 LIBRARY.C(1) = 2; 191 go to DO_ARGS; 192 193 DO_ARGS: arg_struc.version = Varg_struc_1; 194 arg_struc.program = "library_descriptor"; 195 arg_struc.Parg_list = cu_$arg_list_ptr(); 196 arg_struc.Iarg_list = 2; 197 arg_struc.Larg_list = Nargs; 198 arg_struc.put_error = error; 199 call lib_args_ (LIBRARY, STARNAME, EXCLUDE, Srequirements, Scontrol, addr(arg_struc), code); 200 if code ^= 0 then return; 201 go to STEP_3(i); /* This step does all the work. */ 202 203 STEP_3(4): /* pathname */ 204 STEP_3(5): /* pn */ 205 if Parea = null then Parea = get_system_free_area_(); 206 PDnodes = null; 207 on cleanup call lib_free_node_$array (PDnodes); 208 Plibrary = addr(LIBRARY); 209 call lib_descriptor_$libraries (arg_struc.descriptor, Plibrary, Srequirements, Parea, PDnodes, 210 progress, code); 211 if code ^= 0 then go to BAD_LIB; 212 do i = 1 to Dnodes.N; 213 Pnode = addr(Dnodes.nodes(i)); 214 call lib_node_path_ (Pnode, dir, ent); 215 if dir = ">" then 216 dir = dir || ent; 217 else dir = dir || ">" || ent; 218 if Scommand then 219 call ioa_ ("^2x^a", dir); 220 else do; 221 if length(dir) + 1 > Lret - length(ret) then return; 222 ret = ret || dir; 223 ret = ret || " "; 224 end; 225 end; 226 if Scommand then call ioa_ (""); 227 else ret = substr(ret,1,length(ret)-1); 228 call lib_free_node_$array (PDnodes); 229 return; 230 231 STEP_3(6): /* default */ 232 STEP_3(7): /* dft */ 233 if STARNAME.N = 0 then do; /* list all command defaults. */ 234 call lib_descriptor_$default_values (arg_struc.descriptor, 1, command_name, Sunsupported, 235 Plibrary, Pstarname, Pexclude, progress, code); 236 if progress = 1 then go to BAD_DESCRIPTOR; 237 do i = 1 by 1 while (code = 0); 238 call print_defaults (); 239 call lib_descriptor_$default_values (arg_struc.descriptor, i+1, command_name, Sunsupported, 240 Plibrary, Pstarname, Pexclude, progress, code); 241 end; 242 end; 243 else do; 244 do i = 1 to STARNAME.N; 245 command_name = STARNAME.V(i); 246 call lib_descriptor_$default_values (arg_struc.descriptor, 0, command_name, Sunsupported, 247 Plibrary, Pstarname, Pexclude, progress, code); 248 if progress = 0 then 249 call error (code, arg_struc.program, " Invalid library command: ^a", STARNAME.V(i)); 250 else if progress = 1 then go to BAD_DESCRIPTOR; 251 else call print_defaults (); 252 end; 253 end; 254 return; 255 256 print_defaults: procedure; /* procedure to print command default values. */ 257 258 if Sunsupported then 259 call ioa_ ("unsupported command: ^a", command_name); 260 else do; 261 call ioa_ ("command: ^a", command_name); 262 if library.N = 0 then 263 call ioa_ ("^2xlibrary names:^-^5x(none)"); 264 else call lib_array_list_ ("library name", Plibrary, iox_$user_output); 265 if starname.N = 0 then 266 call ioa_ ("^2xsearch names:^-^5x(none)"); 267 else call lib_array_list_ ("search name", Pstarname, iox_$user_output); 268 end; 269 call ioa_ (""); 270 271 end print_defaults; 272 273 STEP_3(8): /* root */ 274 STEP_3(9): /* rt */ 275 if S.names | S.matching_names | S.primary_name then; 276 else if LIBRARY.N = 1 & LIBRARY.C(1) = 2 then 277 S.primary_name = True; 278 else S.matching_names = True; 279 S.type = True; 280 S.pathname = True; 281 S.root_search_proc = True; 282 S.new_line = True; 283 284 if Parea = null then Parea = get_system_free_area_(); 285 PDnodes = null; 286 on cleanup call lib_free_node_$array (PDnodes); 287 Plibrary = addr(LIBRARY); 288 call lib_descriptor_$libraries (arg_struc.descriptor, Plibrary, Srequirements, Parea, PDnodes, 289 progress, code); 290 if code ^= 0 then go to BAD_LIB; 291 Pfcb = addr(fcb_temp); 292 fcb.version = Vfcb_1; 293 fcb.ioname = "user_output"; 294 fcb.Piocb = iox_$user_output; 295 fcb.Eend_page = no_end_page; 296 fcb.page_length = 131071; 297 fcb.page_text_length = 131071; 298 fcb.page_no = 1; 299 fcb.line_length = get_line_length_$switch (fcb.Piocb, code); 300 fcb.line_no = 2; 301 do i = 1 to Dnodes.N; 302 Pnode = addr(Dnodes.nodes(i)); 303 call lib_output_node_$info (addr(fcb), Pnode, Srequirements, 0, Plibrary); 304 end; 305 call lib_free_node_$array (PDnodes); 306 return; 307 308 309 no_end_page: procedure; 310 311 end no_end_page; 312 313 314 GIVE_HELP: 315 code = error_table_$wrong_no_of_args; 316 Lkey = 0; 317 Pkey = addr(Pkey); 318 go to GIVE_HELP_; 319 GIVE_HELP_1: 320 code = error_table_$bad_arg; 321 GIVE_HELP_: 322 if Scommand then 323 call error (code, "library_descriptor", " ^a 324 Calling sequence: lds key -args- 325 where key is: name (nm), set, pathname (pn), default (dft), root (rt)", key); 326 else 327 call error (code, "library_descriptor", " ^a 328 Calling sequence: [lds key -args-] 329 where key is: name (nm), or pathname (pn)", key); 330 return; 331 332 INVALID_ACTIVE_FCN: 333 call error (code, "library_descriptor", " 334 'lds ^a' may not be used as an active function.", key); 335 return; 336 337 WRONG_NO_OF_ARGS: 338 call error (error_table_$wrong_no_of_args, "library_descriptor", " 339 Calling sequence: lds ^a ^vs^a", key, i-1, "", "", "descriptor_name"); 340 return; 341 342 BAD_SET: call error (code, "library_descriptor", " 343 While setting the name of the default library descriptor to 344 ^a.", arg_struc.descriptor); 345 return; 346 347 BAD_LIB: call error (code, "library_descriptor", " 348 While obtaining information about the libraries. 349 descriptor: ^a", arg_struc.descriptor); 350 call lib_error_list_ ("library name", Plibrary, arg_struc.program); 351 if PDnodes ^= null then call lib_free_node_$array (PDnodes); 352 return; 353 354 BAD_DESCRIPTOR: 355 call error (code, "library_descriptor", " 356 While accessing library descriptor: ^a", arg_struc.descriptor); 357 return; 358 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 * * * * * * * * * * * * * * * * */ 359 360 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 * * * * * * * * * * * * * * * * */ 361 362 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 * * * * * * * * * * * * * * * * */ 363 364 5 1 /* START OF: lib_node_.incl.pl1 * * * * * * * * * * * * * * * * */ 5 2 5 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 4 /* */ 5 5 /* N__a_m_e: lib_node_.incl.pl1 */ 5 6 /* */ 5 7 /* This include segment defines the structures which form the tree of status nodes */ 5 8 /* created by lib_get_tree_. Each node of the tree is associated with a directory */ 5 9 /* entry or an archive component. The node lists the attributes of that entry, which is */ 5 10 /* called the node target. */ 5 11 /* */ 5 12 /* S__t_a_t_u_s */ 5 13 /* */ 5 14 /* 0) Created: May, 1973 by G. C. Dixon */ 5 15 /* 1) Modified: Aug, 1973 by G. C. Dixon - standardize descriptor format. */ 5 16 /* 2) Modified: Oct, 1973 by G. C. Dixon - add object_info_ descriptor. */ 5 17 /* 3) Modified: Apr, 1975 by G. C. Dixon - add ACL and IACL descriptors. */ 5 18 /* 4) Modified: Oct, 1975 by G. C. Dixon - additional status info added. */ 5 19 /* */ 5 20 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 21 5 22 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 23 /* */ 5 24 /* The structure of each node whose target is a link is shown below. The */ 5 25 /* structure of nodes for other types of targets is shown on the next page. Note that */ 5 26 /* both types of nodes are the same length. */ 5 27 /* */ 5 28 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 29 5 30 dcl 1 link_node based (Pnode), /* node of a status tree. */ 5 31 2 Pparent ptr, /* ptr to: parent node (previous tree level). */ 5 32 2 PD ptr, /* ptr to: descriptor chain attached to node. */ 5 33 2 Svalid bit(72) aligned, /* switches: node data which is valid. */ 5 34 2 Sreq bit(72) aligned, /* switches: node data which is req'd for output.*/ 5 35 /* (= node.Svalid & Srequirements) */ 5 36 2 T fixed bin(35), /* attribute: type of node target. */ 5 37 2 switches unaligned, 5 38 3 Smode bit(3), /* attribute: user's access mode to entry. */ 5 39 3 Sprev_mode bit(3), /* attribute: user's previous access mode to the */ 5 40 /* entry before lib_access_mode_$set. */ 5 41 3 pad bit(22), 5 42 3 Smaster_dir bit(1), /* attribute: master directory */ 5 43 3 Stpd bit(1), /* attribute: transparent (never on) paging device*/ 5 44 3 Ssafety bit(1), /* attribute: safety switch. */ 5 45 3 Saim_security_oos bit(1), /* attribute: security out-of-service. */ 5 46 3 Saim_audit bit(1), /* attribute: AIM audit use of node target. */ 5 47 3 Saim_multiple_class bit(1), /* attribute: AIM multiple class segment. */ 5 48 3 Sterminal_account bit(1), /* attribute: if on, records charged against quota*/ 5 49 /* in this directory; if off, records*/ 5 50 /* charged against 1st superior */ 5 51 /* directory with switch on. */ 5 52 3 Sterminal_account_dir bit(1), /* attribute: like Sterminal_account for dir quota*/ 5 53 3 Scopy bit(1), /* attribute: copy-on-write switch. */ 5 54 2 unique_id bit(36), /* attribute: unique identifier. */ 5 55 2 author char(32) varying, /* attribute: author of node target. */ 5 56 2 dtem bit(36), /* attribute: date-time attributes modified. */ 5 57 2 dtd bit(36), /* attribute: date-time node target dumped. */ 5 58 5 59 /* From here on, link_nodes differ from nodes */ 5 60 /* for other types of node targets. */ 5 61 2 link_target char(168) varying; /* attribute: target pathname of the link. */ 5 62 5 63 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 64 /* */ 5 65 /* The structure of nodes for other types of node targets is shown below. */ 5 66 /* */ 5 67 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 68 5 69 dcl 1 node based (Pnode), /* node of a status tree. */ 5 70 2 Pparent ptr, /* ptr to: parent node (previous tree level). */ 5 71 2 PD ptr, /* ptr to: descriptor chain attached to node. */ 5 72 2 Svalid bit(72) aligned, /* switches: node data which is valid. */ 5 73 2 Sreq bit(72) aligned, /* switches: node data which is req'd for output.*/ 5 74 /* (= node.Svalid & Srequirements) */ 5 75 2 T fixed bin(35), /* attribute: type of node target. */ 5 76 2 switches unaligned, 5 77 3 Smode bit(3), /* attribute: user's access mode to entry. */ 5 78 3 Sprev_mode bit(3), /* attribute: user's previous access mode to the */ 5 79 /* entry before lib_access_mode_$set. */ 5 80 3 pad bit(22), 5 81 3 Smaster_dir bit(1), /* attribute: master directory */ 5 82 3 Stpd bit(1), /* attribute: transparent (never on) paging device*/ 5 83 3 Ssafety bit(1), /* attribute: safety switch. */ 5 84 3 Saim_security_oos bit(1), /* attribute: security out-of-service. */ 5 85 3 Saim_audit bit(1), /* attribute: AIM audit use of node target. */ 5 86 3 Saim_multiple_class bit(1), /* attribute: AIM multiple class segment. */ 5 87 3 Sterminal_account bit(1), /* attribute: if on, records charged against quota*/ 5 88 /* in this directory; if off, records*/ 5 89 /* charged against 1st superior */ 5 90 /* directory with switch on. */ 5 91 3 Sterminal_account_dir bit(1), /* attribute: like Sterminal_account for dir quota*/ 5 92 3 Scopy bit(1), /* attribute: copy-on-write switch. */ 5 93 2 unique_id bit(36), /* attribute: unique identifier. */ 5 94 2 author char(32) varying, /* attribute: author of node target. */ 5 95 2 dtem bit(36), /* attribute: date-time attributes modified. */ 5 96 2 dtd bit(36), /* attribute: date-time node target dumped. */ 5 97 5 98 /* From here on, other nodes differ from */ 5 99 /* link_nodes. */ 5 100 2 dtm bit(36), /* attribute: date-time node target modified. */ 5 101 2 dtu bit(36), /* attribute: date-time node target last used. */ 5 102 2 rb (3) fixed bin(3), /* attribute: ring brackets. */ 5 103 2 pad1 (1) fixed bin, 5 104 2 access_class bit(72) aligned, /* attribute: access class assoc. with entry. */ 5 105 2 records_used fixed bin(35), /* attribute: storage used, in records. */ 5 106 2 current_length fixed bin(35), /* attribute: length, in records. */ 5 107 2 max_length fixed bin(35), /* attribute: maximum length. */ 5 108 2 msf_indicator fixed bin(35), /* attribute: msf indicator. */ 5 109 2 bit_count fixed bin(35), /* attribute: bit count. */ 5 110 2 bit_count_author char(32) varying, /* attribute: bit count/msf indicator author. */ 5 111 2 offset fixed bin(35), /* attribute: offset, in words, of an archive */ 5 112 /* component from the base of archive.*/ 5 113 2 entry_bound fixed bin(35), /* attribute: entry limit for calls to a gate. */ 5 114 2 segment, /* group: segment quota information for a dir. */ 5 115 3 quota fixed bin(35), /* attribute: quota set. */ 5 116 3 quota_used fixed bin(35), /* attribute: quota used. */ 5 117 3 trp fixed bin(71), /* attribute: time-record product. */ 5 118 3 dttrp bit(36), /* attribute: date-time time-record product last */ 5 119 /* updated. */ 5 120 3 Ninf_quota fixed bin(35), /* attribute: number of immediately-inferior */ 5 121 /* directories with Sterminal_account */ 5 122 /* on. */ 5 123 2 directory, /* group: directory quota information for a dir. */ 5 124 3 quota fixed bin(35), /* attribute: quota set. */ 5 125 3 quota_used fixed bin(35), /* attribute: quota used. */ 5 126 3 trp fixed bin(71), /* attribute: time-record product. */ 5 127 3 dttrp bit(36), /* attribute: date-time time-record product last */ 5 128 /* updated. */ 5 129 3 Ninf_quota fixed bin(35), /* attribute: number of immediately-inferior */ 5 130 /* directories with Sterminal_account */ 5 131 /* on. */ 5 132 2 pvid bit(36), /* attribute: physical volume id. */ 5 133 2 lvid bit(36), /* attribute: logical volume id. */ 5 134 2 pad2 (5) fixed bin, 5 135 Pnode ptr; /* ptr to: a tree node. */ 5 136 5 137 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 138 /* */ 5 139 /* The descriptors attached to each node of the tree describe the variable-sized */ 5 140 /* attributes of the directory entry or archive component associated with the node. */ 5 141 /* Each descriptor must begin with a header shown in structure D below. The following */ 5 142 /* descriptors are the only ones that have been defined. */ 5 143 /* */ 5 144 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 145 5 146 dcl 1 D based (PD), /* Header common to all descriptors. */ 5 147 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 148 2 version fixed bin(17) unal, /* descriptor: version number. */ 5 149 2 T fixed bin, /* descriptor: type of descriptor. */ 5 150 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 151 PD ptr; /* ptr to: a descriptor. */ 5 152 5 153 dcl 1 Dacl based (PDacl), /* a segment ACL descriptor. */ 5 154 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 155 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 156 2 T fixed bin, /* descriptor: type = Tacl. */ 5 157 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 158 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 5 159 2 N fixed bin, /* attribute: number of ACL entries. */ 5 160 2 acls (Nacls refer (Dacl.N)), /* attribute: ACL entries. */ 5 161 3 access_name char(32), /* attribute: access name associated with entry. */ 5 162 3 modes bit(36), /* attribute: access modes associated with entry. */ 5 163 3 zero_pad bit(36), 5 164 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 5 165 Nacls fixed bin, /* temporary: number of entries in ACL descriptor.*/ 5 166 PDacl ptr, /* ptr to: a segment ACL descriptor. */ 5 167 Vacl_1 fixed bin int static options(constant) init (1), 5 168 /* version: version of ACL descriptor. */ 5 169 Tacl fixed bin int static options(constant) init (7); 5 170 /* attribute: type of a segment ACL descriptor. */ 5 171 5 172 dcl 1 Ddir_acl based (PDdir_acl), /* a directory ACL descriptor. */ 5 173 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 174 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 175 2 T fixed bin, /* descriptor: type = Tdir_acl. */ 5 176 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 177 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 5 178 2 N fixed bin, /* attribute: number of ACL entries. */ 5 179 2 acls (Ndir_acls refer (Ddir_acl.N)), /* attribute: ACL entries. */ 5 180 3 access_name char(32), /* attribute: access name associated with entry. */ 5 181 3 dir_modes bit(36), /* attribute: access modes associated with entry. */ 5 182 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 5 183 Ndir_acls fixed bin, /* temporary: number of entries in ACL descriptor.*/ 5 184 PDdir_acl ptr, /* ptr to: a directory ACL descriptor. */ 5 185 Vdir_acl_1 fixed bin int static options(constant) init (1), 5 186 /* version: version of directory ACL descriptor.*/ 5 187 Tdir_acl fixed bin int static options(constant) init (8); 5 188 /* attribute: type of a directory ACL descriptor. */ 5 189 5 190 dcl 1 Ddir_iacl based (PDdir_iacl), /* a directory IACL descriptor. */ 5 191 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 192 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 193 2 T fixed bin, /* descriptor: type = Tdir_iacl. */ 5 194 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 195 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 5 196 2 N fixed bin, /* attribute: number of ACL entries. */ 5 197 2 Iring (0:7) fixed bin, /* attribute: index of first ACLe in each ring. */ 5 198 2 Nring (0:7) fixed bin, /* attribute: number of ACL entries in each ring. */ 5 199 2 acls (Ndir_iacls refer (Ddir_iacl.N)), /* attribute: ACL entries. */ 5 200 3 access_name char(32), /* attribute: access name associated with entry. */ 5 201 3 dir_modes bit(36), /* attribute: access modes associated with entry. */ 5 202 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 5 203 Ndir_iacls fixed bin, /* temporary: number of entries in IACL descriptor*/ 5 204 PDdir_iacl ptr, /* ptr to: a directory IACL descriptor. */ 5 205 Vdir_iacl_1 fixed bin int static options(constant) init (1), 5 206 /* version: version of dir IACL descriptor. */ 5 207 Tdir_iacl fixed bin int static options(constant) init (9); 5 208 5 209 dcl 1 Diacl based (PDiacl), /* a segment IACL descriptor. */ 5 210 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 211 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 212 2 T fixed bin, /* descriptor: type = Tiacl. */ 5 213 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 214 2 C fixed bin(35), /* attribute: error code from filling descriptor. */ 5 215 2 N fixed bin, /* attribute: number of ACL entries. */ 5 216 2 Iring (0:7) fixed bin, /* attribute: index of first ACLe in each ring. */ 5 217 2 Nring (0:7) fixed bin, /* attribute: number of ACL entries in each ring. */ 5 218 2 acls (Niacls refer (Diacl.N)), /* attribute: ACL entries. */ 5 219 3 access_name char(32), /* attribute: access name associated with entry. */ 5 220 3 modes bit(36), /* attribute: access modes associated with entry. */ 5 221 3 zero_pad bit(36), 5 222 3 status_code fixed bin(35), /* attribute: status code associated with entry. */ 5 223 Niacls fixed bin, /* temporary: number of entries in IACL descriptor*/ 5 224 PDiacl ptr, /* ptr to: a segment IACL descriptor. */ 5 225 Viacl_1 fixed bin int static options(constant) init (1), 5 226 /* version: version of segment IACL descriptor. */ 5 227 Tiacl fixed bin int static options(constant) init (10); 5 228 /* attribute: type of a segment IACL descriptor. */ 5 229 5 230 dcl 1 Dnames based (PDnames), /* name attribute descriptor. */ 5 231 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 232 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 233 2 T fixed bin, /* descriptor: type = Tnames. */ 5 234 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 235 2 N fixed bin, /* attribute: number of names. */ 5 236 2 names (Nnames refer (Dnames.N)) 5 237 char(32), /* attribute: names. */ 5 238 Nnames fixed bin, /* temporary: number of names in name descriptor. */ 5 239 PDnames ptr, /* ptr to: a name descriptor. */ 5 240 Vnames_1 fixed bin int static options(constant) init (1), 5 241 /* version: version of names descriptor. */ 5 242 Tnames fixed bin int static options(constant) init (1); 5 243 /* attribute: type of a name descriptor. */ 5 244 5 245 dcl 1 Dnodes based (PDnodes), /* descriptor for array of immediately-inferior */ 5 246 /* nodes. */ 5 247 2 header, 5 248 3 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 249 3 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 250 3 T fixed bin, /* descriptor: type = Tnodes. */ 5 251 3 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 252 3 C fixed bin(35), /* attribute: error code from filling array. */ 5 253 3 N fixed bin, /* attribute: number of nodes in node array. */ 5 254 2 nodes (Nnodes refer (Dnodes.N)) /* attribute: node array */ 5 255 like node, 5 256 Nnodes fixed bin, /* temporary: number of nodes in node array. */ 5 257 PDnodes ptr, /* ptr to: a node array descriptor. */ 5 258 Vnodes_1 fixed bin int static options(constant) init (1), 5 259 /* version: version of nodes descriptor. */ 5 260 Tnodes fixed bin int static options(constant) init (2); 5 261 /* attribute: type of a node descriptor. */ 5 262 5 263 dcl 1 Dobj based (PDobj), /* an object_info_ descriptor. */ 5 264 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 265 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 266 2 T fixed bin, /* descriptor: type = Tobj. */ 5 267 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 268 2 info, 5 269 3 Otext fixed bin(35), /* attribute: offset of text. */ 5 270 3 Odefinitions fixed bin(35), /* attribute: offset of definitions. */ 5 271 3 Olink fixed bin(35), /* attribute: offset of linkage section. */ 5 272 3 Ostatic fixed bin(35), /* attribute: offset of static section. */ 5 273 3 Osymbols fixed bin(35), /* attribute: offset of symbol section. */ 5 274 3 Obreaks fixed bin(35), /* attribute: offset of break map. */ 5 275 3 Ltext fixed bin(35), /* attribute: length of text, in words. */ 5 276 3 Ldefinitions fixed bin(35), /* attribute: length of definitions, in words. */ 5 277 3 Llink fixed bin(35), /* attribute: length of linkage section, in words.*/ 5 278 3 Lstatic fixed bin(35), /* attribute: length of static section, in words. */ 5 279 3 Lsymbols fixed bin(35), /* attribute: length of symbol section, in words. */ 5 280 3 Lbreaks fixed bin(35), /* attribute: length of break map, in words. */ 5 281 3 format aligned, 5 282 4 old_format bit(1) unal, /* attribute: segment is in old format. */ 5 283 4 bound bit(1) unal, /* attribute: a bound segment. */ 5 284 4 relocatable bit(1) unal, /* attribute: object is relocatable. */ 5 285 4 procedure bit(1) unal, /* attribute: executable procedure. */ 5 286 4 standard bit(1) unal, /* attribute: standard object segment. */ 5 287 4 gate bit(1) unal, /* attribute: gate procedure. */ 5 288 4 separate_static bit(1) unal, /* attribute: proc has separate static section. */ 5 289 4 links_in_text bit(1) unal, /* attribute: proc has links in text section. */ 5 290 4 pad bit(28) unal, 5 291 3 entry_bound fixed bin(35), /* attribute: entry point bound for a gate. */ 5 292 3 Otext_links fixed bin(35), /* attribute: offset of first link in text section*/ 5 293 3 compiler char(8), /* attribute: compiler of this object segment. */ 5 294 3 compile_time fixed bin(71), /* attribute: date/time of compilation. */ 5 295 3 userid char(32), /* attribute: id of user who compiled segment. */ 5 296 3 cversion, /* attribite: compiler version string. */ 5 297 4 O fixed bin(17) unal, /* offset */ 5 298 4 L fixed bin(17) unal, /* length */ 5 299 3 comment, /* attribute: compiler-generated comment. */ 5 300 4 O fixed bin(17) unal, /* offset */ 5 301 4 L fixed bin(17) unal, /* length */ 5 302 3 Osource fixed bin(35), /* attribute: offset of source map. */ 5 303 2 cversion char(64) varying, /* attribute: compiler version number */ 5 304 2 comment char(64) varying, /* attribute: compiler's comment info */ 5 305 PDobj ptr, /* ptr to: an object_info_ descriptor. */ 5 306 Vobj_1 fixed bin int static options(constant) init (1), 5 307 /* version: version of object_info_ descriptor. */ 5 308 Tobj fixed bin int static options(constant) init (3); 5 309 /* attribute: type of a node descriptor. */ 5 310 5 311 dcl 1 Dsearch_proc based (PDsearch_proc), 5 312 /* library root search_proc attribute descriptor. */ 5 313 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 314 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 315 2 T fixed bin, /* descriptor: type = Tsearch_proc. */ 5 316 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 317 2 search_proc char(65) varying, /* attribute: name of library search procedure. */ 5 318 PDsearch_proc ptr, /* ptr to: a search_proc info descriptor. */ 5 319 Vsearch_proc_1 fixed bin int static options(constant) init (1), 5 320 /* version: version of search_proc info descrip.*/ 5 321 Tsearch_proc fixed bin int static options(constant) init (5); 5 322 /* attribute: type of a search_proc descriptor. */ 5 323 5 324 dcl 1 Duser based (PDuser), /* user attribute descriptor. */ 5 325 2 length fixed bin(17) unal, /* descriptor: length, in words. */ 5 326 2 version fixed bin(17) unal, /* descriptor: version number = 1. */ 5 327 2 T fixed bin, /* descriptor: type = Tuser. */ 5 328 2 Pnext ptr, /* ptr to: next descriptor attached to node. */ 5 329 2 label char(18), /* attribute: label to be used for this field in */ 5 330 /* output. */ 5 331 2 L fixed bin, /* attribute: length of user info string. */ 5 332 2 info char(Luser refer (Duser.L)), 5 333 /* attribute: user info string. */ 5 334 Luser fixed bin, /* temporary: length of user info string. */ 5 335 PDuser ptr, /* ptr to: a user info descriptor. */ 5 336 Vuser_1 fixed bin int static options(constant) init (1), 5 337 /* version: version of user info descriptor. */ 5 338 Tuser fixed bin int static options(constant) init (6); 5 339 /* attribute: type of a user descriptor. */ 5 340 6 1 /* START OF: lib_Svalid_req_.incl.pl1 * * * * * * * * * * * * * * * * */ 6 2 6 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 4 /* */ 6 5 /* N__a_m_e: lib_Svalid_req_.incl.pl1 */ 6 6 /* */ 6 7 /* This include segment defines the switches which request/validate the fields */ 6 8 /* in a status node produced by lib_get_tree_. This segment, lib_Scontrol_.incl.pl1, */ 6 9 /* and lib_args_.incl.pl1 define the complete set of structures required as input to */ 6 10 /* the lib_descriptor_ subroutine. This subroutine is called by all of the library */ 6 11 /* descriptor commands to obtain information about entries in a library. */ 6 12 /* */ 6 13 /* If a switch is on, then the corresponding information in the node is valid, or */ 6 14 /* is requested for output. */ 6 15 /* */ 6 16 /* S__t_a_t_u_s */ 6 17 /* */ 6 18 /* 0) Created on: April 8, 1975 by G. C. Dixon */ 6 19 /* */ 6 20 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 21 6 22 6 23 dcl 1 Svalid_req aligned based, 6 24 2 primary_name bit(1) unal, /* switch: output includes primary name */ 6 25 2 matching_names bit(1) unal, /* switch: output includes matching names */ 6 26 2 names bit(1) unal, /* switch: output includes all names */ 6 27 6 28 2 pathname bit(1) unal, /* switch: output include pathname of node target */ 6 29 2 kids bit(1) unal, /* switch: children nodes (inferior) exist */ 6 30 2 kids_error bit(1) unal, /* switch: error occurred obtaining kid's info */ 6 31 6 32 2 type bit(1) unal, /* switch: type */ 6 33 2 mode bit(1) unal, /* switch: user's access mode to node target */ 6 34 2 safety bit(1) unal, /* switch: safety switch setting */ 6 35 6 36 2 aim bit(1) unal, /* switch: Access Isolation Mechanism switches */ 6 37 2 copy bit(1) unal, /* switch: copy-on-write switch setting */ 6 38 2 unique_id bit(1) unal, /* switch: unique identifier */ 6 39 6 40 2 author bit(1) unal, /* switch: author of node target */ 6 41 2 dtem bit(1) unal, /* switch: date attributes modified */ 6 42 2 dtd bit(1) unal, /* switch: date dumped */ 6 43 6 44 2 link_target bit(1) unal, /* switch: target pathname of link node */ 6 45 2 dtm bit(1) unal, /* switch: date modified */ 6 46 2 dtu bit(1) unal, /* switch: date used */ 6 47 6 48 2 rb bit(1) unal, /* switch: ring brackets */ 6 49 2 access_class bit(1) unal, /* switch: AIM access class */ 6 50 2 records_used bit(1) unal, /* switch: records used */ 6 51 6 52 2 current_length bit(1) unal, /* switch: current length */ 6 53 2 max_length bit(1) unal, /* switch: maximum length */ 6 54 2 msf_indicator bit(1) unal, /* switch: count of MSF components. */ 6 55 6 56 2 bit_count bit(1) unal, /* switch: bit count */ 6 57 2 bit_count_author bit(1) unal, /* switch: bit count author. */ 6 58 2 offset bit(1) unal, /* switch: offset from segment base */ 6 59 6 60 2 entry_bound bit(1) unal, /* switch: call limit for gate node */ 6 61 2 lvid bit(1) unal, /* switch: logical volume id */ 6 62 2 pvid bit(1) unal, /* switch: physical volume id */ 6 63 6 64 2 quota bit(1) unal, /* switch: directory quota information */ 6 65 2 acl bit(1) unal, /* switch: ACL */ 6 66 2 iacl bit(1) unal, /* switch: initial ACLs */ 6 67 6 68 2 dtc bit(1) unal, /* switch: date-time compiled */ 6 69 2 compiler_name bit(1) unal, /* switch: name of compiler */ 6 70 2 compiler_version bit(1) unal, /* switch: compiler version number */ 6 71 6 72 2 compiler_options bit(1) unal, /* switch: compiler options info */ 6 73 2 object_info bit(1) unal, /* switch: other object segment info */ 6 74 2 not_ascii bit(1) unal, /* switch: contents is not printable */ 6 75 6 76 2 user bit(1) unal, /* switch: user-defined node information */ 6 77 2 root_search_proc bit(1) unal, /* switch: root search procedure info. */ 6 78 2 prev_mode bit(1) unal, /* switch: user's previous acces mode set. */ 6 79 2 pad bit(26) unal, 6 80 6 81 2 delete bit(1) unal, /* switch: on (for lcln) if node to be deleted. */ 6 82 6 83 2 cross_ref bit(1) unal, /* switch: cross-reference all names */ 6 84 2 level bit(1) unal, /* switch: output status tree level number */ 6 85 2 new_line bit(1) unal; /* switch: output begins with newline char */ 6 86 6 87 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 88 /* */ 6 89 /* The following declarations define a series of bit strings to be overlaid by */ 6 90 /* structures which are exactly like Svalid_req above, except for their level 1 name. */ 6 91 /* These structures are used throughout the library descriptor commands and subroutines. */ 6 92 /* */ 6 93 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 94 6 95 6 96 dcl 1 S aligned based (addr(Srequirements)) like Svalid_req, 6 97 Srequirements bit(72) aligned; 6 98 6 99 /* END OF: lib_Svalid_req_.incl.pl1 * * * * * * * * * * * * * * * * */ 5 341 5 342 5 343 dcl 1 Svalid aligned based(addr(node.Svalid)) like Svalid_req, 5 344 1 Sreq aligned based(addr(node.Sreq)) like Svalid_req; 5 345 7 1 /* START OF: lib_Scontrol_.incl.pl1 * * * * * * * * * * * * * * * * */ 7 2 7 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 4 /* */ 7 5 /* N__a_m_e: lib_Scontrol_.incl.pl1 */ 7 6 /* */ 7 7 /* This include segment defines the control switches used by library descriptor */ 7 8 /* commands and subroutines. These switches control the amount of information which is */ 7 9 /* attached to each node of the tree by lib_get_tree_. This segment, lib_args_.incl.pl1, */ 7 10 /* and lib_Svalid_req_.incl.pl1 define the complete set of structures required as input */ 7 11 /* to the lib_descriptor_ subroutine. */ 7 12 /* */ 7 13 /* S__t_a_t_u_s */ 7 14 /* */ 7 15 /* 0) Created on: April 8, 1975 by G. C. Dixon */ 7 16 /* 1) Modified on: October 24, 1983 by Jim Lippard to add page_length, first_match */ 7 17 /* */ 7 18 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 19 7 20 dcl 1 Sc aligned based (addr (Scontrol)), 7 21 2 acl bit(1) unal, /* switch: return ACL for library entries. */ 7 22 2 all_status bit(1) unal, /* switch: return extra status information. */ 7 23 2 chase bit(1) unal, /* switch: link entries are to be chased. */ 7 24 7 25 2 check_archive bit(1) unal, /* switch: see if contents of entry is archive. */ 7 26 2 check_ascii bit(1) unal, /* switch: see if contents of entry is ascii. */ 7 27 2 components bit(1) unal, /* switch: return info about parent of terminal */ 7 28 /* nodes of the tree, and about all the */ 7 29 /* nodes below the parent. */ 7 30 7 31 2 container bit(1) unal, /* switch: return info about parent of terminal */ 7 32 /* nodes of the tree. */ 7 33 2 default bit(1) unal, /* switch: use default requirement switch settings*/ 7 34 2 iacl bit(1) unal, /* switch: return initial ACLs for library entries*/ 7 35 7 36 2 object_info bit(1) unal, /* switch: return object info for object segments.*/ 7 37 2 quota bit(1) unal, /* switch: return quota information. */ 7 38 2 retain bit(1) unal, /* switch: print information about nodes awaiting */ 7 39 /* deletion. */ 7 40 7 41 2 pad bit(10) unal, 7 42 7 43 2 first_match bit(1) unal, /* switch: stop after first match */ 7 44 2 page_length bit(1) unal, /* switch: page length of output */ 7 45 7 46 2 delete bit(1) unal, /* switch: delete library entries */ 7 47 2 descriptor bit(1) unal, /* switch: library descriptor */ 7 48 2 exclude bit(1) unal, /* switch: exclusion search names. */ 7 49 7 50 2 footing bit(1) unal, /* switch: footing for output pages. */ 7 51 2 heading bit(1) unal, /* switch: heading for 1st output page. */ 7 52 2 into_path bit(1) unal, /* switch: path into which entries are fetched. */ 7 53 7 54 2 library bit(1) unal, /* switch: library names */ 7 55 2 list bit(1) unal, /* switch: list library entries */ 7 56 2 long bit(1) unal, /* switch: long output format required. */ 7 57 7 58 2 output_file bit(1) unal, /* switch: pathname of output file */ 7 59 2 search_names bit(1) unal, /* switch: search names */ 7 60 2 time bit(1) unal, /* switch: grace time for deletion of entries. */ 7 61 Scontrol bit(36) aligned; /* switches: aligned copy of control switches. */ 7 62 7 63 /* END OF: lib_Scontrol_.incl.pl1 * * * * * * * * * * * * * * * * */ 5 346 5 347 5 348 5 349 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 350 /* */ 5 351 /* The following entry type attributes have been defined. Note that the types */ 5 352 /* for segments, archive components, and msf components all have the characteristic */ 5 353 /* that: mod (type, 2) = 1; */ 5 354 /* */ 5 355 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 356 5 357 5 358 dcl (Tlink init (0), 5 359 Tsegment init (1), 5 360 Tdirectory init (2), 5 361 Tmsf init (3), 5 362 Tmsf_comp init (4), 5 363 Tarchive init (5), 5 364 Tarchive_comp init (6)) fixed bin(17) int static options(constant); 5 365 5 366 5 367 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 368 /* */ 5 369 /* The following character string arrays identify each entry type attribute by name. */ 5 370 /* Both brief and long string arrays are provided. */ 5 371 /* */ 5 372 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 373 5 374 dcl node_type (0:6) char(32) varying aligned int static options(constant) init ( 5 375 "link", 5 376 "segment", 5 377 "directory", 5 378 "multisegment file", 5 379 "multi-segment file component", 5 380 "archive", 5 381 "archive component"), 5 382 brief_node_type (0:6) char(12) varying aligned int static options(constant) init ( 5 383 "link", 5 384 "segment", 5 385 "directory", 5 386 "msf", 5 387 "msf comp", 5 388 "archive", 5 389 "arch comp"); 5 390 5 391 5 392 /* END OF: lib_node_.incl.pl1 * * * * * * * * * * * * * * * * */ 365 366 367 368 end library_descriptor; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/15/84 0750.0 library_descriptor.pl1 >special_ldd>on>6588>library_descriptor.pl1 359 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 361 3 02/15/84 0754.6 lib_based_args_.incl.pl1 >special_ldd>on>6588>lib_based_args_.incl.pl1 363 4 01/05/79 1321.1 lib_fcb_.incl.pl1 >ldd>include>lib_fcb_.incl.pl1 365 5 08/16/79 1752.9 lib_node_.incl.pl1 >ldd>include>lib_node_.incl.pl1 5-341 6 02/28/77 1409.3 lib_Svalid_req_.incl.pl1 >ldd>include>lib_Svalid_req_.incl.pl1 5-346 7 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. C 11 000566 automatic fixed bin(35,0) array level 3 dcl 2-22 set ref 173* 190* 276 Dnodes based structure level 1 unaligned dcl 5-245 EXCLUDE 024044 automatic structure level 1 dcl 2-38 set ref 199* Eend_page 14 based entry variable level 2 dcl 4-3 set ref 295* False constant bit(1) initial dcl 80 ref 100 Iarg_list 14 based fixed bin(17,0) level 2 dcl 1-23 set ref 196* LIBRARY 000566 automatic structure level 1 dcl 2-22 set ref 199* 208 287 Larg 000100 automatic fixed bin(17,0) dcl 18 set ref 146* 147 Larg_list 15 based fixed bin(17,0) level 2 dcl 1-23 set ref 197* Lkey 000101 automatic fixed bin(17,0) dcl 18 set ref 114* 115 316* 321 321 326 326 332 332 337 337 Lret 000102 automatic fixed bin(17,0) dcl 18 set ref 98* 103 140 221 222 223 227 N 5 based fixed bin(17,0) level 3 in structure "Dnodes" dcl 5-245 in procedure "lds" ref 212 301 N based fixed bin(17,0) level 2 in structure "library" dcl 3-22 in procedure "lds" ref 262 N based fixed bin(17,0) level 2 in structure "starname" dcl 3-32 in procedure "lds" ref 265 N 002373 automatic fixed bin(17,0) level 2 in structure "STARNAME" dcl 2-30 in procedure "lds" set ref 231 244 N 000566 automatic fixed bin(17,0) level 2 in structure "LIBRARY" dcl 2-22 in procedure "lds" set ref 171* 188* 276 Nargs 000103 automatic fixed bin(17,0) dcl 18 set ref 98* 109* 112 134 143 145 197 PDnodes 045532 automatic pointer dcl 5-245 set ref 206* 207* 209* 212 213 228* 285* 286* 288* 301 302 305* 351 351* Parea 000010 internal static pointer initial dcl 80 set ref 203 203* 209* 284 284* 288* Parg 000104 automatic pointer dcl 18 set ref 146* 147 Parg_list 12 based pointer level 2 dcl 1-23 set ref 195* Parg_struc 045516 automatic pointer dcl 1-21 set ref 127* 137 138 140 147 149 150 154 161 162 163 166 169 170 175 178 180 183 184 185 186 187 193 194 195 196 197 198 199 199 209 234 239 246 248 288 342 347 350 354 Pexclude 045524 automatic pointer dcl 3-50 set ref 234* 239* 246* Pfcb 045526 automatic pointer dcl 4-15 set ref 291* 292 293 294 295 296 297 298 299 299 300 303 303 Piocb 12 based pointer level 2 dcl 4-3 set ref 294* 299* Pkey 000106 automatic pointer dcl 18 set ref 114* 115 317* 317 321 326 332 337 Plibrary 045520 automatic pointer dcl 3-29 set ref 208* 209* 234* 239* 246* 262 264* 287* 288* 303* 350* Pnode 045530 automatic pointer dcl 5-69 set ref 213* 214* 302* 303* Pret 000110 automatic pointer dcl 18 set ref 98* 103 140 221 222 222 223 223 227 227 227 Pstarname 045522 automatic pointer dcl 3-40 set ref 234* 239* 246* 265 267* S based structure level 1 dcl 6-96 STARNAME 002373 automatic structure level 1 dcl 2-30 set ref 199* Sc based structure level 1 dcl 7-20 Sc_allowed based structure level 1 dcl 1-51 Sc_init based structure level 1 dcl 1-53 Scommand 000112 automatic bit(1) dcl 18 set ref 100* 106* 121 138 218 226 321 Scontrol 045536 automatic bit(36) dcl 7-20 set ref 199* Scontrol_allowed 24 based bit(36) level 2 dcl 1-23 set ref 162* 166 169 175 178 180 183 Scontrol_initial 27 based bit(36) level 2 dcl 1-23 set ref 163* 170 187 Sreq_allowed based structure level 1 dcl 1-47 Srequirements 045534 automatic bit(72) dcl 6-96 set ref 199* 209* 273 273 273 276 278 279 280 281 282 288* 303* Srequirements_allowed 22 based bit(72) level 2 dcl 1-23 set ref 154* 184 185 186 Srequirements_initial 25 based bit(72) level 2 dcl 1-23 set ref 161* Sunsupported 000113 automatic bit(1) unaligned dcl 18 set ref 234* 239* 246* 258 Svalid_req based structure level 1 dcl 6-23 True constant bit(1) initial dcl 80 ref 106 166 169 170 175 178 180 183 184 185 186 187 276 278 279 280 281 282 V 1 002373 automatic char(32) array level 3 in structure "STARNAME" packed unaligned dcl 2-30 in procedure "lds" set ref 245 248* V 1 000566 automatic char(32) array level 3 in structure "LIBRARY" packed unaligned dcl 2-22 in procedure "lds" set ref 172* 189* Varg_struc_1 constant fixed bin(17,0) initial dcl 1-55 ref 193 Vfcb_1 constant fixed bin(17,0) initial dcl 4-16 ref 292 active_fnc_err_ 000012 constant entry external dcl 54 ref 101 addr builtin function dcl 49 ref 127 166 169 170 175 178 180 183 184 185 186 187 199 199 208 213 273 273 273 276 278 279 280 281 282 287 291 302 303 303 317 allowed_keys 000036 constant varying char(8) initial array dcl 80 ref 115 115 117 arg based char unaligned dcl 41 ref 147 arg_struc based structure level 1 unaligned dcl 1-23 set ref 199 199 arg_struc_temp 000114 automatic structure level 1 unaligned dcl 18 set ref 127 cleanup 000560 stack reference condition dcl 49 ref 207 286 code 000433 automatic fixed bin(35,0) dcl 18 set ref 98* 99 150* 151 199* 200 209* 211 234* 237 239* 246* 248* 288* 290 299* 314* 319* 321* 326* 332* 342* 347* 354* com_err_ 000014 constant entry external dcl 54 ref 107 command_name 000423 automatic char(32) unaligned dcl 18 set ref 234* 239* 245* 246* 258* 261* cu_$af_arg_ptr 000016 constant entry external dcl 54 ref 102 cu_$af_return_arg 000020 constant entry external dcl 54 ref 98 cu_$arg_count 000022 constant entry external dcl 54 ref 109 cu_$arg_list_ptr 000024 constant entry external dcl 54 ref 195 cu_$arg_ptr 000026 constant entry external dcl 54 ref 108 descriptor 30 based varying char(168) level 2 in structure "arg_struc" dcl 1-23 in procedure "lds" set ref 137* 138* 140 147* 149* 150* 209* 234* 239* 246* 288* 342* 347* 354* descriptor 0(25) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "lds" set ref 169* 178* 183* dimension builtin function dcl 49 ref 115 117 dir 000434 automatic varying char(168) dcl 18 set ref 214* 215 215* 215 217* 217 218* 221 222 ent 000507 automatic varying char(32) dcl 18 set ref 214* 215 217 error 000520 automatic entry variable dcl 18 set ref 101* 107* 198 248 321 326 332 337 342 347 354 error_table_$bad_arg 000062 external static fixed bin(35,0) dcl 80 ref 319 error_table_$wrong_no_of_args 000064 external static fixed bin(35,0) dcl 80 set ref 314 337* fcb based structure level 1 unaligned dcl 4-3 set ref 303 303 fcb_temp 000524 automatic structure level 1 unaligned dcl 18 set ref 291 get_arg 000552 automatic entry variable dcl 18 set ref 102* 108* 114 146 get_line_length_$switch 000030 constant entry external dcl 54 ref 299 get_system_free_area_ 000032 constant entry external dcl 54 ref 203 284 group 1 000566 automatic structure array level 2 in structure "LIBRARY" dcl 2-22 in procedure "lds" group 1 002373 automatic structure array level 2 in structure "STARNAME" dcl 2-30 in procedure "lds" header based structure level 2 unaligned dcl 5-245 i 000556 automatic fixed bin(17,0) dcl 18 set ref 115* 115* 117 119 132 164 201 212* 213* 237* 239* 244* 245 248* 301* 302* 337 ioa_ 000034 constant entry external dcl 54 ref 138 218 226 258 261 262 265 269 ioname 1 based char(32) level 2 packed unaligned dcl 4-3 set ref 293* iox_$user_output 000066 external static pointer dcl 80 set ref 264* 267* 294 key based char unaligned dcl 41 set ref 115 321* 326* 332* 337* length builtin function dcl 49 ref 221 221 227 lib_args_ 000036 constant entry external dcl 54 ref 199 lib_array_list_ 000040 constant entry external dcl 54 ref 264 267 lib_descriptor_$default_values 000042 constant entry external dcl 54 ref 234 239 246 lib_descriptor_$libraries 000044 constant entry external dcl 54 ref 209 288 lib_descriptor_$name 000046 constant entry external dcl 54 ref 137 lib_descriptor_$set_name 000050 constant entry external dcl 54 ref 150 lib_error_list_ 000052 constant entry external dcl 54 ref 350 lib_free_node_$array 000054 constant entry external dcl 54 ref 207 228 286 305 351 lib_node_path_ 000056 constant entry external dcl 54 ref 214 lib_output_node_$info 000060 constant entry external dcl 54 ref 303 library based structure level 1 dcl 3-22 in procedure "lds" library 0(30) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "lds" set ref 166* 180* library 0(30) based bit(1) level 2 in structure "Sc_init" packed unaligned dcl 1-53 in procedure "lds" set ref 170* 187* line_length 23 based fixed bin(17,0) level 2 dcl 4-3 set ref 299* line_no 24 based fixed bin(17,0) level 2 dcl 4-3 set ref 300* matching_names 0(01) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "lds" set ref 185* matching_names 0(01) based bit(1) level 2 in structure "S" packed unaligned dcl 6-96 in procedure "lds" set ref 273 278* names 0(02) based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "lds" set ref 184* names 0(02) based bit(1) level 2 in structure "S" packed unaligned dcl 6-96 in procedure "lds" ref 273 new_line 1(35) based bit(1) level 2 packed unaligned dcl 6-96 set ref 282* node based structure level 1 unaligned dcl 5-69 nodes 6 based structure array level 2 unaligned dcl 5-245 set ref 213 302 null builtin function dcl 49 ref 203 206 284 285 351 page_length 20 based fixed bin(17,0) level 2 dcl 4-3 set ref 296* page_no 22 based fixed bin(17,0) level 2 dcl 4-3 set ref 298* page_text_length 21 based fixed bin(17,0) level 2 dcl 4-3 set ref 297* pathname 0(03) based bit(1) level 2 packed unaligned dcl 6-96 set ref 280* primary_name based bit(1) level 2 in structure "Sreq_allowed" packed unaligned dcl 1-47 in procedure "lds" set ref 186* primary_name based bit(1) level 2 in structure "S" packed unaligned dcl 6-96 in procedure "lds" set ref 273 276* program 1 based varying char(32) level 2 dcl 1-23 set ref 194* 248* 350* progress 000557 automatic fixed bin(17,0) dcl 18 set ref 209* 234* 236 239* 246* 248 250 288* put_error 16 based entry variable level 2 dcl 1-23 set ref 198* ret based varying char dcl 41 set ref 103* 140* 221 222* 222 223* 223 227* 227 227 root_search_proc 1(04) based bit(1) level 2 packed unaligned dcl 6-96 set ref 281* search_names 0(34) based bit(1) level 2 packed unaligned dcl 1-51 set ref 175* starname based structure level 1 dcl 3-32 type 0(06) based bit(1) level 2 packed unaligned dcl 6-96 set ref 279* version based fixed bin(17,0) level 2 in structure "fcb" dcl 4-3 in procedure "lds" set ref 292* version based fixed bin(17,0) level 2 in structure "arg_struc" dcl 1-23 in procedure "lds" set ref 193* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. D based structure level 1 unaligned dcl 5-146 Dacl based structure level 1 unaligned dcl 5-153 Ddir_acl based structure level 1 unaligned dcl 5-172 Ddir_iacl based structure level 1 unaligned dcl 5-190 Diacl based structure level 1 unaligned dcl 5-209 Dnames based structure level 1 unaligned dcl 5-230 Dobj based structure level 1 unaligned dcl 5-263 Dsearch_proc based structure level 1 unaligned dcl 5-311 Duser based structure level 1 unaligned dcl 5-324 Luser automatic fixed bin(17,0) dcl 5-324 Nacls automatic fixed bin(17,0) dcl 5-153 Ndir_acls automatic fixed bin(17,0) dcl 5-172 Ndir_iacls automatic fixed bin(17,0) dcl 5-190 Niacls automatic fixed bin(17,0) dcl 5-209 Nnames automatic fixed bin(17,0) dcl 5-230 Nnodes automatic fixed bin(17,0) dcl 5-245 PD automatic pointer dcl 5-146 PDacl automatic pointer dcl 5-153 PDdir_acl automatic pointer dcl 5-172 PDdir_iacl automatic pointer dcl 5-190 PDiacl automatic pointer dcl 5-209 PDnames automatic pointer dcl 5-230 PDobj automatic pointer dcl 5-263 PDsearch_proc automatic pointer dcl 5-311 PDuser automatic pointer dcl 5-324 Sreq based structure level 1 dcl 5-343 Sreq_init based structure level 1 dcl 1-49 Svalid based structure level 1 dcl 5-343 Tacl internal static fixed bin(17,0) initial dcl 5-153 Tarchive internal static fixed bin(17,0) initial dcl 5-358 Tarchive_comp internal static fixed bin(17,0) initial dcl 5-358 Tdir_acl internal static fixed bin(17,0) initial dcl 5-172 Tdir_iacl internal static fixed bin(17,0) initial dcl 5-190 Tdirectory internal static fixed bin(17,0) initial dcl 5-358 Tiacl internal static fixed bin(17,0) initial dcl 5-209 Tlink internal static fixed bin(17,0) initial dcl 5-358 Tmsf internal static fixed bin(17,0) initial dcl 5-358 Tmsf_comp internal static fixed bin(17,0) initial dcl 5-358 Tnames internal static fixed bin(17,0) initial dcl 5-230 Tnodes internal static fixed bin(17,0) initial dcl 5-245 Tobj internal static fixed bin(17,0) initial dcl 5-263 Tsearch_proc internal static fixed bin(17,0) initial dcl 5-311 Tsegment internal static fixed bin(17,0) initial dcl 5-358 Tuser internal static fixed bin(17,0) initial dcl 5-324 Vacl_1 internal static fixed bin(17,0) initial dcl 5-153 Vdir_acl_1 internal static fixed bin(17,0) initial dcl 5-172 Vdir_iacl_1 internal static fixed bin(17,0) initial dcl 5-190 Viacl_1 internal static fixed bin(17,0) initial dcl 5-209 Vnames_1 internal static fixed bin(17,0) initial dcl 5-230 Vnodes_1 internal static fixed bin(17,0) initial dcl 5-245 Vobj_1 internal static fixed bin(17,0) initial dcl 5-263 Vsearch_proc_1 internal static fixed bin(17,0) initial dcl 5-311 Vuser_1 internal static fixed bin(17,0) initial dcl 5-324 brief_node_type internal static varying char(12) initial array dcl 5-374 exclude based structure level 1 dcl 3-42 link_node based structure level 1 unaligned dcl 5-30 node_type internal static varying char(32) initial array dcl 5-374 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_DESCRIPTOR 002466 constant label dcl 354 ref 236 250 BAD_LIB 002370 constant label dcl 347 ref 211 290 BAD_SET 002332 constant label dcl 342 set ref 151 CHECK_AF 000000 constant label array(9) dcl 121 ref 119 DO_ARGS 000765 constant label dcl 193 ref 174 179 191 GIVE_HELP 002066 constant label dcl 314 ref 112 GIVE_HELP_ 002100 constant label dcl 321 ref 318 GIVE_HELP_1 002075 constant label dcl 319 set ref 117 INVALID_ACTIVE_FCN 002202 constant label dcl 332 ref 121 STEP_1 000011 constant label array(9) dcl 134 ref 132 STEP_2 000022 constant label array(4:9) dcl 166 ref 164 STEP_3 000030 constant label array(4:9) dcl 203 ref 201 WRONG_NO_OF_ARGS 002242 constant label dcl 337 set ref 134 143 lds 000406 constant entry external dcl 15 library_descriptor 000415 constant entry external dcl 15 no_end_page 002721 constant entry internal dcl 309 ref 295 print_defaults 002524 constant entry internal dcl 256 ref 238 251 NAME DECLARED BY CONTEXT OR IMPLICATION. substr builtin function ref 227 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3262 3352 2735 3272 Length 3750 2735 70 362 324 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lds 19459 external procedure is an external procedure. on unit on line 207 68 on unit print_defaults internal procedure shares stack frame of external procedure lds. on unit on line 286 68 on unit no_end_page 64 internal procedure is assigned to an entry variable. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 Parea lds STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lds 000100 Larg lds 000101 Lkey lds 000102 Lret lds 000103 Nargs lds 000104 Parg lds 000106 Pkey lds 000110 Pret lds 000112 Scommand lds 000113 Sunsupported lds 000114 arg_struc_temp lds 000423 command_name lds 000433 code lds 000434 dir lds 000507 ent lds 000520 error lds 000524 fcb_temp lds 000552 get_arg lds 000556 i lds 000557 progress lds 000566 LIBRARY lds 002373 STARNAME lds 024044 EXCLUDE lds 045516 Parg_struc lds 045520 Plibrary lds 045522 Pstarname lds 045524 Pexclude lds 045526 Pfcb lds 045530 Pnode lds 045532 PDnodes lds 045534 Srequirements lds 045536 Scontrol lds THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_var_desc call_var call_ext_out_desc call_ext_out return enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_arg_ptr cu_$af_return_arg cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr get_line_length_$switch get_system_free_area_ ioa_ lib_args_ lib_array_list_ lib_descriptor_$default_values lib_descriptor_$libraries lib_descriptor_$name lib_descriptor_$set_name lib_error_list_ lib_free_node_$array lib_node_path_ lib_output_node_$info THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$wrong_no_of_args iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 15 000405 98 000422 99 000437 100 000441 101 000442 102 000447 103 000452 104 000453 106 000454 107 000456 108 000463 109 000466 112 000475 114 000477 115 000520 116 000536 117 000540 119 000543 121 000544 127 000546 132 000551 134 000552 137 000555 138 000565 140 000613 141 000626 143 000627 145 000632 146 000633 147 000653 148 000666 149 000667 150 000670 151 000702 152 000704 154 000705 161 000710 162 000712 163 000713 164 000714 166 000716 169 000720 170 000722 171 000724 172 000726 173 000731 174 000733 175 000734 178 000736 179 000740 180 000741 183 000743 184 000745 185 000747 186 000751 187 000753 188 000755 189 000757 190 000762 191 000764 193 000765 194 000767 195 000774 196 001004 197 001010 198 001012 199 001016 200 001044 201 001046 203 001050 206 001064 207 001067 208 001114 209 001117 211 001144 212 001146 213 001160 214 001164 215 001200 217 001220 218 001255 221 001303 222 001313 223 001326 225 001335 226 001337 227 001354 228 001362 229 001373 231 001374 234 001376 236 001432 237 001435 238 001442 239 001443 241 001500 242 001502 244 001503 245 001514 246 001521 248 001553 250 001612 251 001614 252 001615 254 001617 273 001620 276 001627 278 001640 279 001642 280 001644 281 001646 282 001650 284 001652 285 001666 286 001671 287 001716 288 001721 290 001746 291 001750 292 001753 293 001755 294 001760 295 001764 296 001767 297 001771 298 001772 299 001774 300 002007 301 002013 302 002024 303 002030 304 002053 305 002055 306 002065 314 002066 316 002071 317 002072 318 002074 319 002075 321 002100 326 002142 330 002201 332 002202 335 002241 337 002242 340 002331 342 002332 345 002367 347 002370 350 002425 351 002450 352 002465 354 002466 357 002523 256 002524 258 002526 261 002553 262 002577 264 002620 265 002641 267 002662 269 002703 271 002716 309 002720 311 002726 ----------------------------------------------------------- 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