COMPILATION LISTING OF SEGMENT rcprm_registry_util_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 0936.8 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 /* Various common operations on RCP registries. */ 9 /* Written January 1985 by Chris Jones */ 10 11 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 12 rcprm_registry_util_: 13 proc; 14 15 return; 16 17 dcl p_code fixed bin (35) parameter; /* (O) status code */ 18 dcl p_gk_header_ptr ptr; /* (I) pointer to a gk_header structure to be filled in */ 19 dcl p_iocb_ptr ptr; /* (I/O) pointer to an IOCB we're manipulating */ 20 dcl p_key char (*) parameter; /* (O) the key we construct */ 21 dcl p_owner char (*) parameter; /* (I) the owner for whom we will construct a key */ 22 dcl p_privileges_string bit (36) aligned parameter;/* (I/O) privileges that were on before we diddled them */ 23 dcl p_project char (*) parameter; /* (I) the project for whome we will construct a key */ 24 dcl p_record_ptr ptr; /* (O) pointer to a registry record */ 25 dcl p_registry_dir char (*) parameter; /* (I) directory registries are stored in */ 26 dcl p_resource_type char (*) parameter; /* (I) resource type (for knowing which registry to use) */ 27 dcl p_resource_name char (*) parameter; /* (I) name of a resource */ 28 dcl p_uid bit (36) aligned parameter;/* (I) UID of a resource */ 29 30 dcl 1 cbi like create_branch_info aligned automatic; 31 dcl code fixed bin (35); 32 dcl create_sw bit (1) aligned; 33 dcl cur_level fixed bin; 34 dcl i fixed bin; 35 dcl io_module char (32); 36 dcl iocb_ptr ptr; 37 dcl registry_dir char (168); 38 dcl resource_name char (32); 39 dcl resource_type char (32); 40 dcl suffix char (4); 41 dcl temp_string char (256); 42 43 dcl 1 get_key_info aligned, 44 2 header like gk_header, 45 2 key char (40) unaligned; 46 47 dcl 1 record_status like rs_info aligned; 48 49 dcl Relative_useconds bit (2) initial ("10"b) static options (constant); 50 dcl Sleep_times (5) fixed bin (71) static options (constant) initial (.25f6, .50f6, .75f6, 1.5f6, 3.0f6); 51 dcl TRANSACTION_CONTROL_FILE_NAME 52 char (7) static options (constant) init ("rcp.tcf"); 53 54 dcl admin_gate_$reset_privileges 55 entry (bit (36) aligned); 56 dcl admin_gate_$set_privileges 57 entry (bit (36) aligned, bit (36) aligned); 58 dcl cu_$level_get entry (fixed bin); 59 dcl hcs_$create_branch_ entry (char (*), char (*), ptr, fixed bin (35)); 60 dcl ioa_$rsnnl entry () options (variable); 61 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 62 dcl suffixed_name_$make entry (char (*), char (*), char (32), fixed bin (35)); 63 dcl timer_manager_$sleep entry (fixed bin (71), bit (2)); 64 dcl unique_chars_ entry (bit (*)) returns (char (15)); 65 66 dcl error_table_$file_busy fixed bin (35) ext static; 67 dcl error_table_$lock_wait_time_exceeded 68 fixed bin (35) ext static; 69 70 dcl sys_info$access_class_ceiling 71 bit (72) aligned ext static; 72 dcl sys_info$dir_privilege bit (36) aligned ext static; 73 74 dcl cleanup condition; 75 76 dcl (addr, after, before, hbound, lbound, length, null, rtrim, unspec) 77 builtin; 78 79 free_key: 80 entry (p_gk_header_ptr, p_key); 81 82 call init_gk_header; 83 call set_full_key (REGISTRY_FREE_KEY); 84 return; 85 86 name_key: 87 entry (p_resource_name, p_gk_header_ptr, p_key); 88 89 call init_gk_header; 90 call set_full_key (REGISTRY_NAME_KEY_HEAD || rtrim (p_resource_name)); 91 return; 92 93 owner_key: 94 entry (p_owner, p_gk_header_ptr, p_key); 95 96 call init_gk_header; 97 call set_full_key (REGISTRY_OWNER_KEY_HEAD || flip_person_and_project (p_owner)); 98 return; 99 100 project_key: 101 entry (p_project, p_gk_header_ptr, p_key); 102 103 call init_gk_header; 104 call set_partial_key (REGISTRY_OWNER_KEY_HEAD || rtrim (p_project) || "."); 105 return; 106 107 skeleton_key: 108 entry (p_gk_header_ptr, p_key); 109 110 call init_gk_header; 111 call set_partial_key (REGISTRY_NAME_KEY_HEAD); 112 return; 113 114 skeleton_acquisition_key: 115 entry (p_gk_header_ptr, p_key); 116 117 call init_gk_header; 118 call set_partial_key (REGISTRY_OWNER_KEY_HEAD); 119 return; 120 121 system_key: 122 entry (p_gk_header_ptr, p_key); 123 124 call init_gk_header; 125 call set_full_key (REGISTRY_SYSTEM_KEY); 126 return; 127 128 uid_key: 129 entry (p_uid, p_gk_header_ptr, p_key); 130 131 call init_gk_header; 132 call ioa_$rsnnl ("^a^w", temp_string, (0), REGISTRY_UID_KEY_HEAD, p_uid); 133 call set_full_key (rtrim (temp_string)); 134 return; 135 136 create_transaction_control_file: 137 entry (p_registry_dir, p_code); 138 139 registry_dir = p_registry_dir; 140 iocb_ptr = null (); 141 call fillin_cbi; 142 call hcs_$create_branch_ (registry_dir, TRANSACTION_CONTROL_FILE_NAME, addr (cbi), code); 143 if code ^= 0 then 144 goto CREATE_TCF_RETURN; 145 146 /* Make this file be an MSF by creating and deleting an arbitrary record */ 147 148 call grab_transaction_control_file_create (iocb_ptr, registry_dir, code); 149 if code ^= 0 then 150 goto CREATE_TCF_RETURN; 151 152 /* force this file into an MSF by creating and deleting an arbitrary record. */ 153 154 call iox_$seek_key (iocb_ptr, "garbage", (0), (0)); 155 call iox_$write_record (iocb_ptr, addr (iocb_ptr), 8, code); 156 if code ^= 0 then 157 goto CREATE_TCF_RETURN; 158 call iox_$delete_record (iocb_ptr, code); 159 if code ^= 0 then 160 goto CREATE_TCF_RETURN; 161 162 CREATE_TCF_RETURN: 163 call toss_iocb (iocb_ptr); 164 p_code = code; 165 return; 166 167 grab_transaction_control_file: 168 entry (p_iocb_ptr, p_registry_dir, p_code); 169 170 create_sw = "0"b; 171 goto GRAB_TCF_COMMON; 172 173 grab_transaction_control_file_create: 174 entry (p_iocb_ptr, p_registry_dir, p_code); 175 176 create_sw = "1"b; 177 178 GRAB_TCF_COMMON: 179 registry_dir = p_registry_dir; 180 call ioa_$rsnnl ("vfile_ ^a^[ -old^] -exclusive", temp_string, (0), 181 pathname_ (registry_dir, TRANSACTION_CONTROL_FILE_NAME), ^create_sw); 182 iocb_ptr = null (); 183 184 on cleanup call toss_iocb (iocb_ptr); 185 186 call iox_$attach_name ("rcp_transactions_", iocb_ptr, temp_string, null (), code); 187 if code ^= 0 then 188 goto GRAB_TCF_RETURN; 189 190 code = error_table_$file_busy; 191 do i = lbound (Sleep_times, 1) to hbound (Sleep_times, 1) while (code = error_table_$file_busy); 192 call iox_$open (iocb_ptr, Keyed_sequential_update, "0"b, code); 193 if code = error_table_$file_busy then 194 call timer_manager_$sleep (Sleep_times (i), Relative_useconds); 195 end; 196 197 if code = error_table_$file_busy then 198 code = error_table_$lock_wait_time_exceeded; 199 if code ^= 0 then 200 call toss_iocb (iocb_ptr); 201 202 GRAB_TCF_RETURN: 203 p_iocb_ptr = iocb_ptr; 204 p_code = code; 205 return; 206 207 release_transaction_control_file: 208 entry (p_iocb_ptr, p_code); 209 210 release_registry: 211 entry (p_iocb_ptr, p_code); 212 213 iocb_ptr = p_iocb_ptr; 214 call iox_$close (iocb_ptr, code); 215 if code ^= 0 then 216 goto RELEASE_TCF_RETURN; 217 call iox_$detach_iocb (iocb_ptr, code); 218 if code ^= 0 then 219 goto RELEASE_TCF_RETURN; 220 call iox_$destroy_iocb (p_iocb_ptr, code); 221 222 RELEASE_TCF_RETURN: 223 p_code = code; 224 return; 225 226 grab_registry: 227 entry (p_iocb_ptr, p_registry_dir, p_resource_type, p_code); 228 229 create_sw = "0"b; 230 io_module = "rcprm_journal_file_"; 231 suffix = "rcpr"; 232 goto GRAB_REGISTRY_COMMON; 233 234 grab_registry_no_journalize: 235 entry (p_iocb_ptr, p_registry_dir, p_resource_type, p_code); 236 237 create_sw = "0"b; 238 io_module = "vfile_"; 239 suffix = "rcpr"; 240 goto GRAB_REGISTRY_COMMON; 241 242 grab_registry_old: 243 entry (p_iocb_ptr, p_registry_dir, p_resource_type, p_code); 244 245 create_sw = "0"b; 246 io_module = "rcprm_journal_file_"; 247 suffix = "old"; 248 goto GRAB_REGISTRY_COMMON; 249 250 grab_registry_create: 251 entry (p_iocb_ptr, p_registry_dir, p_resource_type, p_code); 252 253 create_sw = "1"b; 254 io_module = "rcprm_journal_file_"; 255 suffix = "rcpr"; 256 257 GRAB_REGISTRY_COMMON: 258 registry_dir = p_registry_dir; 259 resource_type = p_resource_type; 260 iocb_ptr = null (); 261 on cleanup call toss_iocb (iocb_ptr); 262 263 call suffixed_name_$make (resource_type, suffix, resource_type, code); 264 if code ^= 0 then 265 goto GRAB_REGISTRY_RETURN; 266 267 call ioa_$rsnnl ("^a ^a ^[-old ^]-exclusive -stationary -dup_ok", temp_string, (0), io_module, 268 pathname_ (registry_dir, resource_type), ^create_sw); 269 270 call iox_$attach_name (unique_chars_ ("0"b), iocb_ptr, temp_string, null (), code); 271 if code ^= 0 then 272 goto GRAB_REGISTRY_RETURN; 273 274 call iox_$open (iocb_ptr, Keyed_sequential_update, "0"b, code); 275 276 GRAB_REGISTRY_RETURN: 277 if code ^= 0 then 278 call toss_iocb (iocb_ptr); 279 p_iocb_ptr = iocb_ptr; 280 p_code = code; 281 return; 282 283 find_resource_record: 284 entry (p_iocb_ptr, p_resource_name, p_record_ptr, p_code); 285 286 iocb_ptr = p_iocb_ptr; 287 resource_name = p_resource_name; 288 call name_key (resource_name, addr (get_key_info.header), get_key_info.key); 289 unspec (record_status) = ""b; 290 record_status.version = rs_info_version_2; 291 record_status.record_ptr = null (); 292 call iox_$control (iocb_ptr, "get_key", addr (get_key_info), code); 293 if code ^= 0 then 294 goto find_record_return; 295 296 call iox_$control (iocb_ptr, "record_status", addr (record_status), code); 297 298 find_record_return: 299 p_record_ptr = record_status.record_ptr; 300 p_code = code; 301 return; 302 303 turn_on_privs: 304 entry (p_privileges_string); 305 306 call admin_gate_$set_privileges (sys_info$dir_privilege, p_privileges_string); 307 return; 308 309 turn_off_privs: 310 entry (p_privileges_string); 311 312 call admin_gate_$reset_privileges (p_privileges_string); 313 return; 314 315 init_gk_header: 316 proc; 317 318 gk_info_ptr = p_gk_header_ptr; 319 if gk_info_ptr ^= null () then do; 320 unspec (gk_header) = ""b; /* start clean */ 321 gk_header.version = gk_info_version_0; 322 gk_header.input_key = "1"b; 323 end; 324 325 end init_gk_header; 326 327 set_full_key: 328 proc (key); 329 330 dcl key char (*) varying parameter; 331 332 if gk_info_ptr ^= null () then 333 gk_header.head_size, gk_header.key_len = length (p_key); 334 p_key = key; 335 return; 336 337 set_partial_key: 338 entry (key); 339 340 if gk_info_ptr ^= null () then 341 gk_header.head_size, gk_header.key_len = length (key); 342 p_key = key; 343 344 end set_full_key; 345 346 flip_person_and_project: 347 proc (personid) returns (char (*)); 348 349 dcl personid char (*) parameter; 350 351 return (before (after (rtrim (personid), "."), ".") || "." || before (personid, ".")); 352 353 end flip_person_and_project; 354 355 toss_iocb: 356 proc (iocb_ptr); 357 358 dcl iocb_ptr ptr; 359 360 if iocb_ptr ^= null () then do; 361 call iox_$close (iocb_ptr, (0)); 362 call iox_$detach_iocb (iocb_ptr, (0)); 363 call iox_$destroy_iocb (iocb_ptr, (0)); 364 end; 365 iocb_ptr = null (); 366 367 end toss_iocb; 368 369 fillin_cbi: 370 proc; 371 372 call cu_$level_get (cur_level); 373 unspec (cbi) = ""b; 374 cbi.version = create_branch_version_2; 375 cbi.priv_upgrade_sw = (cur_level = 1); /* want this to be a multiclass seg */ 376 cbi.parent_ac_sw = ^cbi.priv_upgrade_sw; 377 cbi.mode = RW_ACCESS; 378 cbi.rings (*) = cur_level; 379 cbi.userid = "*.*.*"; 380 cbi.access_class = sys_info$access_class_ceiling; 381 382 end fillin_cbi; 383 1 1 /* START OF: rcprm_registry_keys.incl.pl1 * * * * * * * * * * * * * * * * */ 1 2 /* Written January 1985 by Chris Jones. */ 1 3 1 4 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 5 dcl ( 1 6 REGISTRY_ACS_PATH_KEY init ("!ACS_paths"), 1 7 REGISTRY_AIM_RANGE_KEY init ("!AIM_ranges"), 1 8 REGISTRY_ATTRIBUTES_KEY 1 9 init ("!attributes"), 1 10 REGISTRY_CHARGE_TYPE_KEY 1 11 init ("!charge_types"), 1 12 REGISTRY_COMMENT_KEY init ("!comments"), 1 13 REGISTRY_FREE_KEY init ("!free"), 1 14 REGISTRY_HEADER_KEY init ("!header"), 1 15 REGISTRY_LOCATION_KEY init ("!locations"), 1 16 REGISTRY_NAME_KEY_HEAD init ("!N."), 1 17 REGISTRY_OWNER_KEY_HEAD 1 18 init ("!O."), 1 19 REGISTRY_SYSTEM_KEY init ("!system"), 1 20 REGISTRY_UID_KEY_HEAD init ("!U.") 1 21 ) static char (16) varying options (constant); 1 22 1 23 1 24 /* END OF: rcprm_registry_keys.incl.pl1 * * * * * * * * * * * * * * * * */ 384 385 2 1 /* ak_info -- include file for info structures used by the following vfile_ 2 2* control orders: "add_key", "delete_key", "get_key", and "reassign_key". 2 3* Created by M. Asherman 3/23/76 2 4* Modified 5/13/77 to add separate gk_info structure */ 2 5 2 6 dcl 1 ak_info based (ak_info_ptr), 2 7 2 header like ak_header, 2 8 2 key char (ak_key_len refer (ak_info.header.key_len)); 2 9 2 10 dcl 1 ak_header based (ak_info_ptr), 2 11 2 flags aligned, 2 12 3 input_key bit (1) unal, /* set if key is input arg */ 2 13 3 input_desc bit (1) unal, /* set if descriptor is an input arg */ 2 14 3 mbz bit (34) unal, /* not used for the present */ 2 15 2 descrip fixed (35), /* record designator */ 2 16 2 key_len fixed; 2 17 2 18 dcl ak_info_ptr ptr; 2 19 dcl ak_key_len fixed; 2 20 2 21 2 22 dcl 1 rk_info based (rk_info_ptr), 2 23 2 header like rk_header, 2 24 2 key char (rk_key_len refer (rk_info.header.key_len)); 2 25 2 26 dcl 1 rk_header based (rk_info_ptr), 2 27 2 flags aligned, 2 28 3 input_key bit (1) unal, /* same as above */ 2 29 3 input_old_desc bit (1) unal, /* set if specified entry has initial descrip 2 30* given by old_descrip */ 2 31 3 input_new_desc bit (1) unal, /* set if new val for descrip is input in this struc */ 2 32 3 mbz bit (33) unal, 2 33 2 old_descrip fixed (35), /* used if first flag is set */ 2 34 2 new_descrip fixed (35), /* used only if second flag is set */ 2 35 2 key_len fixed; 2 36 2 37 dcl rk_info_ptr ptr; 2 38 dcl rk_key_len fixed; 2 39 2 40 2 41 dcl 1 gk_info based (gk_info_ptr), /* structure for get_key order */ 2 42 2 header like gk_header, 2 43 2 key char (gk_key_len refer (gk_info.header.key_len)); 2 44 /* may be Input as well as Output */ 2 45 2 46 dcl 1 gk_header based (gk_info_ptr), 2 47 2 flags aligned, 2 48 3 input_key bit (1) unal, /* if set, use key in this structure */ 2 49 3 input_desc bit (1) unal, /* if set, descriptor given in this structure */ 2 50 3 desc_code fixed (2) unal, /* 0=any, 1=current -- applies when input_desc="0"b */ 2 51 3 position_specification 2 52 unal, 2 53 4 current bit (1) unal, /* otherwise next */ 2 54 4 rel_type fixed (2) unal, /* as in seek_head, if input_key = "1"b */ 2 55 4 head_size fixed bin (9) unsigned unaligned, 2 56 /* size of head for initial seek */ 2 57 3 reset_pos bit (1) unal, /* if set, final position unchanged by this operation */ 2 58 3 pad bit (8) unal, 2 59 3 version fixed (8) unal, 2 60 2 descrip fixed (35), /* Output, except when input_desc="1"b */ 2 61 2 key_len fixed; /* Input when input_key="1"b, also Output in all cases */ 2 62 2 63 dcl gk_info_ptr ptr; 2 64 dcl gk_key_len fixed; 2 65 2 66 dcl gk_info_version_0 internal static fixed options (constant) init (0); 2 67 2 68 /* end ak_info.incl.pl1 */ 386 387 3 1 /* include file for info structure used with record_status control order 3 2* created by M. Asherman 1/6/76 */ 3 3 /* modified 6/15/77 to support stationary type records */ 3 4 3 5 dcl rs_info_ptr ptr; 3 6 dcl 1 rs_info based (rs_info_ptr) aligned, 3 7 2 version fixed, /* must be set to 1 or 2 (Input) */ 3 8 2 flags aligned, 3 9 3 lock_sw bit (1) unal, /* Input -- if ="1"b try to lock record */ 3 10 3 unlock_sw bit (1) unal, /* Input -- if ="1"b try to unlock record */ 3 11 3 create_sw bit (1) unal, /* Input--if set creat new record */ 3 12 3 locate_sw bit (1) unal, /* Input--if set causes current rec to be 3 13* located outside the index by descrip, or created without key */ 3 14 3 inc_ref_count bit (1) unal, /* Input--bump reference count of record, if stationary */ 3 15 3 dec_ref_count bit (1) unal, /* Input--decrement ref count if this flag set and record stationary */ 3 16 3 locate_pos_sw bit (1) unal, /* Input--if set the record_length is taken 3 17* as an input argument specifying the absolute logical record positioni to which both the current and next positions will be set */ 3 18 3 mbz1 bit (29) unal, /* must be set to "0"b, reserved for future use */ 3 19 2 record_length fixed (21), /* length in bytes, Input if create_sw set */ 3 20 2 max_rec_len fixed (21), /* max length of contained record 3 21* Input if create_sw is set--overrides min_block_size in effect */ 3 22 2 record_ptr ptr, /* points to first byte of record--will be word aligned */ 3 23 2 descriptor fixed (35), /* Input if locate_sw set and create_sw="0"b */ 3 24 2 ref_count fixed (34), /* Output--should match number of keys on this record-- = -1 if non-stationary record */ 3 25 2 time_last_modified fixed (71), /* Output */ 3 26 2 modifier fixed (35), /* Output--also Input when locking */ 3 27 2 block_ptr ptr unal, /* Output */ 3 28 2 last_image_modifier 3 29 fixed (35), 3 30 2 mbz2 fixed; 3 31 3 32 dcl 1 rs_desc based (addr (rs_info.descriptor)), 3 33 /* record block descriptor structure */ 3 34 2 comp_num fixed (17) unal, /* msf component number */ 3 35 2 offset bit (18) unal; /* word offset of record block */ 3 36 3 37 dcl 1 seq_desc based (addr (rs_info.descriptor)), 3 38 /* for sequential files */ 3 39 2 bitno bit (6) unal, 3 40 2 comp_num fixed (11) unal, /* msf component number */ 3 41 2 wordno bit (18) unal; /* word offset */ 3 42 3 43 dcl rs_info_version_1 static internal fixed init (1); 3 44 dcl rs_info_version_2 static internal fixed init (2); 3 45 388 389 4 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 4 2 4 3 /* Written 05/04/78 by C. D. Tavares */ 4 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 4 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 4 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 4 7 4 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 4 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 4 10 iox_$close entry (pointer, fixed bin (35)), 4 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 4 12 iox_$delete_record entry (pointer, fixed bin (35)), 4 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 4 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 4 15 iox_$err_not_attached entry options (variable), 4 16 iox_$err_not_closed entry options (variable), 4 17 iox_$err_no_operation entry options (variable), 4 18 iox_$err_not_open entry options (variable), 4 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 4 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 4 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 4 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 4 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 4 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 4 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 4 28 iox_$propagate entry (pointer), 4 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 4 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 4 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 4 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 4 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 4 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 4 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 4 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 4 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 4 40 4 41 dcl (iox_$user_output, 4 42 iox_$user_input, 4 43 iox_$user_io, 4 44 iox_$error_output) external static pointer; 4 45 4 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 390 391 5 1 /* Begin include file ..... iox_modes.incl.pl1 */ 5 2 5 3 /* Written by C. D. Tavares, 03/17/75 */ 5 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 5 5 5 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 5 7 ("stream_input", "stream_output", "stream_input_output", 5 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 5 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 5 10 "direct_input", "direct_output", "direct_update"); 5 11 5 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 5 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 5 14 5 15 dcl (Stream_input initial (1), 5 16 Stream_output initial (2), 5 17 Stream_input_output initial (3), 5 18 Sequential_input initial (4), 5 19 Sequential_output initial (5), 5 20 Sequential_input_output initial (6), 5 21 Sequential_update initial (7), 5 22 Keyed_sequential_input initial (8), 5 23 Keyed_sequential_output initial (9), 5 24 Keyed_sequential_update initial (10), 5 25 Direct_input initial (11), 5 26 Direct_output initial (12), 5 27 Direct_update initial (13)) fixed bin int static options (constant); 5 28 5 29 /* End include file ..... iox_modes.incl.pl1 */ 392 393 6 1 /* BEGIN INCLUDE FILE - - - create_branch_info.incl.pl1 - - - created January 1975 */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(89-01-16,TLNguyen), approve(89-01-16,MCR8049), 6 6* audit(89-02-03,Parisek), install(89-03-15,MR12.3-1025): 6 7* 1. Declare version constant properly. 6 8* 2. Remove version 1 since it was never referenced and to force 6 9* callers to upgrade their programs. 6 10* END HISTORY COMMENTS */ 6 11 6 12 6 13 /* Modified December 1984 for dir_quota, Keith Loepere. */ 6 14 6 15 /* this include files gives the argument structure for create_branch_ */ 6 16 6 17 dcl 1 create_branch_info aligned based, 6 18 2 version fixed bin, /* set this to the largest value given below */ 6 19 2 switches unaligned, 6 20 3 dir_sw bit (1) unaligned, /* if on, a directory branch is wanted */ 6 21 3 copy_sw bit (1) unaligned, /* if on, initiating segment will be done by copying */ 6 22 3 chase_sw bit (1) unaligned, /* if on, if pathname is a link, it will be chased */ 6 23 3 priv_upgrade_sw bit (1) unaligned, /* privileged creation (ring 1) of upgraded object */ 6 24 3 parent_ac_sw bit (1) unaligned, /* if on, use parent's access class for seg or dir created */ 6 25 3 mbz1 bit (31) unaligned, /* pad to full word */ 6 26 2 mode bit (3) unaligned, /* segment or directory for acl for userid */ 6 27 2 mbz2 bit (33) unaligned, /* pad to full word */ 6 28 2 rings (3) fixed bin (3), /* branch's ring brackets */ 6 29 2 userid char (32), /* user's access control name */ 6 30 2 bitcnt fixed bin (24), /* bit count of the segment */ 6 31 2 quota fixed bin (18), /* for directories, this am't of quota will be moved to it */ 6 32 2 access_class bit (72), /* is the access class of the body of the branch */ 6 33 2 dir_quota fixed bin (18); /* for directories, this am't of dir quota will be moved to it */ 6 34 6 35 dcl create_branch_version_2 fixed bin int static options (constant) init (2); 6 36 6 37 /* END INCLUDE FILE - - - create_branch_info.incl.pl1 - - - */ 6 38 394 395 7 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 7 2* 7 3* Values for the "access mode" argument so often used in hardcore 7 4* James R. Davis 26 Jan 81 MCR 4844 7 5* Added constants for SM access 4/28/82 Jay Pattin 7 6* Added text strings 03/19/85 Chris Jones 7 7**/ 7 8 7 9 7 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 7 11 dcl ( 7 12 N_ACCESS init ("000"b), 7 13 R_ACCESS init ("100"b), 7 14 E_ACCESS init ("010"b), 7 15 W_ACCESS init ("001"b), 7 16 RE_ACCESS init ("110"b), 7 17 REW_ACCESS init ("111"b), 7 18 RW_ACCESS init ("101"b), 7 19 S_ACCESS init ("100"b), 7 20 M_ACCESS init ("010"b), 7 21 A_ACCESS init ("001"b), 7 22 SA_ACCESS init ("101"b), 7 23 SM_ACCESS init ("110"b), 7 24 SMA_ACCESS init ("111"b) 7 25 ) bit (3) internal static options (constant); 7 26 7 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 7 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 7 29 7 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 7 31 static options (constant); 7 32 7 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 7 34 static options (constant); 7 35 7 36 dcl ( 7 37 N_ACCESS_BIN init (00000b), 7 38 R_ACCESS_BIN init (01000b), 7 39 E_ACCESS_BIN init (00100b), 7 40 W_ACCESS_BIN init (00010b), 7 41 RW_ACCESS_BIN init (01010b), 7 42 RE_ACCESS_BIN init (01100b), 7 43 REW_ACCESS_BIN init (01110b), 7 44 S_ACCESS_BIN init (01000b), 7 45 M_ACCESS_BIN init (00010b), 7 46 A_ACCESS_BIN init (00001b), 7 47 SA_ACCESS_BIN init (01001b), 7 48 SM_ACCESS_BIN init (01010b), 7 49 SMA_ACCESS_BIN init (01011b) 7 50 ) fixed bin (5) internal static options (constant); 7 51 7 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 396 397 398 399 end rcprm_registry_util_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0808.7 rcprm_registry_util_.pl1 >spec>install>1111>rcprm_registry_util_.pl1 384 1 03/15/85 0953.1 rcprm_registry_keys.incl.pl1 >ldd>include>rcprm_registry_keys.incl.pl1 386 2 07/19/79 1547.0 ak_info.incl.pl1 >ldd>include>ak_info.incl.pl1 388 3 07/19/79 1547.0 rs_info.incl.pl1 >ldd>include>rs_info.incl.pl1 390 4 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 392 5 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 394 6 03/16/89 2012.8 create_branch_info.incl.pl1 >ldd>include>create_branch_info.incl.pl1 396 7 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.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. Keyed_sequential_update 000000 constant fixed bin(17,0) initial dcl 5-15 set ref 192* 274* REGISTRY_FREE_KEY 000025 constant varying char(16) initial dcl 1-5 set ref 83* REGISTRY_NAME_KEY_HEAD 000020 constant varying char(16) initial dcl 1-5 set ref 90 111* REGISTRY_OWNER_KEY_HEAD 000013 constant varying char(16) initial dcl 1-5 set ref 97 104 118* REGISTRY_SYSTEM_KEY 000006 constant varying char(16) initial dcl 1-5 set ref 125* REGISTRY_UID_KEY_HEAD 000001 constant varying char(16) initial dcl 1-5 set ref 132* RW_ACCESS constant bit(3) initial packed unaligned dcl 7-11 ref 377 Relative_useconds 000064 constant bit(2) initial packed unaligned dcl 49 set ref 193* Sleep_times 000034 constant fixed bin(71,0) initial array dcl 50 set ref 191 191 193* TRANSACTION_CONTROL_FILE_NAME 000032 constant char(7) initial packed unaligned dcl 51 set ref 142* 180* 180* access_class 20 000100 automatic bit(72) level 2 dcl 30 set ref 380* addr builtin function dcl 76 ref 142 142 155 155 288 288 292 292 296 296 admin_gate_$reset_privileges 000010 constant entry external dcl 54 ref 312 admin_gate_$set_privileges 000012 constant entry external dcl 56 ref 306 after builtin function dcl 76 ref 351 ak_header based structure level 1 unaligned dcl 2-10 before builtin function dcl 76 ref 351 351 cbi 000100 automatic structure level 1 dcl 30 set ref 142 142 373* cleanup 000370 stack reference condition dcl 74 ref 184 261 code 000123 automatic fixed bin(35,0) dcl 31 set ref 142* 143 148* 149 155* 156 158* 159 164 186* 187 190* 191 192* 193 197 197* 199 204 214* 215 217* 218 220* 222 263* 264 270* 271 274* 276 280 292* 293 296* 300 create_branch_info based structure level 1 dcl 6-17 create_branch_version_2 constant fixed bin(17,0) initial dcl 6-35 ref 374 create_sw 000124 automatic bit(1) dcl 32 set ref 170* 176* 180 229* 237* 245* 253* 267 cu_$level_get 000014 constant entry external dcl 58 ref 372 cur_level 000125 automatic fixed bin(17,0) dcl 33 set ref 372* 375 378 error_table_$file_busy 000032 external static fixed bin(35,0) dcl 66 ref 190 191 193 197 error_table_$lock_wait_time_exceeded 000034 external static fixed bin(35,0) dcl 67 ref 197 flags based structure level 2 dcl 2-46 get_key_info 000335 automatic structure level 1 dcl 43 set ref 292 292 gk_header based structure level 1 unaligned dcl 2-46 set ref 320* gk_info_ptr 000376 automatic pointer dcl 2-63 set ref 318* 319 320 321 322 332 332 332 340 340 340 gk_info_version_0 constant fixed bin(17,0) initial dcl 2-66 ref 321 hbound builtin function dcl 76 ref 191 hcs_$create_branch_ 000016 constant entry external dcl 59 ref 142 head_size 0(09) based fixed bin(9,0) level 4 packed packed unsigned unaligned dcl 2-46 set ref 332* 340* header 000335 automatic structure level 2 dcl 43 set ref 288 288 i 000126 automatic fixed bin(17,0) dcl 34 set ref 191* 193* input_key based bit(1) level 3 packed packed unaligned dcl 2-46 set ref 322* io_module 000127 automatic char(32) packed unaligned dcl 35 set ref 230* 238* 246* 254* 267* ioa_$rsnnl 000020 constant entry external dcl 60 ref 132 180 267 iocb_ptr parameter pointer dcl 358 in procedure "toss_iocb" set ref 355 360 361* 362* 363* 365* iocb_ptr 000140 automatic pointer dcl 36 in procedure "rcprm_registry_util_" set ref 140* 148* 154* 155* 155 155 158* 162* 182* 184* 186* 192* 199* 202 213* 214* 217* 260* 261* 270* 274* 276* 279 286* 292* 296* iox_$attach_name 000042 constant entry external dcl 4-8 ref 186 270 iox_$close 000044 constant entry external dcl 4-8 ref 214 361 iox_$control 000046 constant entry external dcl 4-8 ref 292 296 iox_$delete_record 000050 constant entry external dcl 4-8 ref 158 iox_$destroy_iocb 000052 constant entry external dcl 4-8 ref 220 363 iox_$detach_iocb 000054 constant entry external dcl 4-8 ref 217 362 iox_$open 000056 constant entry external dcl 4-8 ref 192 274 iox_$seek_key 000060 constant entry external dcl 4-8 ref 154 iox_$write_record 000062 constant entry external dcl 4-8 ref 155 key 3 000335 automatic char(40) level 2 in structure "get_key_info" packed packed unaligned dcl 43 in procedure "rcprm_registry_util_" set ref 288* key parameter varying char dcl 330 in procedure "set_full_key" ref 327 334 337 340 342 key_len 2 based fixed bin(17,0) level 2 dcl 2-46 set ref 332* 340* lbound builtin function dcl 76 ref 191 length builtin function dcl 76 ref 332 340 mode 2 000100 automatic bit(3) level 2 packed packed unaligned dcl 30 set ref 377* null builtin function dcl 76 ref 140 182 186 186 260 270 270 291 319 332 340 360 365 p_code parameter fixed bin(35,0) dcl 17 set ref 136 164* 167 173 204* 207 210 222* 226 234 242 250 280* 283 300* p_gk_header_ptr parameter pointer dcl 18 ref 79 86 93 100 107 114 121 128 318 p_iocb_ptr parameter pointer dcl 19 set ref 167 173 202* 207 210 213 220* 226 234 242 250 279* 283 286 p_key parameter char packed unaligned dcl 20 set ref 79 86 93 100 107 114 121 128 332 334* 342* p_owner parameter char packed unaligned dcl 21 set ref 93 97* p_privileges_string parameter bit(36) dcl 22 set ref 303 306* 309 312* p_project parameter char packed unaligned dcl 23 ref 100 104 p_record_ptr parameter pointer dcl 24 set ref 283 298* p_registry_dir parameter char packed unaligned dcl 25 ref 136 139 167 173 178 226 234 242 250 257 p_resource_name parameter char packed unaligned dcl 27 ref 86 90 283 287 p_resource_type parameter char packed unaligned dcl 26 ref 226 234 242 250 259 p_uid parameter bit(36) dcl 28 set ref 128 132* parent_ac_sw 1(04) 000100 automatic bit(1) level 3 packed packed unaligned dcl 30 set ref 376* pathname_ 000022 constant entry external dcl 61 ref 180 180 267 267 personid parameter char packed unaligned dcl 349 ref 346 351 351 position_specification 0(05) based structure level 3 packed packed unaligned dcl 2-46 priv_upgrade_sw 1(03) 000100 automatic bit(1) level 3 packed packed unaligned dcl 30 set ref 375* 376 record_ptr 4 000352 automatic pointer level 2 dcl 47 set ref 291* 298 record_status 000352 automatic structure level 1 dcl 47 set ref 289* 296 296 registry_dir 000142 automatic char(168) packed unaligned dcl 37 set ref 139* 142* 148* 178* 180* 180* 257* 267* 267* resource_name 000214 automatic char(32) packed unaligned dcl 38 set ref 287* 288* resource_type 000224 automatic char(32) packed unaligned dcl 39 set ref 259* 263* 263* 267* 267* rings 3 000100 automatic fixed bin(3,0) array level 2 dcl 30 set ref 378* rk_header based structure level 1 unaligned dcl 2-26 rs_info based structure level 1 dcl 3-6 rs_info_version_2 constant fixed bin(17,0) initial dcl 3-44 ref 290 rtrim builtin function dcl 76 ref 90 104 133 133 351 suffix 000234 automatic char(4) packed unaligned dcl 40 set ref 231* 239* 247* 255* 263* suffixed_name_$make 000024 constant entry external dcl 62 ref 263 switches 1 000100 automatic structure level 2 packed packed unaligned dcl 30 sys_info$access_class_ceiling 000036 external static bit(72) dcl 70 ref 380 sys_info$dir_privilege 000040 external static bit(36) dcl 72 set ref 306* temp_string 000235 automatic char(256) packed unaligned dcl 41 set ref 132* 133 133 180* 186* 267* 270* timer_manager_$sleep 000026 constant entry external dcl 63 ref 193 unique_chars_ 000030 constant entry external dcl 64 ref 270 270 unspec builtin function dcl 76 set ref 289* 320* 373* userid 6 000100 automatic char(32) level 2 dcl 30 set ref 379* version 0(27) based fixed bin(8,0) level 3 in structure "gk_header" packed packed unaligned dcl 2-46 in procedure "rcprm_registry_util_" set ref 321* version 000352 automatic fixed bin(17,0) level 2 in structure "record_status" dcl 47 in procedure "rcprm_registry_util_" set ref 290* version 000100 automatic fixed bin(17,0) level 2 in structure "cbi" dcl 30 in procedure "rcprm_registry_util_" set ref 374* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 7-33 Direct_input internal static fixed bin(17,0) initial dcl 5-15 Direct_output internal static fixed bin(17,0) initial dcl 5-15 Direct_update internal static fixed bin(17,0) initial dcl 5-15 E_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 5-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 5-15 M_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 REGISTRY_ACS_PATH_KEY internal static varying char(16) initial dcl 1-5 REGISTRY_AIM_RANGE_KEY internal static varying char(16) initial dcl 1-5 REGISTRY_ATTRIBUTES_KEY internal static varying char(16) initial dcl 1-5 REGISTRY_CHARGE_TYPE_KEY internal static varying char(16) initial dcl 1-5 REGISTRY_COMMENT_KEY internal static varying char(16) initial dcl 1-5 REGISTRY_HEADER_KEY internal static varying char(16) initial dcl 1-5 REGISTRY_LOCATION_KEY internal static varying char(16) initial dcl 1-5 REW_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 7-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 Sequential_input internal static fixed bin(17,0) initial dcl 5-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 5-15 Sequential_output internal static fixed bin(17,0) initial dcl 5-15 Sequential_update internal static fixed bin(17,0) initial dcl 5-15 Stream_input internal static fixed bin(17,0) initial dcl 5-15 Stream_input_output internal static fixed bin(17,0) initial dcl 5-15 Stream_output internal static fixed bin(17,0) initial dcl 5-15 W_ACCESS internal static bit(3) initial packed unaligned dcl 7-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 7-36 ak_info based structure level 1 unaligned dcl 2-6 ak_info_ptr automatic pointer dcl 2-18 ak_key_len automatic fixed bin(17,0) dcl 2-19 gk_info based structure level 1 unaligned dcl 2-41 gk_key_len automatic fixed bin(17,0) dcl 2-64 iox_$attach_loud 000000 constant entry external dcl 4-8 iox_$attach_ptr 000000 constant entry external dcl 4-8 iox_$close_file 000000 constant entry external dcl 4-8 iox_$detach 000000 constant entry external dcl 4-8 iox_$err_no_operation 000000 constant entry external dcl 4-8 iox_$err_not_attached 000000 constant entry external dcl 4-8 iox_$err_not_closed 000000 constant entry external dcl 4-8 iox_$err_not_open 000000 constant entry external dcl 4-8 iox_$error_output external static pointer dcl 4-41 iox_$find_iocb 000000 constant entry external dcl 4-8 iox_$find_iocb_n 000000 constant entry external dcl 4-8 iox_$get_chars 000000 constant entry external dcl 4-8 iox_$get_line 000000 constant entry external dcl 4-8 iox_$look_iocb 000000 constant entry external dcl 4-8 iox_$modes 000000 constant entry external dcl 4-8 iox_$move_attach 000000 constant entry external dcl 4-8 iox_$open_file 000000 constant entry external dcl 4-8 iox_$position 000000 constant entry external dcl 4-8 iox_$propagate 000000 constant entry external dcl 4-8 iox_$put_chars 000000 constant entry external dcl 4-8 iox_$read_key 000000 constant entry external dcl 4-8 iox_$read_length 000000 constant entry external dcl 4-8 iox_$read_record 000000 constant entry external dcl 4-8 iox_$rewrite_record 000000 constant entry external dcl 4-8 iox_$user_input external static pointer dcl 4-41 iox_$user_io external static pointer dcl 4-41 iox_$user_output external static pointer dcl 4-41 iox_modes internal static char(24) initial array dcl 5-6 rk_info based structure level 1 unaligned dcl 2-22 rk_info_ptr automatic pointer dcl 2-37 rk_key_len automatic fixed bin(17,0) dcl 2-38 rs_desc based structure level 1 packed packed unaligned dcl 3-32 rs_info_ptr automatic pointer dcl 3-5 rs_info_version_1 internal static fixed bin(17,0) initial dcl 3-43 seq_desc based structure level 1 packed packed unaligned dcl 3-37 short_iox_modes internal static char(4) initial array dcl 5-12 NAMES DECLARED BY EXPLICIT CONTEXT. CREATE_TCF_RETURN 001145 constant label dcl 162 ref 143 149 156 159 GRAB_REGISTRY_COMMON 001754 constant label dcl 257 ref 232 240 248 GRAB_REGISTRY_RETURN 002225 constant label dcl 276 ref 264 271 GRAB_TCF_COMMON 001222 constant label dcl 178 ref 171 GRAB_TCF_RETURN 001471 constant label dcl 202 ref 187 RELEASE_TCF_RETURN 001572 constant label dcl 222 ref 215 218 create_transaction_control_file 000760 constant entry external dcl 136 fillin_cbi 003016 constant entry internal dcl 369 ref 141 find_record_return 002416 constant label dcl 298 ref 293 find_resource_record 002250 constant entry external dcl 283 flip_person_and_project 002627 constant entry internal dcl 346 ref 97 free_key 000173 constant entry external dcl 79 grab_registry 001602 constant entry external dcl 226 grab_registry_create 001723 constant entry external dcl 250 grab_registry_no_journalize 001635 constant entry external dcl 234 grab_registry_old 001670 constant entry external dcl 242 grab_transaction_control_file 001162 constant entry external dcl 167 grab_transaction_control_file_create 001203 constant entry external dcl 173 ref 148 init_gk_header 002467 constant entry internal dcl 315 ref 82 89 96 103 110 117 124 131 name_key 000226 constant entry external dcl 86 ref 288 owner_key 000324 constant entry external dcl 93 project_key 000426 constant entry external dcl 100 rcprm_registry_util_ 000161 constant entry external dcl 12 release_registry 001516 constant entry external dcl 210 release_transaction_control_file 001503 constant entry external dcl 207 set_full_key 002510 constant entry internal dcl 327 ref 83 90 97 125 133 set_partial_key 002560 constant entry internal dcl 337 ref 104 111 118 skeleton_acquisition_key 000563 constant entry external dcl 114 skeleton_key 000532 constant entry external dcl 107 system_key 000614 constant entry external dcl 121 toss_iocb 002741 constant entry internal dcl 355 ref 162 184 199 261 276 turn_off_privs 002451 constant entry external dcl 309 turn_on_privs 002427 constant entry external dcl 303 uid_key 000647 constant entry external dcl 128 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3714 4000 3101 3724 Length 4426 3101 64 411 612 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcprm_registry_util_ 436 external procedure is an external procedure. on unit on line 184 70 on unit on unit on line 261 70 on unit init_gk_header internal procedure shares stack frame of external procedure rcprm_registry_util_. set_full_key 66 internal procedure is called during a stack extension. flip_person_and_project 70 internal procedure uses returns(char(*)) or returns(bit(*)). toss_iocb 72 internal procedure is called by several nonquick procedures. fillin_cbi internal procedure shares stack frame of external procedure rcprm_registry_util_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcprm_registry_util_ 000100 cbi rcprm_registry_util_ 000123 code rcprm_registry_util_ 000124 create_sw rcprm_registry_util_ 000125 cur_level rcprm_registry_util_ 000126 i rcprm_registry_util_ 000127 io_module rcprm_registry_util_ 000140 iocb_ptr rcprm_registry_util_ 000142 registry_dir rcprm_registry_util_ 000214 resource_name rcprm_registry_util_ 000224 resource_type rcprm_registry_util_ 000234 suffix rcprm_registry_util_ 000235 temp_string rcprm_registry_util_ 000335 get_key_info rcprm_registry_util_ 000352 record_status rcprm_registry_util_ 000376 gk_info_ptr rcprm_registry_util_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp realloc_char_temp cat_realloc_chars call_ext_in_desc call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac enable_op shorten_stack ext_entry ext_entry_desc int_entry int_entry_desc return_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. admin_gate_$reset_privileges admin_gate_$set_privileges cu_$level_get hcs_$create_branch_ ioa_$rsnnl iox_$attach_name iox_$close iox_$control iox_$delete_record iox_$destroy_iocb iox_$detach_iocb iox_$open iox_$seek_key iox_$write_record pathname_ suffixed_name_$make timer_manager_$sleep unique_chars_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$file_busy error_table_$lock_wait_time_exceeded sys_info$access_class_ceiling sys_info$dir_privilege LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000160 15 000166 79 000167 82 000210 83 000211 84 000221 86 000222 89 000250 90 000251 91 000320 93 000322 96 000346 97 000347 98 000422 100 000424 103 000450 104 000451 105 000526 107 000530 110 000547 111 000550 112 000560 114 000561 117 000600 118 000601 119 000611 121 000612 124 000631 125 000632 126 000642 128 000643 131 000664 132 000665 133 000722 134 000752 136 000754 139 000775 140 001005 141 001007 142 001010 143 001037 148 001041 149 001061 154 001063 155 001107 156 001130 158 001132 159 001143 162 001145 164 001153 165 001155 167 001156 170 001177 171 001200 173 001201 176 001220 178 001222 180 001232 182 001312 184 001314 186 001341 187 001376 190 001400 191 001403 192 001415 193 001433 195 001451 197 001453 199 001461 202 001471 204 001474 205 001476 207 001477 210 001513 213 001526 214 001532 215 001543 217 001545 218 001556 220 001560 222 001572 224 001574 226 001575 229 001624 230 001625 231 001630 232 001632 234 001633 237 001657 238 001660 239 001663 240 001665 242 001666 245 001712 246 001713 247 001716 248 001720 250 001721 253 001745 254 001747 255 001752 257 001754 259 001764 260 001772 261 001774 263 002021 264 002045 267 002047 270 002133 271 002204 274 002206 276 002225 279 002235 280 002240 281 002242 283 002243 286 002265 287 002271 288 002301 289 002323 290 002326 291 002330 292 002332 293 002362 296 002364 298 002416 300 002421 301 002423 303 002424 306 002434 307 002446 309 002447 312 002456 313 002466 315 002467 318 002470 319 002473 320 002477 321 002502 322 002504 325 002506 327 002507 332 002523 334 002543 335 002556 337 002557 340 002573 342 002612 344 002625 346 002626 351 002642 355 002740 360 002746 361 002753 362 002764 363 002777 365 003012 367 003015 369 003016 372 003017 373 003026 374 003031 375 003033 376 003042 377 003052 378 003056 379 003067 380 003072 382 003077 ----------------------------------------------------------- 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