COMPILATION LISTING OF SEGMENT library_pathname Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/15/84 0849.0 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 11 12 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 /* */ 14 /* Names: library_pathname, lpn */ 15 /* */ 16 /* This command/af is part of the Multics library descriptor tools. Given a library */ 17 /* descriptor name, a set of library names, and a set of star_names, it returns the */ 18 /* pathnames of library entries which match the star_names. Archive pathnames are */ 19 /* returned for library entries in archives. The default library descriptor name is set */ 20 /* (for a process) by the library_descriptor command. The defaults for library and */ 21 /* star_names (search_names) are specified for the library_info command (and for this */ 22 /* command/af) in each library descriptor. To list the defaults, use the command: */ 23 /* lds default library_info */ 24 /* */ 25 /* Status: */ 26 /* 0) Created: October, 1981 by G. C. Dixon */ 27 /* 1) Modified: October 11, 1983 by Jim Lippard to rtrim return pathnames and not say */ 28 /* anything about entries "eligible for deletion" and add -all_matches (-amch) and */ 29 /* -first_match (-fmch). */ 30 /* */ 31 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 32 33 library_pathname: 34 lpn: procedure; 35 36 dcl /* automatic variables */ 37 Lret fixed bin(21), 38 Nargs fixed bin, 39 Npaths fixed bin, 40 Ppaths ptr, 41 Pret ptr, 42 Scommand bit(1), 43 1 arg_struc_temp like arg_struc, /* storage for argument structure. */ 44 code fixed bin(35), /* a status code. */ 45 i fixed bin, /* a do-group index. */ 46 progress fixed bin init (0), /* integer indicating progress of our search. */ 47 /* 0 = search beginning. */ 48 /* 1 = finding library descriptor. */ 49 /* 2 = seeing if library_pathname command */ 50 /* supported by this descriptor. */ 51 /* 3 = getting default library names if user */ 52 /* specified none. */ 53 /* 4 = getting default search names if user */ 54 /* specified none. */ 55 /* 5 = allocating the root nodes of the tree. */ 56 /* 6 = searching each library root for entries */ 57 /* identified by the search names. */ 58 /* 7 = no entries matching search names found. */ 59 state char(7) varying; 60 61 62 dcl /* based variables */ 63 area area based (Parea), 64 paths (Npaths) char(200) based(Ppaths), 65 ret char(Lret) varying based(Pret); 66 67 dcl (addr, length, min, null, rtrim, substr) 68 builtin; 69 70 dcl cleanup condition; 71 72 dcl /* Entries Called */ 73 active_fnc_err_ entry() options(variable), 74 com_err_ entry options(variable), 75 cu_$af_return_arg entry (fixed bin, ptr, fixed bin(21), fixed bin(35)), 76 cu_$arg_list_ptr entry returns(ptr), 77 err entry options(variable) variable, 78 get_system_free_area_ entry() returns(ptr), 79 ioa_ entry options(variable), 80 lib_args_ entry (1 aligned like LIBRARY, 1 aligned like STARNAME, 1 aligned like STARNAME, bit(72) aligned, 81 bit(36) aligned, ptr, fixed bin(35)), 82 lib_error_list_$return_string entry (char(32) var, ptr) returns(char(*) var), 83 lib_pathname_ entry (char(168) var, ptr, ptr, ptr, bit (72) aligned, bit (36) aligned, ptr, ptr, 84 fixed bin, fixed bin, fixed bin(35)), 85 requote_string_ entry (char(*)) returns(char(*)); 86 87 dcl /* static variables */ 88 (FALSE init("0"b), 89 TRUE init("1"b)) bit(1) int static options(constant), 90 Parea ptr int static init(null); 91 92 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 93 94 95 call cu_$af_return_arg (Nargs, Pret, Lret, code); 96 if code = 0 then do; 97 Scommand = FALSE; 98 err = active_fnc_err_; 99 ret = ""; 100 end; 101 else do; 102 Scommand = TRUE; 103 err = com_err_; 104 end; 105 106 Parg_struc = addr(arg_struc_temp); /* Initialize argument processing structure. */ 107 arg_struc.version = Varg_struc_1; 108 arg_struc.program = "library_pathname"; 109 arg_struc.Parg_list = cu_$arg_list_ptr(); 110 arg_struc.Iarg_list = 1; 111 arg_struc.Larg_list = Nargs; 112 arg_struc.put_error = err; 113 arg_struc.Srequirements_allowed = ""b; 114 arg_struc.Srequirements_initial = ""b; 115 arg_struc.Scontrol_allowed = ""b; 116 arg_struc.Scontrol_initial = ""b; 117 118 Sc_allowed.descriptor = TRUE; /* Mark Sc bits- show which ctl args allowed. */ 119 Sc_allowed.library = TRUE; 120 Sc_allowed.search_names = TRUE; 121 Sc_allowed.first_match = TRUE; 122 123 if ^Scommand then Sc_init.first_match = TRUE; 124 125 call lib_args_ (LIBRARY, STARNAME, EXCLUDE, Srequirements, Scontrol, addr(arg_struc), code); 126 if code ^= 0 then return; /* call subr to process all arguments. */ 127 128 Plibrary = addr(LIBRARY); 129 Pstarname = addr(STARNAME); 130 Pexclude = addr(EXCLUDE); 131 if Parea = null then 132 Parea = get_system_free_area_(); 133 134 Ppaths = null; 135 on cleanup call janitor(); 136 137 call lib_pathname_ (arg_struc.descriptor, Plibrary, Pstarname, Pexclude, Srequirements, Scontrol, Parea, Ppaths, Npaths, progress, code); 138 if code ^= 0 then go to BAD_SEARCH; 139 140 if Scommand then 141 call ioa_ ("^(^a^/^)", paths); 142 else do; 143 do i = 1 to Npaths; 144 ret = ret || requote_string_ (rtrim(paths(i))); 145 ret = ret || " "; 146 end; 147 ret = substr (ret, 1, length (ret) - 1); 148 end; 149 150 FINISH: call janitor; /* clean up. */ 151 return; 152 153 154 janitor: proc; 155 156 if Ppaths ^= null then 157 free paths in (area); 158 Ppaths = null; 159 160 end janitor; 161 162 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 163 164 BAD_SEARCH: 165 progress = min (progress, 7); 166 go to BAD_S (progress); 167 168 BAD_S(0): call err (code, arg_struc.program, "^/ While calling lib_descriptor_$map."); 169 go to FINISH; 170 171 BAD_S(1): call err (code, arg_struc.program, "^/ While finding the '^R^a^B' library descriptor.", 172 arg_struc.descriptor); 173 go to FINISH; 174 175 BAD_S(2): call err (code, arg_struc.program, 176 "^/ Library descriptor '^R^a^B' does not implement^/ the ^a command.", 177 arg_struc.descriptor, arg_struc.program); 178 go to FINISH; 179 180 BAD_S(3): state = "library"; 181 go to NO_DEFAULT_NAMES; 182 183 BAD_S(4): state = "search"; 184 NO_DEFAULT_NAMES: 185 call err (code, arg_struc.program, 186 "^/ No ^a names were specified, and the '^R^a^B' 187 library descriptor does not define any default ^a names.", state, arg_struc.descriptor, state); 188 go to FINISH; 189 190 BAD_S(5): call err (code, arg_struc.program, "^/ While allocating the root nodes of the library tree."); 191 go to FINISH; 192 193 BAD_S(6): 194 NO_MATCH: call err (code, arg_struc.program, 195 "^/ While searching for entries in the library.^/ Descriptor:^-^5x^a^/^a^/^a", 196 arg_struc.descriptor, 197 lib_error_list_$return_string ("library name", Plibrary), 198 lib_error_list_$return_string ("search name", Pstarname)); 199 go to FINISH; 200 201 BAD_S(7): call err (code, arg_struc.program, "^/ No libraries matching the library name(s) could be found. 202 Descriptor:^-^5x^a^/^a", arg_struc.descriptor, 203 lib_error_list_$return_string ("library name", Plibrary)); 204 go to FINISH; 205 206 /* * * * * * * * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * */ 207 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 * * * * * * * * * * * * * * * * */ 208 209 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 * * * * * * * * * * * * * * * * */ 210 211 4 1 /* START OF: lib_Scontrol_.incl.pl1 * * * * * * * * * * * * * * * * */ 4 2 4 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 4 /* */ 4 5 /* N__a_m_e: lib_Scontrol_.incl.pl1 */ 4 6 /* */ 4 7 /* This include segment defines the control switches used by library descriptor */ 4 8 /* commands and subroutines. These switches control the amount of information which is */ 4 9 /* attached to each node of the tree by lib_get_tree_. This segment, lib_args_.incl.pl1, */ 4 10 /* and lib_Svalid_req_.incl.pl1 define the complete set of structures required as input */ 4 11 /* to the lib_descriptor_ subroutine. */ 4 12 /* */ 4 13 /* S__t_a_t_u_s */ 4 14 /* */ 4 15 /* 0) Created on: April 8, 1975 by G. C. Dixon */ 4 16 /* 1) Modified on: October 24, 1983 by Jim Lippard to add page_length, first_match */ 4 17 /* */ 4 18 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 4 19 4 20 dcl 1 Sc aligned based (addr (Scontrol)), 4 21 2 acl bit(1) unal, /* switch: return ACL for library entries. */ 4 22 2 all_status bit(1) unal, /* switch: return extra status information. */ 4 23 2 chase bit(1) unal, /* switch: link entries are to be chased. */ 4 24 4 25 2 check_archive bit(1) unal, /* switch: see if contents of entry is archive. */ 4 26 2 check_ascii bit(1) unal, /* switch: see if contents of entry is ascii. */ 4 27 2 components bit(1) unal, /* switch: return info about parent of terminal */ 4 28 /* nodes of the tree, and about all the */ 4 29 /* nodes below the parent. */ 4 30 4 31 2 container bit(1) unal, /* switch: return info about parent of terminal */ 4 32 /* nodes of the tree. */ 4 33 2 default bit(1) unal, /* switch: use default requirement switch settings*/ 4 34 2 iacl bit(1) unal, /* switch: return initial ACLs for library entries*/ 4 35 4 36 2 object_info bit(1) unal, /* switch: return object info for object segments.*/ 4 37 2 quota bit(1) unal, /* switch: return quota information. */ 4 38 2 retain bit(1) unal, /* switch: print information about nodes awaiting */ 4 39 /* deletion. */ 4 40 4 41 2 pad bit(10) unal, 4 42 4 43 2 first_match bit(1) unal, /* switch: stop after first match */ 4 44 2 page_length bit(1) unal, /* switch: page length of output */ 4 45 4 46 2 delete bit(1) unal, /* switch: delete library entries */ 4 47 2 descriptor bit(1) unal, /* switch: library descriptor */ 4 48 2 exclude bit(1) unal, /* switch: exclusion search names. */ 4 49 4 50 2 footing bit(1) unal, /* switch: footing for output pages. */ 4 51 2 heading bit(1) unal, /* switch: heading for 1st output page. */ 4 52 2 into_path bit(1) unal, /* switch: path into which entries are fetched. */ 4 53 4 54 2 library bit(1) unal, /* switch: library names */ 4 55 2 list bit(1) unal, /* switch: list library entries */ 4 56 2 long bit(1) unal, /* switch: long output format required. */ 4 57 4 58 2 output_file bit(1) unal, /* switch: pathname of output file */ 4 59 2 search_names bit(1) unal, /* switch: search names */ 4 60 2 time bit(1) unal, /* switch: grace time for deletion of entries. */ 4 61 Scontrol bit(36) aligned; /* switches: aligned copy of control switches. */ 4 62 4 63 /* END OF: lib_Scontrol_.incl.pl1 * * * * * * * * * * * * * * * * */ 212 213 5 1 /* START OF: lib_Svalid_req_.incl.pl1 * * * * * * * * * * * * * * * * */ 5 2 5 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 4 /* */ 5 5 /* N__a_m_e: lib_Svalid_req_.incl.pl1 */ 5 6 /* */ 5 7 /* This include segment defines the switches which request/validate the fields */ 5 8 /* in a status node produced by lib_get_tree_. This segment, lib_Scontrol_.incl.pl1, */ 5 9 /* and lib_args_.incl.pl1 define the complete set of structures required as input to */ 5 10 /* the lib_descriptor_ subroutine. This subroutine is called by all of the library */ 5 11 /* descriptor commands to obtain information about entries in a library. */ 5 12 /* */ 5 13 /* If a switch is on, then the corresponding information in the node is valid, or */ 5 14 /* is requested for output. */ 5 15 /* */ 5 16 /* S__t_a_t_u_s */ 5 17 /* */ 5 18 /* 0) Created on: April 8, 1975 by G. C. Dixon */ 5 19 /* */ 5 20 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 21 5 22 5 23 dcl 1 Svalid_req aligned based, 5 24 2 primary_name bit(1) unal, /* switch: output includes primary name */ 5 25 2 matching_names bit(1) unal, /* switch: output includes matching names */ 5 26 2 names bit(1) unal, /* switch: output includes all names */ 5 27 5 28 2 pathname bit(1) unal, /* switch: output include pathname of node target */ 5 29 2 kids bit(1) unal, /* switch: children nodes (inferior) exist */ 5 30 2 kids_error bit(1) unal, /* switch: error occurred obtaining kid's info */ 5 31 5 32 2 type bit(1) unal, /* switch: type */ 5 33 2 mode bit(1) unal, /* switch: user's access mode to node target */ 5 34 2 safety bit(1) unal, /* switch: safety switch setting */ 5 35 5 36 2 aim bit(1) unal, /* switch: Access Isolation Mechanism switches */ 5 37 2 copy bit(1) unal, /* switch: copy-on-write switch setting */ 5 38 2 unique_id bit(1) unal, /* switch: unique identifier */ 5 39 5 40 2 author bit(1) unal, /* switch: author of node target */ 5 41 2 dtem bit(1) unal, /* switch: date attributes modified */ 5 42 2 dtd bit(1) unal, /* switch: date dumped */ 5 43 5 44 2 link_target bit(1) unal, /* switch: target pathname of link node */ 5 45 2 dtm bit(1) unal, /* switch: date modified */ 5 46 2 dtu bit(1) unal, /* switch: date used */ 5 47 5 48 2 rb bit(1) unal, /* switch: ring brackets */ 5 49 2 access_class bit(1) unal, /* switch: AIM access class */ 5 50 2 records_used bit(1) unal, /* switch: records used */ 5 51 5 52 2 current_length bit(1) unal, /* switch: current length */ 5 53 2 max_length bit(1) unal, /* switch: maximum length */ 5 54 2 msf_indicator bit(1) unal, /* switch: count of MSF components. */ 5 55 5 56 2 bit_count bit(1) unal, /* switch: bit count */ 5 57 2 bit_count_author bit(1) unal, /* switch: bit count author. */ 5 58 2 offset bit(1) unal, /* switch: offset from segment base */ 5 59 5 60 2 entry_bound bit(1) unal, /* switch: call limit for gate node */ 5 61 2 lvid bit(1) unal, /* switch: logical volume id */ 5 62 2 pvid bit(1) unal, /* switch: physical volume id */ 5 63 5 64 2 quota bit(1) unal, /* switch: directory quota information */ 5 65 2 acl bit(1) unal, /* switch: ACL */ 5 66 2 iacl bit(1) unal, /* switch: initial ACLs */ 5 67 5 68 2 dtc bit(1) unal, /* switch: date-time compiled */ 5 69 2 compiler_name bit(1) unal, /* switch: name of compiler */ 5 70 2 compiler_version bit(1) unal, /* switch: compiler version number */ 5 71 5 72 2 compiler_options bit(1) unal, /* switch: compiler options info */ 5 73 2 object_info bit(1) unal, /* switch: other object segment info */ 5 74 2 not_ascii bit(1) unal, /* switch: contents is not printable */ 5 75 5 76 2 user bit(1) unal, /* switch: user-defined node information */ 5 77 2 root_search_proc bit(1) unal, /* switch: root search procedure info. */ 5 78 2 prev_mode bit(1) unal, /* switch: user's previous acces mode set. */ 5 79 2 pad bit(26) unal, 5 80 5 81 2 delete bit(1) unal, /* switch: on (for lcln) if node to be deleted. */ 5 82 5 83 2 cross_ref bit(1) unal, /* switch: cross-reference all names */ 5 84 2 level bit(1) unal, /* switch: output status tree level number */ 5 85 2 new_line bit(1) unal; /* switch: output begins with newline char */ 5 86 5 87 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 88 /* */ 5 89 /* The following declarations define a series of bit strings to be overlaid by */ 5 90 /* structures which are exactly like Svalid_req above, except for their level 1 name. */ 5 91 /* These structures are used throughout the library descriptor commands and subroutines. */ 5 92 /* */ 5 93 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 94 5 95 5 96 dcl 1 S aligned based (addr(Srequirements)) like Svalid_req, 5 97 Srequirements bit(72) aligned; 5 98 5 99 /* END OF: lib_Svalid_req_.incl.pl1 * * * * * * * * * * * * * * * * */ 214 215 216 end library_pathname; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/15/84 0749.8 library_pathname.pl1 >special_ldd>on>6588>library_pathname.pl1 208 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 210 3 02/15/84 0754.6 lib_based_args_.incl.pl1 >special_ldd>on>6588>lib_based_args_.incl.pl1 212 4 02/15/84 0754.6 lib_Scontrol_.incl.pl1 >special_ldd>on>6588>lib_Scontrol_.incl.pl1 214 5 02/28/77 1409.3 lib_Svalid_req_.incl.pl1 >ldd>include>lib_Svalid_req_.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 023720 automatic structure level 1 dcl 2-38 set ref 125* 130 FALSE constant bit(1) initial unaligned dcl 87 ref 97 Iarg_list 14 based fixed bin(17,0) level 2 dcl 1-23 set ref 110* LIBRARY 000442 automatic structure level 1 dcl 2-22 set ref 125* 128 Larg_list 15 based fixed bin(17,0) level 2 dcl 1-23 set ref 111* Lret 000100 automatic fixed bin(21,0) dcl 36 set ref 95* 99 144 145 147 Nargs 000101 automatic fixed bin(17,0) dcl 36 set ref 95* 111 Npaths 000102 automatic fixed bin(17,0) dcl 36 set ref 137* 140 143 156 Parea 000010 internal static pointer initial dcl 87 set ref 131 131* 137* 156 Parg_list 12 based pointer level 2 dcl 1-23 set ref 109* Parg_struc 045372 automatic pointer dcl 1-21 set ref 106* 107 108 109 110 111 112 113 114 115 116 118 119 120 121 123 125 125 137 168 171 171 175 175 175 184 184 190 193 193 201 201 Pexclude 045400 automatic pointer dcl 3-50 set ref 130* 137* Plibrary 045374 automatic pointer dcl 3-29 set ref 128* 137* 193* 201* Ppaths 000104 automatic pointer dcl 36 set ref 134* 137* 140 144 144 156 156 158* Pret 000106 automatic pointer dcl 36 set ref 95* 99 144 144 145 145 147 147 147 Pstarname 045376 automatic pointer dcl 3-40 set ref 129* 137* 193* STARNAME 002247 automatic structure level 1 dcl 2-30 set ref 125* 129 Sc based structure level 1 dcl 4-20 Sc_allowed based structure level 1 dcl 1-51 Sc_init based structure level 1 dcl 1-53 Scommand 000110 automatic bit(1) unaligned dcl 36 set ref 97* 102* 123 140 Scontrol 045402 automatic bit(36) dcl 4-20 set ref 125* 137* Scontrol_allowed 24 based bit(36) level 2 dcl 1-23 set ref 115* 118 119 120 121 Scontrol_initial 27 based bit(36) level 2 dcl 1-23 set ref 116* 123 Srequirements 045404 automatic bit(72) dcl 5-96 set ref 125* 137* Srequirements_allowed 22 based bit(72) level 2 dcl 1-23 set ref 113* Srequirements_initial 25 based bit(72) level 2 dcl 1-23 set ref 114* Svalid_req based structure level 1 dcl 5-23 TRUE constant bit(1) initial unaligned dcl 87 ref 102 118 119 120 121 123 Varg_struc_1 constant fixed bin(17,0) initial dcl 1-55 ref 107 active_fnc_err_ 000012 constant entry external dcl 72 ref 98 addr builtin function dcl 67 ref 106 118 119 120 121 123 125 125 128 129 130 area based area(1024) dcl 62 ref 156 arg_struc based structure level 1 unaligned dcl 1-23 set ref 125 125 arg_struc_temp 000112 automatic structure level 1 unaligned dcl 36 set ref 106 cleanup 000430 stack reference condition dcl 70 ref 135 code 000421 automatic fixed bin(35,0) dcl 36 set ref 95* 96 125* 126 137* 138 168* 171* 175* 184* 190* 193* 201* com_err_ 000014 constant entry external dcl 72 ref 103 cu_$af_return_arg 000016 constant entry external dcl 72 ref 95 cu_$arg_list_ptr 000020 constant entry external dcl 72 ref 109 descriptor 0(25) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "lpn" set ref 118* descriptor 30 based varying char(168) level 2 in structure "arg_struc" dcl 1-23 in procedure "lpn" set ref 137* 171* 175* 184* 193* 201* err 000436 automatic entry variable dcl 72 set ref 98* 103* 112 168 171 175 184 190 193 201 first_match 0(22) based bit(1) level 2 in structure "Sc_allowed" packed unaligned dcl 1-51 in procedure "lpn" set ref 121* first_match 0(22) based bit(1) level 2 in structure "Sc_init" packed unaligned dcl 1-53 in procedure "lpn" set ref 123* get_system_free_area_ 000022 constant entry external dcl 72 ref 131 i 000422 automatic fixed bin(17,0) dcl 36 set ref 143* 144 144* ioa_ 000024 constant entry external dcl 72 ref 140 length builtin function dcl 67 ref 147 lib_args_ 000026 constant entry external dcl 72 ref 125 lib_error_list_$return_string 000030 constant entry external dcl 72 ref 193 193 201 lib_pathname_ 000032 constant entry external dcl 72 ref 137 library 0(30) based bit(1) level 2 packed unaligned dcl 1-51 set ref 119* min builtin function dcl 67 ref 164 null builtin function dcl 67 ref 131 134 156 158 paths based char(200) array unaligned dcl 62 set ref 140* 144 144 156 program 1 based varying char(32) level 2 dcl 1-23 set ref 108* 168* 171* 175* 175* 184* 190* 193* 201* progress 000423 automatic fixed bin(17,0) initial dcl 36 set ref 36* 137* 164* 164 166 put_error 16 based entry variable level 2 dcl 1-23 set ref 112* requote_string_ 000034 constant entry external dcl 72 ref 144 ret based varying char dcl 62 set ref 99* 144* 144 145* 145 147* 147 147 rtrim builtin function dcl 67 ref 144 144 search_names 0(34) based bit(1) level 2 packed unaligned dcl 1-51 set ref 120* state 000424 automatic varying char(7) dcl 36 set ref 180* 183* 184* 184* substr builtin function dcl 67 ref 147 version based fixed bin(17,0) level 2 dcl 1-23 set ref 107* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. S based structure level 1 dcl 5-96 Sreq_allowed based structure level 1 dcl 1-47 Sreq_init based structure level 1 dcl 1-49 exclude based structure level 1 dcl 3-42 library based structure level 1 dcl 3-22 starname based structure level 1 dcl 3-32 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_S 000000 constant label array(0:7) dcl 168 ref 166 BAD_SEARCH 000737 constant label dcl 164 set ref 138 FINISH 000732 constant label dcl 150 ref 169 173 178 188 191 199 204 NO_DEFAULT_NAMES 001100 constant label dcl 184 set ref 181 NO_MATCH 001171 constant label dcl 193 janitor 001411 constant entry internal dcl 154 ref 135 150 library_pathname 000270 constant entry external dcl 33 lpn 000260 constant entry external dcl 33 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1616 1654 1437 1626 Length 2160 1437 36 267 156 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lpn 19346 external procedure is an external procedure. on unit on line 135 64 on unit janitor 64 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 Parea lpn STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lpn 000100 Lret lpn 000101 Nargs lpn 000102 Npaths lpn 000104 Ppaths lpn 000106 Pret lpn 000110 Scommand lpn 000112 arg_struc_temp lpn 000421 code lpn 000422 i lpn 000423 progress lpn 000424 state lpn 000436 err lpn 000442 LIBRARY lpn 002247 STARNAME lpn 023720 EXCLUDE lpn 045372 Parg_struc lpn 045374 Plibrary lpn 045376 Pstarname lpn 045400 Pexclude lpn 045402 Scontrol lpn 045404 Srequirements lpn THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_var_desc call_ext_out_desc call_ext_out call_int_this call_int_other return enable shorten_stack ext_entry int_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_return_arg cu_$arg_list_ptr get_system_free_area_ ioa_ lib_args_ lib_error_list_$return_string lib_pathname_ requote_string_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 36 000254 33 000257 95 000276 96 000314 97 000316 98 000317 99 000324 100 000325 102 000326 103 000330 106 000335 107 000340 108 000342 109 000347 110 000356 111 000362 112 000364 113 000370 114 000373 115 000375 116 000376 118 000377 119 000401 120 000403 121 000405 123 000407 125 000413 126 000441 128 000443 129 000446 130 000450 131 000452 134 000466 135 000470 137 000512 138 000550 140 000552 143 000607 144 000620 145 000712 146 000722 147 000724 150 000732 151 000736 164 000737 166 000744 168 000745 169 000773 171 000774 173 001026 175 001027 178 001064 180 001065 181 001072 183 001073 184 001100 188 001141 190 001142 191 001170 193 001171 199 001315 201 001317 204 001406 154 001410 156 001416 158 001427 160 001432 ----------------------------------------------------------- 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