COMPILATION LISTING OF SEGMENT le_complete_binary_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/86 1255.7 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 4* * * 5* *********************************************************** */ 6 7 /****^ HISTORY COMMENTS: 8* 1) change(86-08-12,Elhard), approve(86-08-12,MCR7505), 9* audit(86-12-10,DGHowe), install(86-12-10,MR12.0-1241): 10* Originally written to backpatch unresolved references and complete 11* generation of MSF objects by producing component 0. 12* END HISTORY COMMENTS */ 13 14 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 15 16 le_complete_binary_: 17 proc (lecp, /** components pointer (in ) */ 18 lebp); /** binaries pointer (in ) */ 19 20 /*** ****************************************************************/ 21 /*** */ 22 /*** Name: le_complete_binary_ */ 23 /*** Input: lecp, lebp */ 24 /*** Function: creates MSF component 0 and sets the ACL on the */ 25 /*** resulting MSF. Note that this is unnecessary if */ 26 /*** the output binary is not an MSF, since ocu_ will */ 27 /*** set the ACL correctly on exit, but the ACL on a */ 28 /*** MSF includes the directory and segment acls. */ 29 /*** Output: none */ 30 /*** */ 31 /*** ****************************************************************/ 32 33 /* parameters */ 34 35 dcl lecp ptr parameter; 36 dcl lebp ptr parameter; 37 38 /* procedures */ 39 40 dcl expand_pathname_ entry (char (*), char (*), char (*), 41 fixed bin (35)); 42 dcl fs_util_$add_acl_entries 43 entry (char (*), char (*), ptr, fixed bin (35)); 44 dcl get_group_id_$tag_star entry () returns (char (32)); 45 dcl get_system_free_area_ entry () returns (ptr); 46 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), 47 fixed bin (35)); 48 dcl hcs_$get_uid_seg entry (ptr, bit (36) aligned, fixed bin (35)); 49 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, 50 fixed bin (24), fixed bin (35)); 51 dcl le_backpatch_$execute entry (ptr, ptr); 52 dcl le_error_ entry options (variable); 53 dcl object_info_$brief entry (ptr, fixed bin (24), ptr, 54 fixed bin (35)); 55 56 /* external */ 57 58 dcl le_data_$caller external char (32) varying; 59 dcl 01 le_data_$symbol_table 60 aligned like std_symbol_header external; 61 dcl le_data_$version_number external fixed bin; 62 dcl le_data_$version_suffix external char (64) varying; 63 64 /* based */ 65 66 dcl 01 leb aligned based (lebp), 67 02 header aligned like le_binaries.header, 68 02 binary dim (0:0 refer (leb.n_binaries)) 69 like le_binaries.binary; 70 dcl sys_area area based (sys_areap); 71 72 /* automatic */ 73 74 dcl dn char (168) automatic; 75 dcl dnl fixed bin automatic; 76 dcl ec fixed bin (35) automatic; 77 dcl en char (32) automatic; 78 dcl i fixed bin automatic; 79 dcl 01 le_gen_info aligned like gen_info automatic; 80 dcl 01 my_acl aligned automatic, 81 02 version char (8) aligned, 82 02 count fixed bin, 83 02 entry aligned like general_acl_entry; 84 dcl 01 oi aligned like object_info automatic; 85 dcl sys_areap ptr automatic; 86 87 /* conditions */ 88 89 dcl cleanup condition; 90 91 /* builtin */ 92 93 dcl addr builtin; 94 dcl null builtin; 95 96 /* execute any backpatches that were required */ 97 98 call le_backpatch_$execute (lecp, lebp); 99 100 /* if the object is a single segment binary, we are done. If it is */ 101 /* an MSF, we have to create component 0. */ 102 103 if leb.n_binaries = 1 104 then return; 105 106 /* create the generator info */ 107 108 le_gen_info.gen_created = le_data_$symbol_table.object_created; 109 le_gen_info.generator = le_data_$caller; 110 le_gen_info.gen_number = le_data_$version_number; 111 le_gen_info.gen_version = le_data_$caller || le_data_$version_suffix; 112 113 sys_areap = get_system_free_area_ (); 114 115 component_count = leb.n_binaries; 116 117 /* make sure a release frees out allocated storage */ 118 119 component_listp = null; 120 121 on cleanup 122 begin; 123 if component_listp ^= null 124 then free component_list in (sys_area); 125 end; 126 127 /* allocate the component list */ 128 129 allocate component_list in (sys_area); 130 131 /* copy the segment pointers into it */ 132 133 do i = 1 to component_count; 134 component_list (i) = leb.binary (i).segp; 135 end; 136 137 /* create the MSF transfer vector */ 138 139 call ocu_$create_msf (component_listp, component_count, 140 addr (le_gen_info), ec); 141 142 /* free the component list */ 143 144 free component_list in (sys_area); 145 146 if ec ^= 0 147 then call le_error_ (LE_FATAL_ERROR, ec, 148 "^/Creating MSF transfer vector (component 0)."); 149 150 call hcs_$fs_get_path_name (leb.binary (1).segp, dn, dnl, en, ec); 151 152 /* get the binary info for component 0 */ 153 154 call initiate_file_ (dn, "0", R_ACCESS, leb.binary (0).segp, 155 leb.binary (0).bc, ec); 156 oi.version_number = object_info_version_2; 157 158 call object_info_$brief (leb.binary (0).segp, leb.binary (0).bc, 159 addr (oi), ec); 160 leb.binary (0).textp = oi.textp; 161 leb.binary (0).defnp = oi.defp; 162 leb.binary (0).linkp = oi.linkp; 163 leb.binary (0).symbp = oi.symbp; 164 leb.binary (0).statp = oi.statp; 165 leb.binary (0).textl = oi.tlng; 166 leb.binary (0).defnl = oi.dlng; 167 leb.binary (0).linkl = oi.llng; 168 leb.binary (0).symbl = oi.slng; 169 leb.binary (0).statl = oi.ilng; 170 171 call hcs_$get_uid_seg (leb.binary (0).segp, leb.binary (0).uid, ec); 172 173 /* set the ACL on the Multi-Segment File */ 174 175 call expand_pathname_ (dn, dn, en, ec); 176 177 my_acl.version = GENERAL_ACL_VERSION_1; 178 my_acl.count = 1; 179 my_acl.entry.access_name = get_group_id_$tag_star (); 180 my_acl.entry.mode = RE_ACCESS; 181 my_acl.entry.status_code = 0; 182 183 call fs_util_$add_acl_entries (dn, en, addr (my_acl), ec); 184 185 return; 186 187 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 188 189 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 190 191 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 192 2 1 /* Begin include file -- acl_structures.incl.pl1 BIM 3/82 */ 2 2 /* format: style3,indcomtxt,idind30 */ 2 3 2 4 declare acl_ptr pointer; 2 5 declare acl_count fixed bin; 2 6 2 7 declare 1 general_acl aligned based (acl_ptr), /* for fs_util_ */ 2 8 2 version char (8) aligned, 2 9 2 count fixed bin, 2 10 2 entries (acl_count refer (general_acl.count)) aligned like general_acl_entry; 2 11 2 12 declare 1 general_acl_entry based, 2 13 2 access_name character (32) unaligned, 2 14 2 mode bit (36) aligned, 2 15 2 status_code fixed bin (35); 2 16 2 17 2 18 declare 1 general_extended_acl aligned based (acl_ptr), /* for fs_util_ */ 2 19 2 version char (8) aligned, 2 20 2 count fixed bin, 2 21 2 entries (acl_count refer (general_extended_acl.count)) aligned like general_extended_acl_entry; 2 22 2 23 declare 1 general_extended_acl_entry aligned based, 2 24 2 access_name character (32) unaligned, 2 25 2 mode bit (36) aligned, 2 26 2 extended_mode bit (36) aligned, 2 27 2 status_code fixed bin (35); 2 28 2 29 2 30 declare 1 general_delete_acl aligned based (acl_ptr), /* for file_system_ */ 2 31 2 version char (8) aligned, 2 32 2 count fixed bin, 2 33 2 entries (acl_count refer (general_delete_acl.count)) aligned like delete_acl_entry; 2 34 2 35 declare 1 general_delete_acl_entry aligned based, 2 36 2 access_name character (32) unaligned, 2 37 2 status_code fixed bin (35); 2 38 2 39 2 40 declare 1 segment_acl aligned based (acl_ptr), 2 41 2 version fixed bin, 2 42 2 count fixed bin, 2 43 2 entries (acl_count refer (segment_acl.count)) aligned like segment_acl_entry; 2 44 2 45 declare 1 segment_acl_entry like general_extended_acl_entry aligned based; 2 46 declare 1 segment_acl_array (acl_count) aligned like segment_acl_entry based (acl_ptr); 2 47 2 48 2 49 declare 1 directory_acl aligned based (acl_ptr), 2 50 2 version fixed bin, 2 51 2 count fixed bin, 2 52 2 entries (acl_count refer (directory_acl.count)) aligned like directory_acl_entry; 2 53 2 54 declare 1 directory_acl_entry like general_acl_entry aligned based; 2 55 declare 1 directory_acl_array (acl_count) aligned like directory_acl_entry based (acl_ptr); 2 56 2 57 2 58 declare 1 delete_acl based (acl_ptr) aligned, 2 59 2 version fixed bin, 2 60 2 count fixed bin, 2 61 2 entries (acl_count refer (delete_acl.count)) aligned like delete_acl_entry; 2 62 2 63 declare 1 delete_acl_entry like general_delete_acl_entry aligned based; 2 64 declare 1 delete_acl_array (acl_count) aligned like delete_acl_entry based (acl_ptr); 2 65 2 66 2 67 declare (SEG_ACL_VERSION_1 init ("sga1"), 2 68 DIR_ACL_VERSION_1 init ("dra1"), 2 69 DELETE_ACL_VERSION_1 init ("dla1")) 2 70 char (4) int static options (constant); 2 71 2 72 declare (GENERAL_ACL_VERSION_1 init ("gacl001"), 2 73 GENERAL_EXTENDED_ACL_VERSION_1 init ("gxacl001"), 2 74 GENERAL_DELETE_ACL_VERSION_1 init ("gdacl001")) 2 75 char (8) internal static options (constant); 2 76 2 77 declare ACL_VERSION_1 fixed bin init (1) int static options (constant); 2 78 2 79 /* End include file acl_structures.incl.pl1 */ 193 3 1 /**** START OF: le_data.incl.pl1 * * * * * */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(86-08-12,Elhard), approve(86-08-12,MCR7505), 3 5* audit(86-12-10,DGHowe), install(86-12-10,MR12.0-1241): 3 6* Originally written to define the structures used internally by le_. 3 7* END HISTORY COMMENTS */ 3 8 3 9 /*** ****************************************************************/ 3 10 /*** */ 3 11 /*** Name: le_data */ 3 12 /*** Function: This include file defines the data structures */ 3 13 /*** used internally by the linkage_editor subroutine. */ 3 14 /*** */ 3 15 /*** ****************************************************************/ 3 16 3 17 /* error severity constants */ 3 18 3 19 dcl LE_WARNING fixed bin static options (constant) init (1); 3 20 dcl LE_ERROR fixed bin static options (constant) init (2); 3 21 dcl LE_FATAL_ERROR fixed bin static options (constant) init (3); 3 22 dcl LE_ABORT_ERROR fixed bin static options (constant) init (4); 3 23 3 24 /* section identifier constants */ 3 25 3 26 dcl _mult_ RT=AV0146 Tw'fTw)zAVtape_mult_ RUAV0044 TTFAV,tape_mult_ RUAV0185 T5T?AVtape_mult_ RU3rAV0085 T)T AVUtape_mult_ RUAV0085 TG4TH6SAVUtape_mult_ RU AV0085 T1TzAVUtape_mult_ RUuEAV0085 T +T oAVUtape_mult_ RUAV0085 T] T?AVUtape_mult_ R`AV0139 TljJTlrAVtape_mult_ RkKAV0230 T;TC$AVtape_mult_ RkQAV0024 T HTAVtape_mult_ RlPAV0024 T%}T%5AVtape_mult_ Rl AV0024 Tu Tu5AVtape_mult_ RmAV0024 T}eT~rAVtape_mult_ RnSAV0024 TTAVtape_mult_ Rn\AV0227 T_TAVtape_mult_ RnrAV0045 T T aAV-tape_mult_ RnAV0045 T8zT8{<AV-tape_mult_ RnI'AV0045 TS(TSAV-tape_mult_ RnAV0045 TnryTns6AV-tape_mult_ Ro cAV0045 ThT9AV-tape_mult_ RoAV0031 TtTAVtape_mult_ RoAV0031 ToT AVtape_mult_ Ro27AV0031 TgurTho"AVtape_mult_ RpGAV0118 TkTAVvtape_mult_ RpAV0118 TcX'TcYAVvtape_mult_ RqAV0118 Tyh Tz]AVvtape_mult_ Rr MAV0118 T!XT" *AVvtape_mult_ RrO AV0118 TT TT!AVvtape_mult_ RslAV0118 T|TAVvtape_mult_ in (18) unsigned unaligned, 3 120 03 defnl fixed bin (18) unsigned unaligned, 3 121 03 linkl fixed bin (18) unsigned unaligned, 3 122 03 statl fixed bin (18) unsigned unaligned, 3 123 03 symbl fixed bin (18) unsigned unaligned, 3 124 03 symbl_no_rel fixed bin (18) unsigned unaligned, 3 125 03 symbl_no_table fixed bin (18) unsigned unaligned, 3 126 03 n_symb_blocks fixed bin (18) unsigned unaligned, 3 127 03 text_boundary fixed bin (9) unsigned unaligned, 3 128 03 static_boundary fixed bin (9) unsigned unaligned, 3 129 03 next_comp fixed bin (18) unsigned unaligned, 3 130 02 new aligned, 3 131 03 rel_text fixed bin (18) unsigned unaligned, 3 132 03 rel_symb fixed bin (18) unsigned unaligned, 3 133 03 rel_stat fixed bin (18) unsigned unaligned, 3 134 03 text_pad fixed bin (18) unsigned unaligned, 3 135 03 static_pad fixed bin (18) unsigned unaligned, 3 136 03 symbol_pad fixed bin (18) unsigned unaligned; 3 137 3 138 /*** ****************************************************************/ 3 139 /*** */ 3 140 /*** Name: le_segnames */ 3 141 /*** Function: the segname table is used for two purposes: */ 3 142 /*** - to determine the target components of links */ 3 143 /*** being resolved internally. */ 3 144 /*** - to determine the segname definitions to be */ 3 145 /*** emited for definitions being retained. */ 3 146 /*** */ 3 147 /*** ****************************************************************/ 3 148 3 149 dcl 01 le_segnames aligned based, 3 150 02 header aligned, 3 151 03 n_segnames fixed bin, 3 152 02 segname (segname_count refer (le_segnames.n_segnames)), 3 153 03 str char (32) varying, 3 154 03 relp fixed bin (18) unsigned unaligned, 3 155 03 pad bit (18) unaligned; 3 156 dcl segname_count fixed bin automatic; 3 157 3 158 /*** ****************************************************************/ 3 159 /*** */ 3 160 /*** Name: le_definitions */ 3 161 /*** Function: the definition table contains the definitions */ 3 162 /*** from the input components and is used to resolve */ 3 163 /*** link targets, and regenerate definition entries */ 3 164 /*** */ 3 165 /*** ****************************************************************/ 3 166 3 167 dcl 01 le_definitions aligned based, 3 168 02 header aligned, 3 169 03 n_defs fixed bin, 3 170 03 pad bit (36), 3 171 02 def (def_count refer (le_definitions.n_defs)) 3 172 like le_definition; 3 173 dcl def_count fixed bin automatic; 3 174 3 175 dcl 01 le_definition aligned based, 3 176 02 str char (256) varying, 3 177 02 type fixed bin (18) unsigned unaligned, 3 178 02 relp fixed bin (18) unsigned unaligned, 3 179 02 offset fixed bin (18) unsigned unaligned, 3 180 02 new_offset fixed bin (18) unsigned unaligned, 3 181 02 flags aligned, 3 182 03 force_retain bit (1) unaligned, 3 183 03 entrypoint bit (1) unaligned, 3 184 03 ignore bit (1) unaligned, 3 185 03 referenced bit (1) unaligned, 3 186 03 no_link bit (1) unaligned, 3 187 03 retain bit (1) unaligned, 3 188 03 delete bit (1) unaligned, 3 189 03 mbz bit (29) unaligned; 3 190 3 191 /*** ****************************************************************/ 3 192 /*** */ 3 193 /*** Name: le_options */ 3 194 /*** Function: the option table contains definition retention */ 3 195 /*** information. The input retentions options are */ 3 196 /*** ordered such that a linear search of the option */ 3 197 /*** table for the first matching starname will give */ 3 198 /*** the correct retention state. */ 3 199 /*** */ 3 200 /*** ****************************************************************/ 3 201 3 202 dcl 01 le_options aligned based, 3 203 02 header aligned, 3 204 03 n_opts fixed bin, 3 205 02 opt (0 refer (le_options.n_opts)), 3 206 03 type fixed bin (8) unaligned, 3 207 03 used bit (1) unaligned, 3 208 03 inhibit_error bit (1) unaligned, 3 209 03 class fixed bin (6) unaligned, 3 210 03 order fixed bin (17) unaligned, 3 211 03 segname char (32) unaligned, 3 212 03 ep_name char (256) unaligned; 3 213 3 214 /*** ****************************************************************/ 3 215 /*** */ 3 216 /*** Name: le_links */ 3 217 /*** Function: the link table contains information on all of the */ 3 218 /*** links in the input components. It is used to */ 3 219 /*** determine link targets, which library components */ 3 220 /*** will be included, and what init_info will be */ 3 221 /*** used, and where it will be placed. */ 3 222 /*** */ 3 223 /*** ****************************************************************/ 3 224 3 225 dcl 01 le_links aligned based, 3 226 02 header aligned, 3 227 03 offset_adjustment fixed bin (18), 3 228 03 n_links fixed bin, 3 229 02 link (link_count refer (le_links.n_links)) 3 230 like le_link; 3 231 dcl link_count fixed bin automatic; 3 232 3 233 dcl 01 le_link aligned based, 3 234 02 flags unaligned, 3 235 03 used bit (1), 3 236 03 mbx bit (35), 3 237 02 type fixed bin (6) unsigned unaligned, 3 238 02 class fixed bin (6) unsigned unaligned, 3 239 02 mod bit (6) unaligned, 3 240 02 exp fixed bin (17) unaligned, 3 241 02 target fixed bin (18) unsigned unaligned, 3 242 02 defx fixed bin (18) unsigned unaligned, 3 243 02 relp fixed bin (18) unsigned unaligned, 3 244 02 target_comp fixed bin (18) unsigned unaligned, 3 245 02 target_link fixed bin (18) unsigned unaligned, 3 246 02 extension fixed bin (18) unsigned unaligned, 3 247 02 initp ptr unaligned, 3 248 02 segnamep ptr unaligned, 3 249 02 offsetp ptr unaligned; 3 250 3 251 /*** ****************************************************************/ 3 252 /*** */ 3 253 /*** Name: le_binaries */ 3 254 /*** Function: This table contains information about the output */ 3 255 /*** binaries. It is primarily used for creation and */ 3 256 /*** backpatching of MSF output. */ 3 257 /*** */ 3 258 /*** ****************************************************************/ 3 259 3 260 dcl 01 le_binaries aligned based, 3 261 02 header aligned, 3 262 03 n_binaries fixed bin, 3 263 03 pad bit (36), 3 264 02 binary (0:0 refer (le_binaries.n_binaries)), 3 265 03 segp ptr, 3 266 03 bc fixed bin (24), 3 267 03 uid bit (36), 3 268 03 aclc fixed bin, 3 269 03 aclp ptr, 3 270 03 textp ptr, 3 271 03 defnp ptr, 3 272 03 linkp ptr, 3 273 03 symbp ptr, 3 274 03 statp ptr, 3 275 03 textl fixed bin (18) unsigned unaligned, 3 276 03 defnl fixed bin (18) unsigned unaligned, 3 277 03 linkl fixed bin (18) unsigned unaligned, 3 278 03 symbl fixed bin (18) unsigned unaligned, 3 279 03 statl fixed bin (18) unsigned unaligned, 3 280 03 mbz2 bit (18) unaligned; 3 281 3 282 /*** ****************************************************************/ 3 283 /*** */ 3 284 /*** Name: le_patches */ 3 285 /*** Function: This table contains the list of backpatches to be */ 3 286 /*** performed when the rest of the object creation is */ 3 287 /*** complete. Since le_backpatch_ is the only routine */ 3 288 /*** concerned with this, it is maintained completely */ 3 289 /*** internal to le_backpatch_. */ 3 290 /*** */ 3 291 /*** ****************************************************************/ 3 292 3 293 dcl 01 le_patches aligned based, 3 294 02 header aligned, 3 295 03 n_patches fixed bin, 3 296 02 patch (0 refer (le_patches.n_patches)) like le_patch; 3 297 3 298 dcl 01 le_patch aligned based, 3 299 02 type fixed bin, 3 300 02 comp fixed bin, 3 301 02 relp fixed bin (18) unsigned, 3 302 02 target fixed bin, 3 303 02 index fixed bin; 3 304 3 305 /**** END OF: le_data.incl.pl1 * * * * * */ 194 4 1 /* BEGIN INCLUDE FILE ... object_info.incl.pl1 4 2*coded February 8, 1972 by Michael J. Spier */ 4 3 /* modified May 26, 1972 by M. Weaver */ 4 4 /* modified 15 April, 1975 by M. Weaver */ 4 5 4 6 declare 1 object_info aligned based, /* structure containing object info based, returned by object_info_ */ 4 7 2 version_number fixed bin, /* version number of current structure format (=2) */ 4 8 2 textp pointer, /* pointer to beginning of text section */ 4 9 2 defp pointer, /* pointer to beginning of definition section */ 4 10 2 linkp pointer, /* pointer to beginning of linkage section */ 4 11 2 statp pointer, /* pointer to beginning of static section */ 4 12 2 symbp pointer, /* pointer to beginning of symbol section */ 4 13 2 bmapp pointer, /* pointer to beginning of break map (may be null) */ 4 14 2 tlng fixed bin, /* length in words of text section */ 4 15 2 dlng fixed bin, /* length in words of definition section */ 4 16 2 llng fixed bin, /* length in words of linkage section */ 4 17 2 ilng fixed bin, /* length in words of static section */ 4 18 2 slng fixed bin, /* length in words of symbol section */ 4 19 2 blng fixed bin, /* length in words of break map */ 4 20 2 format, /* word containing bit flags about object type */ 4 21 3 old_format bit(1) unaligned, /* on if segment isn't in new format, i.e. has old style object map */ 4 22 3 bound bit(1) unaligned, /* on if segment is bound */ 4 23 3 relocatable bit(1) unaligned, /* on if seg has relocation info in its first symbol block */ 4 24 3 procedure bit(1) unaligned, /* on if segment is an executable object program */ 4 25 3 standard bit(1) unaligned, /* on if seg is in standard format (more than just standard map) */ 4 26 3 gate bit(1) unaligned, /* on if segment is a gate */ 4 27 3 separate_static bit(1) unaligned, /* on if static not in linkage */ 4 28 3 links_in_text bit(1) unaligned, /* on if there are threaded links in text */ 4 29 3 perprocess_static bit (1) unaligned, /* on if static is not to be per run unit */ 4 30 3 pad bit(27) unaligned, 4 31 2 entry_bound fixed bin, /* entry bound if segment is a gate */ 4 32 2 textlinkp pointer, /* ptr to first link in text */ 4 33 4 34 /* LIMIT OF BRIEF STRUCTURE */ 4 35 4 36 2 compiler char(8) aligned, /* name of processor which generated segment */ 4 37 2 compile_time fixed bin(71), /* clock reading of date/time object was generated */ 4 38 2 userid char(32) aligned, /* standard Multics id of creator of object segment */ 4 39 2 cvers aligned, /* generator version name in printable char string form */ 4 40 3 offset bit(18) unaligned, /* offset of name in words relative to base of symbol section */ 4 41 3 length bit(18) unaligned, /* length of name in characters */ 4 42 2 comment aligned, /* printable comment concerning generator or generation of segment */ 4 43 3 offset bit(18) unaligned, /* offset of comment in words relative to base of symbol section */ 4 44 3 length bit(18) unaligned, /* length of comment in characters */ 4 45 2 source_map fixed bin, /* offset, relative to base of symbol section, of source map structure */ 4 46 4 47 /* LIMIT OF DISPLAY STRUCTURE */ 4 48 4 49 2 rel_text pointer, /* pointer to text section relocation info */ 4 50 2 rel_def pointer, /* pointer to definition section relocation info */ 4 51 2 rel_link pointer, /* pointer to linkage section relocation info */ 4 52 2 rel_static pointer, /* pointer to static section relocation info */ 4 53 2 rel_symbol pointer, /* pointer to symbol section relocation info */ 4 54 2 text_boundary fixed bin, /* specifies mod of text section base boundary */ 4 55 2 static_boundary fixed bin, /* specifies mod of internal static base boundary */ 4 56 /* currently not used by system */ 4 57 2 default_truncate fixed bin, /* offset rel to symbp for binder to automatically trunc. symb sect. */ 4 58 2 optional_truncate fixed bin; /* offset rel to symbp for binder to optionally trunc. symb sect. */ 4 59 4 60 declare object_info_version_2 fixed bin int static init(2); 4 61 4 62 /* END INCLUDE FILE ... object_info.incl.pl1 */ 195 5 1 /* START OF: ocu_dcls.incl.pl1 * * * * * */ 5 2 5 3 /****^ HISTORY COMMENTS: 5 4* 1) change(86-08-12,Elhard), approve(86-08-12,MCR7505), 5 5* audit(86-12-10,DGHowe), install(86-12-10,MR12.0-1241): 5 6* Originally written to define the subroutines and data structures used by 5 7* callers of ocu_. 5 8* END HISTORY COMMENTS */ 5 9 5 10 /*** ****************************************************************/ 5 11 /*** */ 5 12 /*** Name: ocu_dcls */ 5 13 /*** Function: These are the entrypoints and structures required */ 5 14 /*** to use the ocu_ object creation utilities. */ 5 15 /*** */ 5 16 /*** ****************************************************************/ 5 17 5 18 /* open option flags */ 5 19 5 20 dcl OPEN_FLAGS_BOUND bit (6) static options (constant) 5 21 init ("100000"b); 5 22 dcl OPEN_FLAGS_RELOCATABLE bit (6) static options (constant) 5 23 init ("010000"b); 5 24 dcl OPEN_FLAGS_PROCEDURE bit (6) static options (constant) 5 25 init ("001000"b); 5 26 dcl OPEN_FLAGS_SEPARATE_STATIC 5 27 bit (6) static options (constant) 5 28 init ("000100"b); 5 29 dcl OPEN_FLAGS_PERPROCESS_STATIC 5 30 bit (6) static options (constant) 5 31 init ("000010"b); 5 32 dcl OPEN_FLAGS_NO_HASHTABLE bit (6) static options (constant) 5 33 init ("000001"b); 5 34 5 35 /* definition flags */ 5 36 5 37 dcl DEFINITION_FLAGS_IGNORE bit (4) static options (constant) init ("1000"b); 5 38 dcl DEFINITION_FLAGS_ENTRY bit (4) static options (constant) init ("0100"b); 5 39 dcl DEFINITION_FLAGS_RETAIN bit (4) static options (constant) init ("0010"b); 5 40 dcl DEFINITION_FLAGS_INDIRECT 5 41 bit (4) static options (constant) init ("0001"b); 5 42 5 43 /* input structures */ 5 44 5 45 dcl word_arrayp ptr; 5 46 dcl word_arrayl fixed bin (18) unsigned; 5 47 5 48 dcl word_array(word_arrayl) bit (36) based (word_arrayp); 5 49 5 50 dcl reloc_strp ptr; 5 51 dcl reloc_strl fixed bin (21); 5 52 5 53 dcl reloc_str char (reloc_strl) based (reloc_strp); 5 54 5 55 dcl component_listp ptr; 5 56 dcl component_count fixed bin (15) unsigned; 5 57 5 58 dcl component_list (1:component_count) 5 59 ptr based (component_listp); 5 60 5 61 dcl 01 gen_info aligned based, 5 62 02 gen_created fixed bin (71), 5 63 02 generator char (8), 5 64 02 gen_number fixed bin, 5 65 02 gen_version char (512) varying; 5 66 5 67 /* entrypoint declarations */ 5 68 5 69 dcl ocu_$open /* setup to create an object */ 5 70 entry (char(*), /* directory name (in ) */ 5 71 char(*), /* entry name (in ) */ 5 72 bit(*), /* option flags (in ) */ 5 73 ptr, /* ocu_data pointer (out) */ 5 74 fixed bin(35)); /* error code (out) */ 5 75 5 76 dcl ocu_$close /* create the object segment */ 5 77 entry (ptr, /* ocu_data pointer (in ) */ 5 78 fixed bin(35)); /* error code (out) */ 5 79 5 80 dcl ocu_$release /* release storage on cleanup */ 5 81 entry (ptr); /* ocu_data pointer (in ) */ 5 82 5 83 dcl ocu_$emit_text /* emit a block of text words */ 5 84 entry (ptr, /* ocu_data pointer (in ) */ 5 85 ptr, /* word array pointer (in ) */ 5 86 ptr, /* reloc string pointer (in ) */ 5 87 fixed bin (18) uns) /* word count (in ) */ 5 88 returns(fixed bin (18) uns); /* text relp (out) */ 5 89 5 90 dcl ocu_$emit_definition /* emit a single definition entry */ 5 91 entry (ptr, /* ocu_data pointer (in ) */ 5 92 char(*) var, /* definition name (in ) */ 5 93 fixed bin (3), /* target section (in ) */ 5 94 fixed bin (18) uns, /* offset in section (in ) */ 5 95 bit(*)) /* definition flags (in ) */ 5 96 returns(fixed bin (18) uns); /* definition relp (out) */ 5 97 5 98 dcl ocu_$emit_segname /* emit a single segname definition */ 5 99 entry (ptr, /* ocu_data pointer (in ) */ 5 100 char(*) var, /* segname (in ) */ 5 101 bit(*)) /* definition flags (in ) */ 5 102 returns(fixed bin (18) uns); /* definition relp (out) */ 5 103 5 104 dcl ocu_$emit_msf_map /* emit an msf map (MSF components) */ 5 105 entry (ptr, /* ocu_data pointer (in ) */ 5 106 fixed bin (15) uns, /* component count (in ) */ 5 107 fixed bin (15) uns); /* my component (in ) */ 5 108 5 109 dcl ocu_$emit_static /* emit a block of static words */ 5 110 entry (ptr, /* ocu_data pointer (in ) */ 5 111 ptr, /* word array pointer (in ) */ 5 112 fixed bin (18) uns) /* word count (in ) */ 5 113 returns(fixed bin (18) uns); /* static relp (out) */ 5 114 5 115 dcl ocu_$emit_link /* emit a single external link */ 5 116 entry (ptr, /* ocu_data pointer (in ) */ 5 117 fixed bin (3), /* link type (in ) */ 5 118 fixed bin (3), /* link class (in ) */ 5 119 char(*) var, /* target refname (in ) */ 5 120 char(*) var, /* target definition (in ) */ 5 121 fixed bin, /* expression offset (in ) */ 5 122 bit(6), /* link modifier (in ) */ 5 123 ptr) /* init info pointer (in ) */ 5 124 returns(fixed bin (18) uns); /* link relp (out) */ 5 125 5 126 dcl ocu_$emit_partial_link /* emit a single partial link */ 5 127 entry (ptr, /* ocu_data pointer (in ) */ 5 128 fixed bin (15) uns, /* target component (in ) */ 5 129 fixed bin (3), /* target section (in ) */ 5 130 fixed bin (18) uns, /* offset in section (in ) */ 5 131 bit(6)) /* link modifier (in ) */ 5 132 returns(fixed bin (18) uns); /* link relp (out) */ 5 133 5 134 dcl ocu_$emit_firstref_trap /* add a trap to the firstref block */ 5 135 entry (ptr, /* ocu_data pointer (in ) */ 5 136 fixed bin (18) uns, /* call relp (in ) */ 5 137 fixed bin (18) uns); /* info relp (in ) */ 5 138 5 139 dcl ocu_$emit_symbol /* emit a block of symbol words */ 5 140 entry (ptr, /* ocu_data pointer (in ) */ 5 141 ptr, /* word array pointer (in ) */ 5 142 ptr, /* reloc string pointer (in ) */ 5 143 fixed bin (18) uns) /* word count (in ) */ 5 144 returns(fixed bin (18) uns); /* symbol relp (out) */ 5 145 5 146 dcl ocu_$backpatch /* patch a word in the text/symbol scn */ 5 147 entry (ptr, /* ocu_data pointer (in ) */ 5 148 char(*), /* section (in ) */ 5 149 fixed bin (18) uns, /* offset in section (in ) */ 5 150 char(*), /* side and size (in ) */ 5 151 fixed bin (35)); /* new value to patch (in ) */ 5 152 5 153 dcl ocu_$create_msf /* create component 0 of the MSF */ 5 154 entry (ptr, /* component array ptr (in ) */ 5 155 fixed bin (15) uns, /* component count (in ) */ 5 156 ptr, /* generator info ptr (in ) */ 5 157 fixed bin(35)); /* error code (out) */ 5 158 5 159 /* END OF: ocu_dcls.incl.pl1 * * * * * */ 196 6 1 dcl 1 std_symbol_header based aligned, 6 2 2 dcl_version fixed bin, 6 3 2 identifier char(8), 6 4 2 gen_number fixed bin, 6 5 2 gen_created fixed bin(71), 6 6 2 object_created fixed bin(71), 6 7 2 generator char(8), 6 8 2 gen_version unaligned, 6 9 3 offset bit(18), 6 10 3 size bit(18), 6 11 2 userid unaligned, 6 12 3 offset bit(18), 6 13 3 size bit(18), 6 14 2 comment unaligned, 6 15 3 offset bit(18), 6 16 3 size bit(18), 6 17 2 text_boundary bit(18) unaligned, 6 18 2 stat_boundary bit(18) unaligned, 6 19 2 source_map bit(18) unaligned, 6 20 2 area_pointer bit(18) unaligned, 6 21 2 backpointer bit(18) unaligned, 6 22 2 block_size bit(18) unaligned, 6 23 2 next_block bit(18) unaligned, 6 24 2 rel_text bit(18) unaligned, 6 25 2 rel_def bit(18) unaligned, 6 26 2 rel_link bit(18) unaligned, 6 27 2 rel_symbol bit(18) unaligned, 6 28 2 mini_truncate bit(18) unaligned, 6 29 2 maxi_truncate bit(18) unaligned; 197 198 199 end le_complete_binary_; 200 201 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/86 1251.7 le_complete_binary_.pl1 >special_ldd>install>MR12.0-1241>le_complete_binary_.pl1 192 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 193 2 10/14/83 1606.6 acl_structures.incl.pl1 >ldd>include>acl_structures.incl.pl1 194 3 12/10/86 1248.4 le_data.incl.pl1 >special_ldd>install>MR12.0-1241>le_data.incl.pl1 195 4 08/05/77 1022.5 object_info.incl.pl1 >ldd>include>object_info.incl.pl1 196 5 12/10/86 1248.0 ocu_dcls.incl.pl1 >special_ldd>install>MR12.0-1241>ocu_dcls.incl.pl1 197 6 05/06/74 1751.6 std_symbol_header.incl.pl1 >ldd>include>std_symbol_header.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. GENERAL_ACL_VERSION_1 000000 constant char(8) initial unaligned dcl 2-72 ref 177 LE_FATAL_ERROR 000013 constant fixed bin(17,0) initial dcl 3-21 set ref 146* RE_ACCESS constant bit(3) initial unaligned dcl 1-11 ref 180 R_ACCESS 000002 constant bit(3) initial unaligned dcl 1-11 set ref 154* access_name 3 000374 automatic char(32) level 3 packed unaligned dcl 80 set ref 179* addr builtin function dcl 93 ref 139 139 158 158 183 183 bc 4 based fixed bin(24,0) array level 3 dcl 66 set ref 154* 158* binary 2 based structure array level 2 in structure "le_binaries" dcl 3-260 in procedure "le_complete_binary_" binary 2 based structure array level 2 in structure "leb" dcl 66 in procedure "le_complete_binary_" cleanup 000502 stack reference condition dcl 89 ref 121 component_count 000512 automatic fixed bin(15,0) unsigned dcl 5-56 set ref 115* 123 129 133 139* 144 component_list based pointer array dcl 5-58 set ref 123 129 134* 144 component_listp 000510 automatic pointer dcl 5-55 set ref 119* 123 123 129* 134 139* 144 count 2 000374 automatic fixed bin(17,0) level 2 dcl 80 set ref 178* defnl 24(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 66 set ref 166* defnp 14 based pointer array level 3 dcl 66 set ref 161* defp 4 000412 automatic pointer level 2 dcl 84 set ref 161 delete_acl_entry based structure level 1 dcl 2-63 directory_acl_entry based structure level 1 dcl 2-54 dlng 17 000412 automatic fixed bin(17,0) level 2 dcl 84 set ref 166 dn 000100 automatic char(168) unaligned dcl 74 set ref 150* 154* 175* 175* 183* dnl 000152 automatic fixed bin(17,0) dcl 75 set ref 150* ec 000153 automatic fixed bin(35,0) dcl 76 set ref 139* 146 146* 150* 154* 158* 171* 175* 183* en 000154 automatic char(32) unaligned dcl 77 set ref 150* 175* 183* entry 3 000374 automatic structure level 2 dcl 80 expand_pathname_ 000010 constant entry external dcl 40 ref 175 fs_util_$add_acl_entries 000012 constant entry external dcl 42 ref 183 gen_created 000166 automatic fixed bin(71,0) level 2 dcl 79 set ref 108* gen_info based structure level 1 dcl 5-61 gen_number 4 000166 automatic fixed bin(17,0) level 2 dcl 79 set ref 110* gen_version 5 000166 automatic varying char(512) level 2 dcl 79 set ref 111* general_acl_entry based structure level 1 unaligned dcl 2-12 general_delete_acl_entry based structure level 1 dcl 2-35 general_extended_acl_entry based structure level 1 dcl 2-23 generator 2 000166 automatic char(8) level 2 dcl 79 set ref 109* get_group_id_$tag_star 000014 constant entry external dcl 44 ref 179 get_system_free_area_ 000016 constant entry external dcl 45 ref 113 hcs_$fs_get_path_name 000020 constant entry external dcl 46 ref 150 hcs_$get_uid_seg 000022 constant entry external dcl 48 ref 171 header based structure level 2 in structure "le_binaries" dcl 3-260 in procedure "le_complete_binary_" header based structure level 2 in structure "leb" dcl 66 in procedure "le_complete_binary_" i 000164 automatic fixed bin(17,0) dcl 78 set ref 133* 134 134* ilng 21 000412 automatic fixed bin(17,0) level 2 dcl 84 set ref 169 initiate_file_ 000024 constant entry external dcl 49 ref 154 le_backpatch_$execute 000026 constant entry external dcl 51 ref 98 le_binaries based structure level 1 dcl 3-260 le_comp based structure level 1 dcl 3-89 le_data_$caller 000034 external static varying char(32) dcl 58 ref 109 111 le_data_$symbol_table 000036 external static structure level 1 dcl 59 le_data_$version_number 000040 external static fixed bin(17,0) dcl 61 ref 110 le_data_$version_suffix 000042 external static varying char(64) dcl 62 ref 111 le_definition based structure level 1 dcl 3-175 le_error_ 000030 constant entry external dcl 52 ref 146 le_gen_info 000166 automatic structure level 1 dcl 79 set ref 139 139 le_link based structure level 1 dcl 3-233 le_patch based structure level 1 dcl 3-298 leb based structure level 1 dcl 66 lebp parameter pointer dcl 36 set ref 16 98* 103 115 134 150 154 154 158 158 160 161 162 163 164 165 166 167 168 169 171 171 lecp parameter pointer dcl 35 set ref 16 98* linkl 25 based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 66 set ref 167* linkp 6 000412 automatic pointer level 2 in structure "oi" dcl 84 in procedure "le_complete_binary_" set ref 162 linkp 16 based pointer array level 3 in structure "leb" dcl 66 in procedure "le_complete_binary_" set ref 162* llng 20 000412 automatic fixed bin(17,0) level 2 dcl 84 set ref 167 mode 13 000374 automatic bit(36) level 3 dcl 80 set ref 180* my_acl 000374 automatic structure level 1 dcl 80 set ref 183 183 n_binaries based fixed bin(17,0) level 3 dcl 66 ref 103 115 null builtin function dcl 94 ref 119 123 object_created 6 000036 external static fixed bin(71,0) level 2 dcl 59 ref 108 object_info based structure level 1 dcl 4-6 object_info_$brief 000032 constant entry external dcl 53 ref 158 object_info_version_2 constant fixed bin(17,0) initial dcl 4-60 ref 156 ocu_$create_msf 000044 constant entry external dcl 5-153 ref 139 oi 000412 automatic structure level 1 dcl 84 set ref 158 158 segment_acl_entry based structure level 1 dcl 2-45 segp 2 based pointer array level 3 dcl 66 set ref 134 150* 154* 158* 171* slng 22 000412 automatic fixed bin(17,0) level 2 dcl 84 set ref 168 statl 26 based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 66 set ref 169* statp 10 000412 automatic pointer level 2 in structure "oi" dcl 84 in procedure "le_complete_binary_" set ref 164 statp 22 based pointer array level 3 in structure "leb" dcl 66 in procedure "le_complete_binary_" set ref 164* status_code 14 000374 automatic fixed bin(35,0) level 3 dcl 80 set ref 181* std_symbol_header based structure level 1 dcl 6-1 symbl 25(18) based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 66 set ref 168* symbp 20 based pointer array level 3 in structure "leb" dcl 66 in procedure "le_complete_binary_" set ref 163* symbp 12 000412 automatic pointer level 2 in structure "oi" dcl 84 in procedure "le_complete_binary_" set ref 163 sys_area based area(1024) dcl 70 ref 123 129 144 sys_areap 000500 automatic pointer dcl 85 set ref 113* 123 129 144 textl 24 based fixed bin(18,0) array level 3 packed unsigned unaligned dcl 66 set ref 165* textp 2 000412 automatic pointer level 2 in structure "oi" dcl 84 in procedure "le_complete_binary_" set ref 160 textp 12 based pointer array level 3 in structure "leb" dcl 66 in procedure "le_complete_binary_" set ref 160* tlng 16 000412 automatic fixed bin(17,0) level 2 dcl 84 set ref 165 uid 5 based bit(36) array level 3 dcl 66 set ref 171* version 000374 automatic char(8) level 2 dcl 80 set ref 177* version_number 000412 automatic fixed bin(17,0) level 2 dcl 84 set ref 156* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACL_VERSION_1 internal static fixed bin(17,0) initial dcl 2-77 A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DEFINITION_FLAGS_ENTRY internal static bit(4) initial unaligned dcl 5-38 DEFINITION_FLAGS_IGNORE internal static bit(4) initial unaligned dcl 5-37 DEFINITION_FLAGS_INDIRECT internal static bit(4) initial unaligned dcl 5-40 DEFINITION_FLAGS_RETAIN internal static bit(4) initial unaligned dcl 5-39 DELETE_ACL_VERSION_1 internal static char(4) initial unaligned dcl 2-67 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 DIR_ACL_VERSION_1 internal static char(4) initial unaligned dcl 2-67 Definition internal static fixed bin(3,0) initial dcl 3-32 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 GENERAL_DELETE_ACL_VERSION_1 internal static char(8) initial unaligned dcl 2-72 GENERAL_EXTENDED_ACL_VERSION_1 internal static char(8) initial unaligned dcl 2-72 Heap internal static fixed bin(3,0) initial dcl 3-38 LE_ABORT_ERROR internal static fixed bin(17,0) initial dcl 3-22 LE_ERROR internal static fixed bin(17,0) initial dcl 3-20 LE_WARNING internal static fixed bin(17,0) initial dcl 3-19 Linkage internal static fixed bin(3,0) initial dcl 3-28 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 OPEN_FLAGS_BOUND internal static bit(6) initial unaligned dcl 5-20 OPEN_FLAGS_NO_HASHTABLE internal static bit(6) initial unaligned dcl 5-32 OPEN_FLAGS_PERPROCESS_STATIC internal static bit(6) initial unaligned dcl 5-29 OPEN_FLAGS_PROCEDURE internal static bit(6) initial unaligned dcl 5-24 OPEN_FLAGS_RELOCATABLE internal static bit(6) initial unaligned dcl 5-22 OPEN_FLAGS_SEPARATE_STATIC internal static bit(6) initial unaligned dcl 5-26 Patch_Init internal static fixed bin(17,0) initial dcl 3-59 Patch_Link internal static fixed bin(17,0) initial dcl 3-58 Patch_Self_Init internal static fixed bin(17,0) initial dcl 3-61 Patch_Symbol_Ref internal static fixed bin(17,0) initial dcl 3-60 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Refname_Base internal static fixed bin(3,0) initial dcl 3-49 Refname_Offsetname internal static fixed bin(3,0) initial dcl 3-51 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SEG_ACL_VERSION_1 internal static char(4) initial unaligned dcl 2-67 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Self_Base internal static fixed bin(3,0) initial dcl 3-47 Self_Offsetname internal static fixed bin(3,0) initial dcl 3-53 Static internal static fixed bin(3,0) initial dcl 3-34 Symbol internal static fixed bin(3,0) initial dcl 3-30 System internal static fixed bin(3,0) initial dcl 3-36 Text internal static fixed bin(3,0) initial dcl 3-26 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 acl_count automatic fixed bin(17,0) dcl 2-5 acl_ptr automatic pointer dcl 2-4 def_count automatic fixed bin(17,0) dcl 3-173 delete_acl based structure level 1 dcl 2-58 delete_acl_array based structure array level 1 dcl 2-64 directory_acl based structure level 1 dcl 2-49 directory_acl_array based structure array level 1 dcl 2-55 general_acl based structure level 1 dcl 2-7 general_delete_acl based structure level 1 dcl 2-30 general_extended_acl based structure level 1 dcl 2-18 le_components based structure level 1 dcl 3-72 le_definitions based structure level 1 dcl 3-167 le_links based structure level 1 dcl 3-225 le_options based structure level 1 dcl 3-202 le_patches based structure level 1 dcl 3-293 le_segnames based structure level 1 dcl 3-149 link_count automatic fixed bin(17,0) dcl 3-231 ocu_$backpatch 000000 constant entry external dcl 5-146 ocu_$close 000000 constant entry external dcl 5-76 ocu_$emit_definition 000000 constant entry external dcl 5-90 ocu_$emit_firstref_trap 000000 constant entry external dcl 5-134 ocu_$emit_link 000000 constant entry external dcl 5-115 ocu_$emit_msf_map 000000 constant entry external dcl 5-104 ocu_$emit_partial_link 000000 constant entry external dcl 5-126 ocu_$emit_segname 000000 constant entry external dcl 5-98 ocu_$emit_static 000000 constant entry external dcl 5-109 ocu_$emit_symbol 000000 constant entry external dcl 5-139 ocu_$emit_text 000000 constant entry external dcl 5-83 ocu_$open 000000 constant entry external dcl 5-69 ocu_$release 000000 constant entry external dcl 5-80 reloc_str based char unaligned dcl 5-53 reloc_strl automatic fixed bin(21,0) dcl 5-51 reloc_strp automatic pointer dcl 5-50 section_nm internal static char(16) initial array unaligned dcl 3-41 segment_acl based structure level 1 dcl 2-40 segment_acl_array based structure array level 1 dcl 2-46 segname_count automatic fixed bin(17,0) dcl 3-156 word_array based bit(36) array unaligned dcl 5-48 word_arrayl automatic fixed bin(18,0) unsigned dcl 5-46 word_arrayp automatic pointer dcl 5-45 NAME DECLARED BY EXPLICIT CONTEXT. le_complete_binary_ 000042 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1014 1062 572 1024 Length 1414 572 46 315 221 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME le_complete_binary_ 428 external procedure is an external procedure. on unit on line 121 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME le_complete_binary_ 000100 dn le_complete_binary_ 000152 dnl le_complete_binary_ 000153 ec le_complete_binary_ 000154 en le_complete_binary_ 000164 i le_complete_binary_ 000166 le_gen_info le_complete_binary_ 000374 my_acl le_complete_binary_ 000412 oi le_complete_binary_ 000500 sys_areap le_complete_binary_ 000510 component_listp le_complete_binary_ 000512 component_count le_complete_binary_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac enable_op shorten_stack ext_entry int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. expand_pathname_ fs_util_$add_acl_entries get_group_id_$tag_star get_system_free_area_ hcs_$fs_get_path_name hcs_$get_uid_seg initiate_file_ le_backpatch_$execute le_error_ object_info_$brief ocu_$create_msf THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. le_data_$caller le_data_$symbol_table le_data_$version_number le_data_$version_suffix LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000036 98 000047 103 000060 108 000065 109 000071 110 000076 111 000100 113 000124 115 000133 119 000137 121 000141 123 000155 125 000166 129 000167 133 000175 134 000205 135 000217 139 000221 144 000240 146 000244 150 000272 154 000330 156 000376 158 000400 160 000422 161 000427 162 000433 163 000437 164 000443 165 000447 166 000454 167 000456 168 000461 169 000463 171 000466 175 000501 177 000524 178 000526 179 000530 180 000537 181 000541 183 000542 185 000571