COMPILATION LISTING OF SEGMENT rcp_access_kernel_setup 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 0954.1 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 9 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 10 11 rcp_access_kernel_setup: 12 procedure (a_operation, a_requestor_info_ptr, a_resource_info_ptr, a_rm_on, a_acs_path, a_rcp_priv, a_owner, 13 a_effmode, a_error_code); 14 15 /* This program implements the set up procedures for the RCP 16* * access kernel. 17* * Created 841108 by Maria M. Pozzo 18* * Modified 850401 by E. Swenson to protect pointer reference by 19* * rm_on flag. 20* * 21* * This routine determines if a valid operation was requested, 22* * if Resource Management (RM) is enabled, the registry directory if 23* * there is one, if the rcp privilege is enabled, if the Initializer 24* * has made the call (Initializer gets REW), the resource owner 25* * if there is one and some general setup. 26**/ 27 28 29 /****^ HISTORY COMMENTS: 30* 1) change(87-07-14,Rauschelbach), approve(87-08-07,MCR7748), 31* audit(87-11-11,Farley), install(87-11-30,MR12.2-1004): 32* Removed signal to vfile_error condition as it was erroneously left in from 33* debugging. 34* END HISTORY COMMENTS */ 35 36 37 /* ARGUMENT DATA */ 38 39 dcl a_operation bit (36) aligned; /* (I) RCP operation */ 40 dcl a_requestor_info_ptr ptr; /* (I) Requestor information */ 41 dcl a_resource_info_ptr ptr; /* (I) Resource information */ 42 dcl a_rm_on bit (1) aligned; /* (O) ON-> Resource Management enabled */ 43 dcl a_acs_path char (168); /* (O) Pathnameof the ACS segment */ 44 dcl a_rcp_priv bit (1) aligned; /* (O) ON->the rcp system priviege is enabled */ 45 dcl a_owner char (32); /* (O) Resouce owner if one exists */ 46 dcl a_effmode bit (3); /* (O) Some operations have a default effmode */ 47 dcl a_error_code fixed bin (35); /* (O) Error code */ 48 49 /* AUTOMATIC DATA */ 50 51 dcl based_bits bit (bl * 9) aligned based (bp); 52 dcl device_found bit (1) aligned; /* Locates the device in rcp_data */ 53 dcl device_off bit (18) aligned; /* Offset to device entry in rcp_data */ 54 dcl is_volume bit (1); /* True if resource is a volume. */ 55 dcl rcp_priv bit (1) aligned; /* rcp privilege on */ 56 dcl rm_on bit (1) aligned; /* Resource_management enabled */ 57 dcl effmode bit (3); 58 dcl object_access_class (2) bit (72) aligned; 59 dcl operation bit (36) aligned; 60 dcl base_operation bit (36) aligned; 61 dcl acs_path char (168); /* Pathname of the ACS segment */ 62 dcl based_charstring char (bl) aligned based (bp); 63 dcl owner char (32); /* Owner name if one exists */ 64 dcl temp_user_id char (32); 65 dcl prim_resource_type char (32); /* Hold the primary resource type */ 66 67 dcl bl fixed bin (21); 68 dcl error_code fixed bin (35); /* Local error code */ 69 dcl (i, loc) fixed bin; /* Working variable */ 70 71 dcl bp ptr; 72 dcl operation_ptr ptr; 73 74 dcl 1 en_access_op like encoded_access_op aligned based (operation_ptr) aligned; 75 76 /* EXTERNAL ENTRIES */ 77 78 dcl aim_check_$equal entry (bit (72) aligned, bit (72) aligned) returns (bit (1) aligned); 79 dcl pathname_ entry (char (*), char (*)) returns (char (168)); 80 dcl rcp_pointers_$data entry () returns (ptr); 81 dcl resource_info_$get_primary_type 82 entry (char (*), char (*), fixed bin (35)); 83 dcl resource_info_$get_type 84 entry (char (*), bit (1), fixed bin (35)); 85 86 dcl access_operations_$rcp_register 87 bit (36) aligned external; 88 dcl access_operations_$rcp_register_acquire 89 bit (36) aligned external; 90 dcl access_operations_$rcp_acquire 91 bit (36) aligned external; 92 dcl access_operations_$rcp_cancel 93 bit (36) aligned external; 94 95 /* ERROR ENTRIES */ 96 97 dcl error_table_$unsupported_multi_class_volume 98 fixed bin (35) external; 99 dcl error_table_$resource_unknown 100 fixed bin (35) external; 101 dcl error_table_$action_not_performed 102 fixed bin (35) external; 103 104 dcl (addr, hbound, length, null, ptr, rtrim, substr, unspec) 105 builtin; 106 107 /* CONSTANTS */ 108 109 dcl DEFAULT_REGISTRY_DIR char (64) internal static options (constant) init (">sc1>rcp"); 110 111 112 113 114 /* Copy arguments */ 115 116 operation = a_operation; 117 base_operation = operation; 118 addr (base_operation) -> encoded_access_op.detailed_operation = 0; 119 operation_ptr = addr (operation); 120 requestor_info_ptr = a_requestor_info_ptr; 121 resource_info_ptr = a_resource_info_ptr; 122 record_ptr = resource_info.registry_record_ptr; 123 124 /* Initialize local variables */ 125 126 device_found, rm_on, rcp_priv = "0"b; 127 device_off = (18)"0"b; 128 prim_resource_type, owner = ""; 129 acs_path = ""; 130 i, loc, bl = 0; 131 error_code = 0; 132 bp = null (); 133 effmode = ""b; 134 ops_ptr = addr (en_access_op.detailed_operation); 135 136 /* Determine if Resource Management enabled */ 137 138 rcpd_ptr = rcp_pointers_$data (); 139 if rcpd.modes.resource_mgmt_enabled then 140 rm_on = "1"b; 141 else rm_on = "0"b; 142 143 /* Set Registry and rcp priv flag */ 144 145 if rm_on then 146 if (resource_info.registry_dir = "") then 147 resource_info.registry_dir = DEFAULT_REGISTRY_DIR; 148 149 if addr (requestor_info.current_authorization) -> aim_template.privileges.rcp then 150 rcp_priv = "1"b; 151 else rcp_priv = "0"b; 152 153 /* If it's a Register operation then there is no owner or registry */ 154 /* yet so no need to continue just give REW access. */ 155 /* if it's an acquire operation, as long as it is a free resource */ 156 /* which is checked outside the kernel, then it can be acquired. */ 157 /* If it's a cancel operation, as long as this is the user who */ 158 /* made the reservation, or it was a privileged user (which are both */ 159 /* checked outside the kernel) then it can be cancelled. */ 160 161 if base_operation = access_operations_$rcp_register | base_operation = access_operations_$rcp_register_acquire 162 | base_operation = access_operations_$rcp_acquire | base_operation = access_operations_$rcp_cancel then do; 163 effmode = REW_ACCESS; 164 owner = "free"; 165 goto MAIN_RETURN; 166 end; 167 168 /* If the resource is not free and it is a volume, see if it is */ 169 /* a multi-class volume. We can not handle multi-class volumes unless */ 170 /* we are executing in ring 1 OR the user has the rcp privilege enabled. */ 171 /* Otherwise, no one has access to multi-class volumes not even the */ 172 /* Initializer. */ 173 174 call resource_info_$get_primary_type (resource_info.resource_type, prim_resource_type, error_code); 175 if error_code ^= 0 then 176 goto MAIN_RETURN; 177 call resource_info_$get_type (prim_resource_type, is_volume, error_code); 178 if error_code ^= 0 then 179 goto MAIN_RETURN; 180 181 if rm_on then 182 if (is_volume & ^registry_record.free & requestor_info.validation_level ^= 1 & ^rcp_priv) then do; 183 call chase (registry_record.aim_range_desc, bp, bl, error_code); 184 if error_code ^= 0 then 185 goto MAIN_RETURN; 186 if bl > 0 then 187 addr (object_access_class) -> based_bits = based_bits; 188 else unspec (object_access_class) = ""b;/* no range, set to lowest possible */ 189 if ^aim_check_$equal (object_access_class (1), object_access_class (2)) then do; 190 error_code = error_table_$unsupported_multi_class_volume; 191 goto MAIN_RETURN; 192 end; 193 end; 194 195 /* If it is the Initializer, just give REW access. */ 196 197 if requestor_info.user_id = "Initializer.SysDaemon.z" then do; 198 effmode = REW_ACCESS; 199 goto MAIN_RETURN; 200 end; 201 202 /* Let's get the owner if it exists */ 203 /* Set the owner bit in the operation if this user is the owner. */ 204 205 if rm_on then do; 206 call chase (registry_record.owner_desc, bp, bl, error_code); 207 if error_code ^= 0 then 208 goto MAIN_RETURN; 209 owner = based_charstring; 210 temp_user_id = substr (requestor_info.user_id, 1, length (rtrim (requestor_info.user_id)) - 2); 211 detailed_operation.owner = (owner = temp_user_id); 212 end; 213 214 /* Let's get the ACS segment pathname if it exists */ 215 216 if rm_on then do; 217 if registry_record.acs_path_desc ^= 0 then do; 218 call chase (registry_record.acs_path_desc, bp, bl, error_code); 219 if error_code ^= 0 then 220 goto MAIN_RETURN; 221 acs_path = based_charstring; 222 end; 223 end; 224 else do; 225 if ^is_volume then 226 do i = 1 to hbound (DEVICE_TYPE, 1); 227 if prim_resource_type = DEVICE_TYPE (i) then do; 228 device_found = "0"b; 229 do device_off = rcpd.dtype (i).first_off repeat device.next_off 230 while ((device_off ^= (18)"0"b) & ^device_found); 231 device_ptr = ptr (rcpd_ptr, device_off); 232 if device.device_name = resource_info.resource_name then 233 device_found = "1"b; 234 end; 235 if ^device_found then 236 error_code = error_table_$resource_unknown; 237 else if rm_on then 238 acs_path = pathname_ ((resource_info.registry_dir), (device.acs_name)); 239 else acs_path = pathname_ (DEFAULT_REGISTRY_DIR, (device.acs_name)); 240 goto MAIN_RETURN; 241 end; 242 end; 243 end; 244 245 /* If this is a priv_gate call then DAC access check is by_passed, and */ 246 /* if the rcp privilege is enabled then AIM access check is by_passed; */ 247 /* so if both are true just give REW. */ 248 249 if (detailed_operation.priv_gate_call & rcp_priv) then 250 effmode = REW_ACCESS; 251 252 253 MAIN_RETURN: 254 a_operation = operation; 255 a_rm_on = rm_on; 256 a_acs_path = acs_path; 257 a_owner = owner; 258 a_rcp_priv = rcp_priv; 259 a_effmode = effmode; 260 a_error_code = error_code; 261 262 263 chase: 264 proc (descriptor, bp, bl, a_error_code); 265 266 dcl ( 267 descriptor fixed bin (35), 268 a_error_code fixed bin (35), 269 bp pointer, 270 bl fixed bin (21) 271 ) parameter; 272 273 dcl 1 rs like rs_info aligned automatic; 274 dcl local_code fixed bin (35); 275 276 a_error_code = 0; 277 if descriptor = 0 then do; 278 bp = addr (bp); /* gotta point somewhere */ 279 bl = 0; 280 return; 281 end; 282 283 unspec (rs) = ""b; 284 rs.version = rs_info_version_2; 285 rs.locate_sw = "1"b; 286 rs.descriptor = descriptor; 287 local_code = 0; 288 289 call iox_$control (resource_info.registry_switch_ptr, "record_status", addr (rs), local_code); 290 if local_code ^= 0 then do; 291 a_error_code = error_table_$action_not_performed; 292 return; 293 end; 294 bl = rs.record_length; 295 bp = rs.record_ptr; 296 297 return; 298 end chase; 299 1 1 /* begin include file - access_audit_encoded_op.incl.pl1 */ 1 2 1 3 dcl 1 encoded_access_op aligned based, 1 4 2 audit_type unal, 1 5 3 object_type fixed bin (4) uns unal, 1 6 3 access_type fixed bin (2) uns unal, 1 7 2 operation_index fixed bin (12) uns unal, 1 8 2 detailed_operation fixed bin (18) uns unal; 1 9 1 10 /* object_type = Seg, Dir, Rcp, Admin, Special, Other 1 11* access_type = None, Modify_Acl, Modify, Read 1 12* operation_index is the index of this code in 1 13* access_operations_$oper_codes and the index of 1 14* the text descriptor in access_operations_$text_offest_table 1 15* (see access_operations_.incl.pl1) 1 16* detailed_operation is additional info inserted by the 1 17* caller of the subsystem performing the operation 1 18**/ 1 19 1 20 /* end include file - access_audit_encoded_op.incl.pl1 */ 300 301 2 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 302 303 3 1 /* BEGIN INCLUDE FILE aim_template.incl.pl1 */ 3 2 3 3 /* Created 740723 by PG */ 3 4 /* Modified 06/28/78 by C. D. Tavares to add rcp privilege */ 3 5 /* Modified 83-05-10 by E. N. Kitltitz to add communications privilege */ 3 6 3 7 /* This structure defines the components of both an access 3 8* class and an access authorization as interpreted by the 3 9* Access Isolation Mechanism. */ 3 10 3 11 3 12 dcl 1 aim_template aligned based, /* authorization/access class template */ 3 13 2 categories bit (36), /* access categories */ 3 14 2 level fixed bin (17) unaligned, /* sensitivity level */ 3 15 2 privileges unaligned, /* special access privileges (in authorization only) */ 3 16 (3 ipc, /* interprocess communication privilege */ 3 17 3 dir, /* directory privilege */ 3 18 3 seg, /* segment privilege */ 3 19 3 soos, /* security out-of-service privilege */ 3 20 3 ring1, /* ring 1 access privilege */ 3 21 3 rcp, /* RCP resource access privilege */ 3 22 3 comm) bit (1), /* communications cross-AIM privilege */ 3 23 3 pad bit (11); 3 24 3 25 3 26 /* END INCLUDE FILE aim_template.incl.pl1 */ 304 305 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 ---------------- */ 306 307 5 1 /* Begin include file ... rcp_com_seg.incl.pl1 5 2* * 5 3* * Created on 11/20/74 by Bill Silver. 5 4* * Modified on 09/19/77 by R.J.C. Kissel to add label authentication bits. 5 5* * Modified on 12/09/78 by Michael R. Jordan to add removable media bit and label_type. 5 6* * Modified 1/79 by R.J.C. Kissel to add disk label authentication bits. 5 7* * Modified 2/79 by Michael R. Jordan to add volume_density. 5 8* * Modified 11/84 by Paul Farley to add fips flag. 5 9* * Modified 1/3/85 by Fawcett to allow room for mca device type 5 10* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 5 11* * This include file defines the Resource Control Package communication segment. 5 12* * This segment is used to communicate requests between the various internal 5 13* * parts of RCP. 5 14**/ 5 15 5 16 /****^ HISTORY COMMENTS: 5 17* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 5 18* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 5 19* Support MCA and FIPS. 5 20* END HISTORY COMMENTS */ 5 21 5 22 dcl lock_info_ptr ptr; /* Pointer to lock info structure. */ 5 23 dcl rcs_ptr ptr; /* Pointer to base of RCS. */ 5 24 dcl rcse_ptr ptr; /* Pointer to an RCS entry. */ 5 25 5 26 dcl 1 based_rcp_id based aligned, /* Overlay of an rcp_id. */ 5 27 (2 id_count fixed bin (17), /* Unique count index. */ 5 28 2 rcse_off bit (18)) unaligned; /* Offset of rcp_com_seg entry. */ 5 29 5 30 dcl 1 rcs based (rcs_ptr) aligned, /* Begin at word zero of rcp_com_seg. */ 5 31 2 lock_info like lock_info, /* Data used to lock this segment. */ 5 32 2 ws_maxs (8) fixed bin (19), /* Max IOI workspace size in words. */ 5 33 2 ws_pmaxs (8) fixed bin (19), /* Max IOI workspace size for priv attachments. */ 5 34 2 to_maxs (8) fixed bin (71), /* Max IOI time-out intervals in microseconds. */ 5 35 2 sys_directory char (32), /* Directory used to define a system process. */ 5 36 2 sys_acs char (32), /* Entry name used to define a system process. */ 5 37 2 acs_directory char (32), /* Directory containing device ACSs. */ 5 38 2 id_count fixed bin (35), /* Counter used to form rcp_id. */ 5 39 2 max_entries fixed bin, /* Maximum number of entries allowed. */ 5 40 2 num_entries fixed bin, /* Total number of entries. */ 5 41 2 first_free_off bit (18), /* Offset of first free entry. */ 5 42 2 entry (0 refer (rcs.num_entries)) /* Array of request entries. */ 5 43 like rcse, /* See structure below. */ 5 44 2 end bit (36); /* End of rcp_com_seg. */ 5 45 5 46 dcl 1 lock_info based (lock_info_ptr) aligned, /* Used to meter locking. */ 5 47 2 lock bit (36), /* The lock itself. */ 5 48 2 num_locks fixed bin (35), /* Number of times locked. */ 5 49 2 num_lock_waits fixed bin (35), /* Number of lock waits. */ 5 50 2 time_of_lock fixed bin (71), /* Time of last lock. */ 5 51 2 tot_lock_time fixed bin (71), /* Total time locked. */ 5 52 2 tot_wait_time fixed bin (71), /* Total time waiting for lock. */ 5 53 2 starting_time fixed bin (71); /* Time metering started. */ 5 54 5 55 dcl 1 rcse based (rcse_ptr) aligned, /* Up to state must = rcpd.device. */ 5 56 2 device_name char (8), /* Name of device associated with this entry. */ 5 57 2 volume_name char (32), /* Volume name. Blank => no volume. */ 5 58 2 dtypex fixed bin, /* Device type index. */ 5 59 2 model fixed bin, /* Device model number. */ 5 60 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 5 61 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 5 62 2 state_time fixed bin (71), /* Time device put into current state. */ 5 63 2 state fixed bin, /* 0 - free 1 - assigning 2 - assigned */ 5 64 /* 3 - attaching 4 - attached 5 - completed. */ 5 65 5 66 /* * * * * ** Following fields are unique to RCS entry. */ 5 67 2 kind fixed bin, /* 1 => attach, 2 => assign */ 5 68 2 free_off bit (18), /* Offset of next free entry. 0 => not free. */ 5 69 2 user_off bit (18), /* Offset of next entry in user list. */ 5 70 2 device_off bit (18), /* Offset of device entry in RCPD. */ 5 71 2 volume_off bit (18), /* Offset of volume entry in RCPD. */ 5 72 2 rcse_off bit (18), /* Offset of associated RCS entry. */ 5 73 2 caller_level fixed bin, /* Caller's validation level. */ 5 74 2 disposition bit (1), /* ON => retain, OFF => unassign. */ 5 75 2 flags, /* Special info flags. */ 5 76 (3 device bit (1), /* ON => assigning a specific device. */ 5 77 3 priv bit (1), /* ON => attached with IOI privilege. */ 5 78 3 system bit (1), /* ON => assigned to a system process. */ 5 79 3 t_and_d bit (1), /* ON => T&D attachment. */ 5 80 3 volume bit (1), /* ON => volume associated with this device. */ 5 81 3 writing bit (1), /* ON => writing on volume. */ 5 82 3 have_auth bit (1), /* ON => tape volume authenticated. */ 5 83 3 need_auth bit (1), /* ON => tape volume needs authentication. */ 5 84 3 auth_set bit (1), /* ON => "have_auth" has been set. */ 5 85 3 preload_allowed bit (1), /* ON => preloading of volumes is allowed. */ 5 86 3 preloaded bit (1), /* ON => volume may be loaded on device. */ 5 87 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 5 88 3 disk_ss_pack bit (1), /* ON => disk is a storage system volume. */ 5 89 3 disk_copy_of_ss_pack bit (1), /* ON => disk is a copy of a storage system volume. */ 5 90 3 disk_io_pack bit (1), /* ON => disk has label but is not storage system. */ 5 91 3 disk_unregistered bit (1), /* ON => disk is unregistered storage system volume. */ 5 92 3 disk_unreadable bit (1), /* ON => io error reading disk label. */ 5 93 3 must_auto_register bit (1), /* ON => unregistered volume requested */ 5 94 3 fips bit (1), /* ON => FIPS device. */ 5 95 3 no_protect bit (1), /* ON => device has no protect sw. */ 5 96 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 5 97 3 unused bit (6), 5 98 3 volume_density_index fixed bin (3) unsigned, /* Density of volume */ 5 99 3 label_type fixed bin (6) unsigned)unaligned, /* Type of label read by RCP. */ 5 100 2 rcp_id bit (36), /* ID of this entry. */ 5 101 2 event_id fixed bin (71), /* Caller's event channel ID. */ 5 102 2 process_id bit (36), /* ID of calling process. */ 5 103 2 group_id char (32), /* Group ID of calling process. */ 5 104 2 ecode fixed bin (35), /* Assignment error code. */ 5 105 2 version_num fixed bin, /* Device info version number. */ 5 106 2 workspace_max fixed bin (19), /* Max size of IOI workspace buffer. */ 5 107 2 timeout_max fixed bin (71), /* Max IOI time-out interval. */ 5 108 2 ioi_index fixed bin, /* IOI device index. */ 5 109 2 workspace_ptr ptr, /* Pointer to IOI workspace buffer. */ 5 110 2 caller_comment char (64); /* Caller's comment. */ 5 111 5 112 /* End of include file ... rcp_com_seg.incl.pl1 */ 308 309 6 1 /* Begin include file ... rcp_data.incl.pl1 6 2* * 6 3* * Created on 09/06/74 by Bill Silver. 6 4* * This include file defines the Resource Control Package data base, rcp_data. 6 5* * It is initialized in ring 0 by rcp_init. It is maintained in ring 1 by RCP. 6 6* * It contains information about all of the devices and volumes managed by RCP. 6 7* * This include file references rcp_com_seg.incl.pl1. 6 8* 6 9* * Modified by R.J.C. Kissel on 10/5/77 to add the check_label bit. 6 10* * Modified by Michael R. Jordan on 04/24/78 to add modes and attached flag. 6 11* * Modified on 12/09/78 to add removable media bit. 6 12* * Modified 3/79 by Michael R. Jordan for MR7.0R. 6 13* * Modified 3/79 by C. D. Tavares for expandable RCP modes. 6 14* * Modified 11/84 by Paul Farley to add fips flag. 6 15* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 6 16**/ 6 17 6 18 /****^ HISTORY COMMENTS: 6 19* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 6 20* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 6 21* Support FIPS and IMU. 6 22* END HISTORY COMMENTS */ 6 23 6 24 dcl rcpd_ptr ptr; /* Points to base of RCPD. */ 6 25 dcl dtype_ptr ptr; /* Points to a device type entry. */ 6 26 dcl device_ptr ptr; /* Points to a device entry. */ 6 27 dcl volume_ptr ptr; /* Points to a volume entry. */ 6 28 6 29 dcl 1 rcpd based (rcpd_ptr) aligned, /* Begin at word 0 of RCPD. */ 6 30 2 lock_info like lock_info, /* Data used to lock this segment. */ 6 31 2 init bit (1) unal, /* ON => rcp_ring1_init_ has executed */ 6 32 2 modes like rcp_init_flags unaligned, 6 33 2 tot_dtypes fixed bin, /* Number of known device types. */ 6 34 2 tot_devices fixed bin, /* Total number of devices configured. */ 6 35 2 tot_volumes fixed bin, /* Number of possible attached volumes. */ 6 36 2 last_volume fixed bin, /* The last volume entry currently in use. */ 6 37 2 mtimer_chan fixed bin (71), /* Event channel for mount timer. */ 6 38 2 mtimer_pid bit (36), /* ID of mount timer process. */ 6 39 2 accounting_chan fixed bin (71), /* Event channel for device accounting */ 6 40 2 accounting_pid bit (36), /* ID of accounting process */ 6 41 2 unload_sleep_time fixed bin (71), /* Number of microseconds to wait for unload completion. */ 6 42 2 pad (7) fixed bin, 6 43 2 dtype (0 refer (rcpd.tot_dtypes)) /* One entry per device type. */ 6 44 like dtype, /* See structure below. */ 6 45 2 device (0 refer (rcpd.tot_devices)) /* One entry per configured device. */ 6 46 like device, /* See structure below. */ 6 47 2 volume (0 refer (rcpd.tot_volumes)) /* One entry per possible attached volume. */ 6 48 like volume, /* See structure below. */ 6 49 2 end bit (36) aligned; /* End of rcp_data. */ 6 50 6 51 dcl 1 dtype based (dtype_ptr) aligned, /* Entry for one device type. */ 6 52 2 device_type char (32), /* Name of this device type. */ 6 53 2 max_concurrent fixed bin, /* Max number of concurrently assigned devices. */ 6 54 2 num_reserved fixed bin, /* Num of devices reserved for system processes. */ 6 55 2 num_devices fixed bin, /* Num of devices of this type that are configured. */ 6 56 2 first_off bit (18), /* Offset of first device entry. */ 6 57 2 histo_times (3) fixed bin; /* Used to compute histograms for this device type. */ 6 58 6 59 dcl 1 device based (device_ptr) aligned, /* Up to state must = rcs.rcse. */ 6 60 2 device_name char (8), /* Name of device associated with this entry. */ 6 61 2 volume_name char (32), /* Volume name. Blank => no volume. */ 6 62 2 dtypex fixed bin, /* Device type index. */ 6 63 2 model fixed bin, /* Device model number. */ 6 64 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 6 65 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 6 66 2 state_time fixed bin (71), /* Time device put into current state. */ 6 67 2 state fixed bin, /* 0 => free, 1 => assigned, 2 => deleted, 6 68* 3 => storage system, 4 => reserved */ 6 69 6 70 /* * * * * ** Following fields are unique to device entry. */ 6 71 6 72 2 unassign_state fixed bin, /* State to return when unassigning. */ 6 73 2 acs_name char (12), /* Entry name of ACS for this device. */ 6 74 2 next_off bit (18), /* Offset of next entry for this device type. */ 6 75 2 iom_num fixed bin, /* IOM number for this device. */ 6 76 2 chan_num fixed bin, /* Channel number for this device. */ 6 77 2 num_channels fixed bin, /* Num channels that may address device. */ 6 78 2 flags, /* Special info flags. */ 6 79 (3 delete bit (1), /* ON => Delete device when it is unassigned. */ 6 80 3 priv bit (1), /* ON => Deleted device assigned for priv attach. */ 6 81 3 reservable bit (1), /* ON => may be reserved for system process. */ 6 82 3 reserved bit (1), /* ON => reserved to a reserved process. */ 6 83 3 mounting bit (1), /* ON => mount pending. */ 6 84 3 writing bit (1), /* ON => mounting for writing. */ 6 85 3 attached bit (1) unal, /* ON => device is attached. */ 6 86 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 6 87 3 fips bit (1), /* ON => FIPS device. */ 6 88 3 no_protect bit (1), /* ON => device has no protect sw. */ 6 89 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 6 90 3 unused bit (25)) unal, 6 91 2 process_id bit (36), /* ID of assigned process. */ 6 92 2 group_id char (32), /* Process group ID. */ 6 93 2 error_count fixed bin (35), /* Total error count. Defined by user ring. */ 6 94 2 num_assigns fixed bin (35), /* Total # of times device assigned & unassigned. */ 6 95 2 tot_assign_time fixed bin (71), /* Total time that device was assigned. */ 6 96 2 histogram (4) fixed bin, /* Assignment time histogram. */ 6 97 2 reservation_id fixed bin (71), 6 98 2 reserved_by char (32), /* Who made this reservation. */ 6 99 2 current_authorization bit (72) aligned; /* Authoization of process using this device. */ 6 100 6 101 dcl 1 volume based (volume_ptr) aligned, /* Entry for one volume. */ 6 102 2 process_id bit (36), /* "0"b => unassigned. */ 6 103 2 volume_name char (32), /* Volume name. */ 6 104 2 vtypex fixed bin, /* Volume type index. */ 6 105 2 group_id char (32), /* This is used for the reserved_for field. */ 6 106 2 reserved_by char (32), 6 107 2 reservation_id fixed bin (71), 6 108 2 state_time fixed bin (71), /* Same as for a device. */ 6 109 2 state fixed bin, /* Same as for a device. */ 6 110 2 unassign_state fixed bin, /* State to return when unassigning. */ 6 111 2 current_authorization bit (72) aligned; /* Authorization of process using this volume. */ 6 112 7 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 7 2 7 3 /* Created on 04/24/78 by Michael R. Jordan */ 7 4 /* Modified 04/10/79 by C. D. Tavares */ 7 5 7 6 dcl rifp ptr; 7 7 7 8 dcl 1 rcp_init_flags based (rifp), 7 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 7 10 2 pad1 bit (2) unaligned, /* obsolete */ 7 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 7 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 7 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 7 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 7 15 7 16 dcl (No_authentication initial (0), 7 17 Nominal_authentication initial (1), 7 18 Automatic_authentication initial (2), 7 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 7 20 7 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 7 22 ("none", "nominal", "automatic", "manual"); 7 23 7 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 6 113 6 114 6 115 /* End of include file ... rcp_data.incl.pl1 */ 310 311 8 1 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 8 2 /* BEGIN include rcp_ops.incl.pl1 */ 8 3 8 4 /* Written 02/27/85 by Chris Jones, Maria Pozzo */ 8 5 8 6 dcl ops_ptr ptr; 8 7 8 8 dcl 1 detailed_operation unaligned based (ops_ptr), 8 9 2 given, 8 10 3 potential_attributes 8 11 bit (1), 8 12 3 desired_attributes 8 13 bit (1), 8 14 3 potential_aim_range 8 15 bit (1), 8 16 3 aim_range bit (1), 8 17 3 owner bit (1), 8 18 3 acs_path bit (1), 8 19 3 location bit (1), 8 20 3 comment bit (1), 8 21 3 charge_type bit (1), 8 22 3 usage_lock bit (1), 8 23 3 release_lock bit (1), 8 24 3 user_alloc bit (1), 8 25 2 priv_gate_call bit (1), 8 26 2 search bit (1), 8 27 2 force bit (1), 8 28 2 process bit (1), 8 29 2 owner bit (1), 8 30 2 pad bit (1); 8 31 312 313 9 1 /* --------------- BEGIN include file rcp_registry.incl.pl1 --------------- */ 9 2 9 3 /* Written 05/04/78 by C. D. Tavares */ 9 4 9 5 dcl 1 registry_record aligned based (record_ptr), 9 6 2 dynamic_info aligned, 9 7 3 attributes (2) bit (72) aligned, 9 8 3 (location_desc, 9 9 comment_desc, 9 10 pad (2)) fixed bin (35) aligned, 9 11 2 acquisition_info aligned, 9 12 3 (owner_desc, 9 13 acs_path_desc, 9 14 aim_range_desc) fixed bin (35) aligned, 9 15 3 flags unaligned, 9 16 4 (usage_lock, 9 17 release_lock, 9 18 awaiting_clear, 9 19 user_alloc, 9 20 system, 9 21 free) bit (1) unaligned, 9 22 4 pad bit (12) unaligned, 9 23 3 reserver_chain bit (18) unaligned, 9 24 3 pad (2) fixed bin (35) aligned, 9 25 2 registration_info aligned, 9 26 3 uid bit (36) aligned, 9 27 3 (potential_attributes_desc, 9 28 potential_aim_range_desc, 9 29 charge_type_desc, 9 30 pad (2)) fixed bin (35) aligned, 9 31 3 name unaligned, 9 32 4 n fixed bin (8) unaligned, 9 33 4 string char (rr_strl refer (registry_record.name.n)) unaligned; 9 34 9 35 dcl 1 registry_header aligned based (header_ptr), 9 36 2 rtde_size fixed bin (18), 9 37 2 rtde_copy (RTDE_SIZE refer (registry_header.rtde_size)) bit (36) aligned, 9 38 2 other aligned, 9 39 3 last_transaction_time fixed bin (71), 9 40 3 pad (18) bit (36) aligned; 9 41 9 42 dcl RTDE_SIZE fixed bin (18); 9 43 10 1 /* --------------- BEGIN include file rtdt.incl.pl1 --------------- */ 10 2 10 3 dcl 1 rtdt aligned based (rtdtp), /* resource type description table */ 11 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 11 2 11 3 /* the "author" items must always be the first ones in the table. The 11 4* module which moves the converted table to the System Control process 11 5* fills in these data items and assumes them to be at the head of the segment 11 6* regardless of the specific table's actual declaration. The variables 11 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 11 8* respectively. For tables installed in multiple processes, these 11 9* are to be used to lock out multiple installations. */ 11 10 11 11 /* Lock should be used as a modification lock. Since, in general, 11 12* entries may not be moved in system tables, even by installations, 11 13* it is sufficient for only installers and programs that change threads 11 14* to set or respect the lock. Simply updating data in an entry 11 15* requires no such protection. 11 16* 11 17* Last_install_time is used by readers of system tables to detect 11 18* installations or other serious modifications. By checking it before 11 19* and after copying a block of data, they can be protected against 11 20* modifications. 11 21* 11 22* Modules that set the lock should save proc_group_id, and then 11 23* put their group id there for the time they hold the lock. 11 24* if they do not actually install the, they should restore the group id. 11 25**/ 11 26 11 27 2 author aligned, /* validation data about table's author */ 11 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 11 29 3 lock bit (36), /* installation lock */ 11 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 11 31 3 update_authorization bit (1) unal, /* update only authorizations */ 11 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 11 33 3 pad bit (33) unaligned, 11 34 3 last_install_time fixed bin (71), 11 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 11 36 3 w_dir char (64), /* author's working directory */ 11 37 11 38 /* END INCLUDE FILE author.incl.pl1 */ 10 4 10 5 2 version fixed bin, /* version number */ 10 6 2 installed_under_resource_mgt bit (1) aligned, /* resource mgt. was ON when this was installed */ 10 7 2 charge_type_table_ptr offset, /* points to charge_type_table */ 10 8 2 first_resource offset, /* chain for RTDE's */ 10 9 2 rtdt_area area (RTDT_area_len); /* all following items allocated here */ 10 10 10 11 dcl 1 charge_type_table aligned based (cttp), /* describes charges for resource types */ 10 12 2 n_charge_types fixed bin, /* number of distinct charge types */ 10 13 2 charge_types (N_CHARGE_TYPES refer (charge_type_table.n_charge_types)) aligned char (32), 10 14 2 flagword fixed bin (35) aligned; /* this word simply help us set bitcount properly */ 10 15 10 16 dcl 1 rtde aligned based (rtdep), /* describes one resource type */ 10 17 2 fixed_info aligned, 10 18 3 next_resource offset, /* chains to next type, or nullo */ 10 19 3 name char (32), /* name of resource type, e.g. "tape_drive" */ 10 20 3 syn_to char (32), /* if is_synonym this is master syn */ 10 21 3 precanon_proc char (64), /* name of routine to standardize resource name */ 10 22 3 pad_1 (16) fixed bin (35), 10 23 3 flags unaligned, 10 24 4 (valid, /* resource type hasn't been deleted */ 10 25 is_volume, /* specifies volume or device type */ 10 26 manual_clear, /* volumes of this type to be "degaussed" between owners */ 10 27 addition_pending, /* bookkeeping bit for upd_rtdt_ */ 10 28 deletion_pending, 10 29 is_synonym) bit (1) unaligned, /* ditto */ 10 30 4 pad bit (12) unaligned, 10 31 3 (process_limit, /* how many can you assign at one time */ 10 32 default_time, /* implicit reservations are for how many minutes */ 10 33 max_time, /* how long can you reserve it for */ 10 34 advance_notice_time, /* warn operator to prepare mount ahead of time */ 10 35 pad2, 10 36 n_exclusion_specs, /* number of distinct "name=" fields in attributes */ 10 37 n_mates, /* number of mating devs/vols for this vol/dev */ 10 38 n_subtypes, /* number of registration subtypes */ 10 39 n_defined_attributes) fixed bin (17) unaligned, /* number of defined attributes */ 10 40 3 pad_2 (8) fixed bin (35), 10 41 3 attributes_valid bit (72) aligned, /* "1"b if corresp. attribute undeleted */ 10 42 3 attributes_to_match bit (72) aligned, /* potential mate must possess these attributes */ 10 43 3 attribute_names (72) char (12) aligned, /* all possible attributes for this resource */ 10 44 3 exclusion_specs (36) bit (72) aligned, /* each masks all attrributes of the form "key=val" */ 10 45 3 pad_3 (32) fixed bin (35), 10 46 3 registration_defaults aligned, /* applied at reg. time if none given */ 10 47 4 default_flags aligned, 10 48 5 (potential_attributes_given, /* "1"b = there are default potential_attributes */ 10 49 attributes_given, /* and similarly, etc. */ 10 50 aim_range_given, 10 51 charge_type_given) bit (1) unaligned, 10 52 5 pad bit (31) unaligned, 10 53 4 potential_attributes bit (72) aligned, /* for registration, if given */ 10 54 4 attributes bit (72) aligned, /* for registration and also for runtime "I-don't-care" */ 10 55 4 aim_range (2) bit (72) aligned, /* and similarly, etc. */ 10 56 4 charge_type fixed bin, 10 57 4 pad_4 (8) fixed bin (35) aligned, 10 58 2 mates (N_MATES refer (rtde.n_mates)) char (32) aligned, 10 59 /* the volume type that mounts on this device, or vice versa */ 10 60 2 subtypes (N_SUBTYPES refer (rtde.n_subtypes)) aligned, /* named registration default groups */ 10 61 3 subtype_name char (32), /* name of the group */ 10 62 3 subtype_defaults like rtde.registration_defaults aligned; 10 63 10 64 dcl RTDT_version_3 fixed bin static options (constant) initial (3), 10 65 RTDT_version_2 fixed bin static options (constant) initial (2), 10 66 /* same format, but without precanon_proc */ 10 67 (N_MATES, N_SUBTYPES, N_CHARGE_TYPES) fixed bin, 10 68 RTDT_area_len fixed bin (18); 10 69 10 70 dcl (rtdep, rtdtp, cttp) pointer; 10 71 10 72 /* ---------------- END include file rtdt.incl.pl1 ---------------- */ 9 44 9 45 9 46 dcl (record_ptr, header_ptr) pointer, 9 47 rr_strl fixed bin; 9 48 9 49 /* ---------------- END include file rcp_registry.incl.pl1 ---------------- */ 314 315 12 1 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 12 2 /* Begin include file rcp_requestor_info.incl.pl1 12 3* * 12 4* * This include file gives information about the subject, 12 5* * or requestor of the RCP operation. In one case, absentee 12 6* * requests, the user is the Initializer, so this piece of 12 7* * information tells us about the real requestor of the RCP 12 8* * operation. 12 9**/ 12 10 12 11 dcl requestor_info_ptr ptr; 12 12 12 13 dcl 1 requestor_info aligned based (requestor_info_ptr), 12 14 2 user_id char (32), 12 15 2 current_authorization bit (72) aligned, 12 16 2 validation_level fixed bin (3); 12 17 12 18 /* end include file .. rcp_requestor_info.incl.pl1 */ 316 317 13 1 /* Begin include file ... rcp_resource_types.incl.pl1 13 2* * 13 3* * Created 3/79 by Michael R. Jordan for MR7.0R 13 4* * 13 5* * This include file defines the official RCP resource types. 13 6* * The array of names is indexed by the corresponding device type. 13 7* * MOD by RAF for MCA 13 8**/ 13 9 13 10 13 11 13 12 /****^ HISTORY COMMENTS: 13 13* 1) change(85-09-09,Fawcett), approve(85-09-09,MCR6979), 13 14* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 13 15* Support of MCA. 13 16* END HISTORY COMMENTS */ 13 17 13 18 dcl DEVICE_TYPE (8) char (32) 13 19 internal static options (constant) 13 20 init ("tape_drive", "disk_drive", "console", "printer", "punch", "reader", "special", "mca"); 13 21 13 22 dcl NUM_QUALIFIERS (8) fixed bin /* Number of qualifiers for each device type. */ 13 23 internal static init (3, 0, 0, 2, 0, 0, 0, 0); 13 24 13 25 dcl VOLUME_TYPE (8) char (32) 13 26 internal static options (constant) 13 27 init ("tape_vol", "disk_vol", "", "", "", "", "", ""); 13 28 13 29 dcl TAPE_DRIVE_DTYPEX fixed bin static internal options (constant) init (1); 13 30 dcl DISK_DRIVE_DTYPEX fixed bin static internal options (constant) init (2); 13 31 dcl CONSOLE_DTYPEX fixed bin static internal options (constant) init (3); 13 32 dcl PRINTER_DTYPEX fixed bin static internal options (constant) init (4); 13 33 dcl PUNCH_DTYPEX fixed bin static internal options (constant) init (5); 13 34 dcl READER_DTYPEX fixed bin static internal options (constant) init (6); 13 35 dcl SPECIAL_DTYPEX fixed bin static internal options (constant) init (7); 13 36 dcl MCA_DTYPEX fixed bin static internal options (constant) init (8); 13 37 dcl TAPE_VOL_VTYPEX fixed bin static internal options (constant) init (1); 13 38 dcl DISK_VOL_VTYPEX fixed bin static internal options (constant) init (2); 13 39 13 40 13 41 /* End include file ... rcp_resource_types.incl.pl1 */ 318 319 14 1 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 14 2 /* Begin include file rcp_resource_info.incl.pl1 14 3* * 14 4* * This include file gives information about the object, 14 5* * or resource for the RCP operation. If RM is enabled this 14 6* * information will provide the registry name and switch pointer 14 7* * for the registry so additional resource information can be 14 8* * determined. If RM is disabled, this information will include 14 9* * the resource name and/or type. 14 10**/ 14 11 14 12 dcl resource_info_ptr ptr; 14 13 14 14 dcl 1 resource_info based (resource_info_ptr), 14 15 2 registry_dir aligned char (64), /* Could be a different if it is reconstruct operation */ 14 16 2 registry_switch_ptr 14 17 ptr, /* Switch to the registry */ 14 18 2 registry_record_ptr 14 19 ptr, /* Pointer to the registry record */ 14 20 2 resource_type char (32), /* Resource type */ 14 21 2 resource_name char (32); /* Resource name */ 14 22 14 23 /* end include file .. rcp_resource_info.incl.pl1 */ 320 321 15 1 /* include file for info structure used with record_status control order 15 2* created by M. Asherman 1/6/76 */ 15 3 /* modified 6/15/77 to support stationary type records */ 15 4 15 5 dcl rs_info_ptr ptr; 15 6 dcl 1 rs_info based (rs_info_ptr) aligned, 15 7 2 version fixed, /* must be set to 1 or 2 (Input) */ 15 8 2 flags aligned, 15 9 3 lock_sw bit (1) unal, /* Input -- if ="1"b try to lock record */ 15 10 3 unlock_sw bit (1) unal, /* Input -- if ="1"b try to unlock record */ 15 11 3 create_sw bit (1) unal, /* Input--if set creat new record */ 15 12 3 locate_sw bit (1) unal, /* Input--if set causes current rec to be 15 13* located outside the index by descrip, or created without key */ 15 14 3 inc_ref_count bit (1) unal, /* Input--bump reference count of record, if stationary */ 15 15 3 dec_ref_count bit (1) unal, /* Input--decrement ref count if this flag set and record stationary */ 15 16 3 locate_pos_sw bit (1) unal, /* Input--if set the record_length is taken 15 17* as an input argument specifying the absolute logical record positioni to which both the current and next positions will be set */ 15 18 3 mbz1 bit (29) unal, /* must be set to "0"b, reserved for future use */ 15 19 2 record_length fixed (21), /* length in bytes, Input if create_sw set */ 15 20 2 max_rec_len fixed (21), /* max length of contained record 15 21* Input if create_sw is set--overrides min_block_size in effect */ 15 22 2 record_ptr ptr, /* points to first byte of record--will be word aligned */ 15 23 2 descriptor fixed (35), /* Input if locate_sw set and create_sw="0"b */ 15 24 2 ref_count fixed (34), /* Output--should match number of keys on this record-- = -1 if non-stationary record */ 15 25 2 time_last_modified fixed (71), /* Output */ 15 26 2 modifier fixed (35), /* Output--also Input when locking */ 15 27 2 block_ptr ptr unal, /* Output */ 15 28 2 last_image_modifier 15 29 fixed (35), 15 30 2 mbz2 fixed; 15 31 15 32 dcl 1 rs_desc based (addr (rs_info.descriptor)), 15 33 /* record block descriptor structure */ 15 34 2 comp_num fixed (17) unal, /* msf component number */ 15 35 2 offset bit (18) unal; /* word offset of record block */ 15 36 15 37 dcl 1 seq_desc based (addr (rs_info.descriptor)), 15 38 /* for sequential files */ 15 39 2 bitno bit (6) unal, 15 40 2 comp_num fixed (11) unal, /* msf component number */ 15 41 2 wordno bit (18) unal; /* word offset */ 15 42 15 43 dcl rs_info_version_1 static internal fixed init (1); 15 44 dcl rs_info_version_2 static internal fixed init (2); 15 45 322 323 324 end rcp_access_kernel_setup; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0804.6 rcp_access_kernel_setup.pl1 >spec>install>1111>rcp_access_kernel_setup.pl1 300 1 01/30/85 1523.9 access_audit_encoded_op.incl.pl1 >ldd>include>access_audit_encoded_op.incl.pl1 302 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 304 3 09/07/83 1610.6 aim_template.incl.pl1 >ldd>include>aim_template.incl.pl1 306 4 05/23/83 0916.6 iox_dcls.incl.pl1 >ldd>include>iox_dcls.incl.pl1 308 5 03/27/86 1120.0 rcp_com_seg.incl.pl1 >ldd>include>rcp_com_seg.incl.pl1 310 6 03/27/86 1120.0 rcp_data.incl.pl1 >ldd>include>rcp_data.incl.pl1 6-113 7 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 312 8 03/15/85 0953.1 rcp_ops.incl.pl1 >ldd>include>rcp_ops.incl.pl1 314 9 11/20/79 2015.5 rcp_registry.incl.pl1 >ldd>include>rcp_registry.incl.pl1 9-44 10 11/20/79 2015.6 rtdt.incl.pl1 >ldd>include>rtdt.incl.pl1 10-4 11 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 316 12 03/15/85 0953.1 rcp_requestor_info.incl.pl1 >ldd>include>rcp_requestor_info.incl.pl1 318 13 03/27/86 1120.0 rcp_resource_types.incl.pl1 >ldd>include>rcp_resource_types.incl.pl1 320 14 03/15/85 0953.1 rcp_resource_info.incl.pl1 >ldd>include>rcp_resource_info.incl.pl1 322 15 07/19/79 1547.0 rs_info.incl.pl1 >ldd>include>rs_info.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. DEFAULT_REGISTRY_DIR 000100 constant char(64) initial packed unaligned dcl 109 set ref 145 239* DEVICE_TYPE 000000 constant char(32) initial array packed unaligned dcl 13-18 ref 225 227 REW_ACCESS constant bit(3) initial packed unaligned dcl 2-11 ref 163 198 249 a_acs_path parameter char(168) packed unaligned dcl 43 set ref 11 256* a_effmode parameter bit(3) packed unaligned dcl 46 set ref 11 259* a_error_code parameter fixed bin(35,0) dcl 47 in procedure "rcp_access_kernel_setup" set ref 11 260* a_error_code parameter fixed bin(35,0) dcl 266 in procedure "chase" set ref 263 276* 291* a_operation parameter bit(36) dcl 39 set ref 11 116 253* a_owner parameter char(32) packed unaligned dcl 45 set ref 11 257* a_rcp_priv parameter bit(1) dcl 44 set ref 11 258* a_requestor_info_ptr parameter pointer dcl 40 ref 11 120 a_resource_info_ptr parameter pointer dcl 41 ref 11 121 a_rm_on parameter bit(1) dcl 42 set ref 11 255* access_operations_$rcp_acquire 000026 external static bit(36) dcl 90 ref 161 access_operations_$rcp_cancel 000030 external static bit(36) dcl 92 ref 161 access_operations_$rcp_register 000022 external static bit(36) dcl 86 ref 161 access_operations_$rcp_register_acquire 000024 external static bit(36) dcl 88 ref 161 acquisition_info 10 based structure level 2 dcl 9-5 acs_name 26 based char(12) level 2 dcl 6-59 ref 237 239 acs_path 000114 automatic char(168) packed unaligned dcl 61 set ref 129* 221* 237* 239* 256 acs_path_desc 11 based fixed bin(35,0) level 3 dcl 9-5 set ref 217 218* addr builtin function dcl 104 ref 118 119 134 149 186 278 289 289 aim_check_$equal 000010 constant entry external dcl 78 ref 189 aim_range_desc 12 based fixed bin(35,0) level 3 dcl 9-5 set ref 183* aim_template based structure level 1 dcl 3-12 base_operation 000113 automatic bit(36) dcl 60 set ref 117* 118 161 161 161 161 based_bits based bit dcl 51 set ref 186* 186 based_charstring based char dcl 62 ref 209 221 bl parameter fixed bin(21,0) dcl 266 in procedure "chase" set ref 263 279* 294* bl 000216 automatic fixed bin(21,0) dcl 67 in procedure "rcp_access_kernel_setup" set ref 130* 183* 186 186 186 206* 209 218* 221 bp parameter pointer dcl 266 in procedure "chase" set ref 263 278* 278 295* bp 000222 automatic pointer dcl 71 in procedure "rcp_access_kernel_setup" set ref 132* 183* 186 206* 209 218* 221 current_authorization 10 based bit(72) level 2 dcl 12-13 set ref 149 descriptor parameter fixed bin(35,0) dcl 266 in procedure "chase" ref 263 277 286 descriptor 6 000250 automatic fixed bin(35,0) level 2 in structure "rs" dcl 273 in procedure "chase" set ref 286* detailed_operation 0(18) based fixed bin(18,0) level 2 in structure "en_access_op" packed packed unsigned unaligned dcl 74 in procedure "rcp_access_kernel_setup" set ref 134 detailed_operation based structure level 1 packed packed unaligned dcl 8-8 in procedure "rcp_access_kernel_setup" detailed_operation 0(18) based fixed bin(18,0) level 2 in structure "encoded_access_op" packed packed unsigned unaligned dcl 1-3 in procedure "rcp_access_kernel_setup" set ref 118* device based structure level 1 dcl 6-59 device_found 000100 automatic bit(1) dcl 52 set ref 126* 228* 229 232* 235 device_name based char(8) level 2 dcl 6-59 ref 232 device_off 000101 automatic bit(18) dcl 53 set ref 127* 229* 229* 231* device_ptr 000230 automatic pointer dcl 6-26 set ref 231* 232 234 237 239 dtype 43 based structure array level 2 in structure "rcpd" dcl 6-29 in procedure "rcp_access_kernel_setup" dtype based structure level 1 dcl 6-51 in procedure "rcp_access_kernel_setup" effmode 000105 automatic bit(3) packed unaligned dcl 57 set ref 133* 163* 198* 249* 259 en_access_op based structure level 1 dcl 74 encoded_access_op based structure level 1 dcl 1-3 error_code 000217 automatic fixed bin(35,0) dcl 68 set ref 131* 174* 175 177* 178 183* 184 190* 206* 207 218* 219 235* 260 error_table_$action_not_performed 000036 external static fixed bin(35,0) dcl 101 ref 291 error_table_$resource_unknown 000034 external static fixed bin(35,0) dcl 99 ref 235 error_table_$unsupported_multi_class_volume 000032 external static fixed bin(35,0) dcl 97 ref 190 first_off 56 based bit(18) array level 3 dcl 6-29 ref 229 fixed_info based structure level 2 dcl 10-16 flags 1 000250 automatic structure level 2 in structure "rs" dcl 273 in procedure "chase" flags 13 based structure level 3 in structure "registry_record" packed packed unaligned dcl 9-5 in procedure "rcp_access_kernel_setup" free 13(05) based bit(1) level 4 packed packed unaligned dcl 9-5 ref 181 hbound builtin function dcl 104 ref 225 i 000220 automatic fixed bin(17,0) dcl 69 set ref 130* 225* 227 229* iox_$control 000040 constant entry external dcl 4-8 ref 289 is_volume 000102 automatic bit(1) packed unaligned dcl 54 set ref 177* 181 225 length builtin function dcl 104 ref 210 loc 000221 automatic fixed bin(17,0) dcl 69 set ref 130* local_code 000266 automatic fixed bin(35,0) dcl 274 set ref 287* 289* 290 locate_sw 1(03) 000250 automatic bit(1) level 3 packed packed unaligned dcl 273 set ref 285* lock_info based structure level 1 dcl 5-46 modes 14(01) based structure level 2 packed packed unaligned dcl 6-29 next_off 31 based bit(18) level 2 dcl 6-59 ref 234 null builtin function dcl 104 ref 132 object_access_class 000106 automatic bit(72) array dcl 58 set ref 186 188* 189* 189* operation 000112 automatic bit(36) dcl 59 set ref 116* 117 119 253 operation_ptr 000224 automatic pointer dcl 72 set ref 119* 134 ops_ptr 000232 automatic pointer dcl 8-6 set ref 134* 211 249 owner 0(16) based bit(1) level 2 in structure "detailed_operation" packed packed unaligned dcl 8-8 in procedure "rcp_access_kernel_setup" set ref 211* owner 000166 automatic char(32) packed unaligned dcl 63 in procedure "rcp_access_kernel_setup" set ref 128* 164* 209* 211 257 owner_desc 10 based fixed bin(35,0) level 3 dcl 9-5 set ref 206* pathname_ 000012 constant entry external dcl 79 ref 237 239 prim_resource_type 000206 automatic char(32) packed unaligned dcl 65 set ref 128* 174* 177* 227 priv_gate_call 0(12) based bit(1) level 2 packed packed unaligned dcl 8-8 ref 249 privileges 1(18) based structure level 2 packed packed unaligned dcl 3-12 ptr builtin function dcl 104 ref 231 rcp 1(23) based bit(1) level 3 packed packed unaligned dcl 3-12 ref 149 rcp_init_flags based structure level 1 packed packed unaligned dcl 7-8 rcp_pointers_$data 000014 constant entry external dcl 80 ref 138 rcp_priv 000103 automatic bit(1) dcl 55 set ref 126* 149* 151* 181 249 258 rcpd based structure level 1 dcl 6-29 rcpd_ptr 000226 automatic pointer dcl 6-24 set ref 138* 139 229 231 rcse based structure level 1 dcl 5-55 record_length 2 000250 automatic fixed bin(21,0) level 2 dcl 273 set ref 294 record_ptr 000234 automatic pointer dcl 9-46 in procedure "rcp_access_kernel_setup" set ref 122* 181 183 206 217 218 record_ptr 4 000250 automatic pointer level 2 in structure "rs" dcl 273 in procedure "chase" set ref 295 registration_defaults 602 based structure level 3 dcl 10-16 registry_dir based char(64) level 2 dcl 14-14 set ref 145 145* 237 registry_record based structure level 1 dcl 9-5 registry_record_ptr 22 based pointer level 2 dcl 14-14 ref 122 registry_switch_ptr 20 based pointer level 2 dcl 14-14 set ref 289* requestor_info based structure level 1 dcl 12-13 requestor_info_ptr 000236 automatic pointer dcl 12-11 set ref 120* 149 181 197 210 210 resource_info based structure level 1 unaligned dcl 14-14 resource_info_$get_primary_type 000016 constant entry external dcl 81 ref 174 resource_info_$get_type 000020 constant entry external dcl 83 ref 177 resource_info_ptr 000240 automatic pointer dcl 14-12 set ref 121* 122 145 145 174 232 237 289 resource_mgmt_enabled 14(04) based bit(1) level 3 packed packed unaligned dcl 6-29 ref 139 resource_name 34 based char(32) level 2 packed packed unaligned dcl 14-14 ref 232 resource_type 24 based char(32) level 2 packed packed unaligned dcl 14-14 set ref 174* rm_on 000104 automatic bit(1) dcl 56 set ref 126* 139* 141* 145 181 205 216 237 255 rs 000250 automatic structure level 1 dcl 273 set ref 283* 289 289 rs_info based structure level 1 dcl 15-6 rs_info_version_2 constant fixed bin(17,0) initial dcl 15-44 ref 284 rtde based structure level 1 dcl 10-16 rtrim builtin function dcl 104 ref 210 substr builtin function dcl 104 ref 210 temp_user_id 000176 automatic char(32) packed unaligned dcl 64 set ref 210* 211 unspec builtin function dcl 104 set ref 188* 283* user_id based char(32) level 2 dcl 12-13 ref 197 210 210 validation_level 12 based fixed bin(3,0) level 2 dcl 12-13 ref 181 version 000250 automatic fixed bin(17,0) level 2 dcl 273 set ref 284* volume based structure level 1 dcl 6-101 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 Automatic_authentication internal static fixed bin(17,0) initial dcl 7-16 CONSOLE_DTYPEX internal static fixed bin(17,0) initial dcl 13-31 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-33 DISK_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 13-30 DISK_VOL_VTYPEX internal static fixed bin(17,0) initial dcl 13-38 E_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 MCA_DTYPEX internal static fixed bin(17,0) initial dcl 13-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 Manual_authentication internal static fixed bin(17,0) initial dcl 7-16 NUM_QUALIFIERS internal static fixed bin(17,0) initial array dcl 13-22 N_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 N_CHARGE_TYPES automatic fixed bin(17,0) dcl 10-64 N_MATES automatic fixed bin(17,0) dcl 10-64 N_SUBTYPES automatic fixed bin(17,0) dcl 10-64 No_authentication internal static fixed bin(17,0) initial dcl 7-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 7-16 PRINTER_DTYPEX internal static fixed bin(17,0) initial dcl 13-32 PUNCH_DTYPEX internal static fixed bin(17,0) initial dcl 13-33 READER_DTYPEX internal static fixed bin(17,0) initial dcl 13-34 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RTDE_SIZE automatic fixed bin(18,0) dcl 9-42 RTDT_area_len automatic fixed bin(18,0) dcl 10-64 RTDT_version_2 internal static fixed bin(17,0) initial dcl 10-64 RTDT_version_3 internal static fixed bin(17,0) initial dcl 10-64 RW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SPECIAL_DTYPEX internal static fixed bin(17,0) initial dcl 13-35 S_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TAPE_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 13-29 TAPE_VOL_VTYPEX internal static fixed bin(17,0) initial dcl 13-37 VOLUME_TYPE internal static char(32) initial array packed unaligned dcl 13-25 W_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 authentication_level_names internal static char(12) initial array packed unaligned dcl 7-21 based_rcp_id based structure level 1 dcl 5-26 charge_type_table based structure level 1 dcl 10-11 cttp automatic pointer dcl 10-70 dtype_ptr automatic pointer dcl 6-25 header_ptr automatic pointer dcl 9-46 iox_$attach_loud 000000 constant entry external dcl 4-8 iox_$attach_name 000000 constant entry external dcl 4-8 iox_$attach_ptr 000000 constant entry external dcl 4-8 iox_$close 000000 constant entry external dcl 4-8 iox_$close_file 000000 constant entry external dcl 4-8 iox_$delete_record 000000 constant entry external dcl 4-8 iox_$destroy_iocb 000000 constant entry external dcl 4-8 iox_$detach 000000 constant entry external dcl 4-8 iox_$detach_iocb 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 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_$seek_key 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_$write_record 000000 constant entry external dcl 4-8 lock_info_ptr automatic pointer dcl 5-22 rcs based structure level 1 dcl 5-30 rcs_ptr automatic pointer dcl 5-23 rcse_ptr automatic pointer dcl 5-24 registry_header based structure level 1 dcl 9-35 rifp automatic pointer dcl 7-6 rr_strl automatic fixed bin(17,0) dcl 9-46 rs_desc based structure level 1 packed packed unaligned dcl 15-32 rs_info_ptr automatic pointer dcl 15-5 rs_info_version_1 internal static fixed bin(17,0) initial dcl 15-43 rtdep automatic pointer dcl 10-70 rtdt based structure level 1 dcl 10-3 rtdtp automatic pointer dcl 10-70 seq_desc based structure level 1 packed packed unaligned dcl 15-37 volume_ptr automatic pointer dcl 6-27 NAMES DECLARED BY EXPLICIT CONTEXT. MAIN_RETURN 000752 constant label dcl 253 ref 165 175 178 184 191 199 207 219 240 chase 001000 constant entry internal dcl 263 ref 183 206 218 rcp_access_kernel_setup 000161 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1304 1346 1073 1314 Length 2044 1073 42 461 210 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcp_access_kernel_setup 242 external procedure is an external procedure. chase internal procedure shares stack frame of external procedure rcp_access_kernel_setup. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcp_access_kernel_setup 000100 device_found rcp_access_kernel_setup 000101 device_off rcp_access_kernel_setup 000102 is_volume rcp_access_kernel_setup 000103 rcp_priv rcp_access_kernel_setup 000104 rm_on rcp_access_kernel_setup 000105 effmode rcp_access_kernel_setup 000106 object_access_class rcp_access_kernel_setup 000112 operation rcp_access_kernel_setup 000113 base_operation rcp_access_kernel_setup 000114 acs_path rcp_access_kernel_setup 000166 owner rcp_access_kernel_setup 000176 temp_user_id rcp_access_kernel_setup 000206 prim_resource_type rcp_access_kernel_setup 000216 bl rcp_access_kernel_setup 000217 error_code rcp_access_kernel_setup 000220 i rcp_access_kernel_setup 000221 loc rcp_access_kernel_setup 000222 bp rcp_access_kernel_setup 000224 operation_ptr rcp_access_kernel_setup 000226 rcpd_ptr rcp_access_kernel_setup 000230 device_ptr rcp_access_kernel_setup 000232 ops_ptr rcp_access_kernel_setup 000234 record_ptr rcp_access_kernel_setup 000236 requestor_info_ptr rcp_access_kernel_setup 000240 resource_info_ptr rcp_access_kernel_setup 000250 rs chase 000266 local_code chase THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. aim_check_$equal iox_$control pathname_ rcp_pointers_$data resource_info_$get_primary_type resource_info_$get_type THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. access_operations_$rcp_acquire access_operations_$rcp_cancel access_operations_$rcp_register access_operations_$rcp_register_acquire error_table_$action_not_performed error_table_$resource_unknown error_table_$unsupported_multi_class_volume LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000152 116 000166 117 000171 118 000172 119 000174 120 000176 121 000201 122 000204 126 000206 127 000211 128 000212 129 000220 130 000223 131 000226 132 000227 133 000231 134 000232 138 000236 139 000244 141 000253 145 000254 149 000266 151 000275 161 000276 163 000310 164 000312 165 000315 174 000316 175 000336 177 000340 178 000361 181 000363 183 000402 184 000416 186 000420 188 000430 189 000433 190 000451 191 000454 197 000455 198 000462 199 000464 205 000465 206 000467 207 000504 209 000506 210 000513 211 000531 216 000542 217 000544 218 000547 219 000563 221 000565 223 000572 225 000573 227 000603 228 000612 229 000613 231 000626 232 000631 234 000640 235 000643 237 000651 239 000707 240 000736 242 000737 249 000741 253 000752 255 000755 256 000757 257 000763 258 000767 259 000771 260 000775 324 000777 263 001000 276 001002 277 001003 278 001005 279 001007 280 001010 283 001011 284 001014 285 001016 286 001020 287 001022 289 001023 290 001056 291 001060 292 001064 294 001065 295 001070 297 001072 ----------------------------------------------------------- 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