COMPILATION LISTING OF SEGMENT rcp_cancel_id_ 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 0952.5 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 /****^ HISTORY COMMENTS: 16* 1) change(87-06-25,Rauschelbach), approve(87-06-29,MCR7736), 17* audit(87-07-21,Farley), install(87-08-06,MR12.1-1063): 18* System error message documentation was added. 19* END HISTORY COMMENTS */ 20 21 22 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 23 rcp_cancel_id_: 24 proc (a_reservation_id, a_group_id, a_code); 25 26 /* 27* * This subroutine will implement the privileged reservation cancelling 28* * function needed by the operator and initializer process. It uses 29* * the reservation_id to cancel the reservations of all the resources 30* * associated with that id. The group_id is used to help guarantee 31* * that the reservation_id was correctly entered, it must match the 32* * reserved_for field of the reservation. 33* * This subroutine will be used by the absentee manager when 34* * terminating a process for which a reservation was made; and also 35* * by the operator, if some terrible calamity befalls the initializer 36* * process, to clean up leftover reservations. 37**/ 38 39 /* 40* Written by R.J.C. Kissel 5/78. 41* Modified by R.J.C. Kissel 1/79 to handle rcp_ gate calls and ambiguous request ids. 42* Modified by Chris Jones 1/85 to stop using magic numbers. 43**/ 44 45 /* Arguments */ 46 47 dcl a_reservation_id fixed bin (71); 48 dcl a_group_id char (*); 49 dcl a_code fixed bin (35); 50 51 /* Local Variables */ 52 53 dcl string bit (1); 54 dcl system bit (1); 55 56 dcl rstr_id char (19); 57 dcl prc_id bit (36); 58 dcl res_id fixed bin (71); 59 dcl log_res_id char (19); 60 dcl grp_id char (32) aligned; 61 dcl code fixed bin (35); 62 dcl i fixed bin; /* Index in rcpd. */ 63 dcl any_found bit (1); 64 65 dcl caller_level fixed bin; 66 67 /* Local Constants */ 68 69 /* Local Overlays */ 70 71 /* External Entries */ 72 73 dcl cu_$level_get entry (fixed bin); 74 dcl cu_$level_set entry (fixed bin); 75 dcl get_ring_ entry returns (fixed bin); 76 dcl rcp_cancel_resource_ 77 entry (char (*), char (*), fixed bin (35)); 78 dcl rcp_pointers_$data entry returns (ptr); 79 dcl rcp_pointers_$com_seg 80 entry returns (ptr); 81 dcl rcp_lock_$lock entry (ptr, fixed bin (35)); 82 dcl rcp_lock_$unlock entry (ptr); 83 dcl rcp_match_user_name_ 84 entry (char (32) aligned, char (32) aligned) returns (bit (1)); 85 dcl request_id_ entry (fixed bin (71)) returns (char (19)); 86 dcl hcs_$wakeup entry (bit (36) aligned, fixed bin (71), fixed bin (71), fixed bin (35)); 87 dcl admin_gate_$syserr entry options (variable); 88 dcl get_process_id_ entry () returns (bit (36)); 89 dcl match_request_id_ entry (fixed bin (71), char (*)) returns (bit (1) aligned); 90 91 /* External Constants */ 92 93 dcl error_table_$noentry 94 fixed bin (35) external; 95 dcl error_table_$badcall 96 fixed bin (35) external; 97 dcl error_table_$request_id_ambiguous 98 fixed bin (35) external; 99 dcl error_table_$invalid_resource_state 100 fixed bin (35) external; 101 102 /* Builtin Functions and Conditions */ 103 104 dcl (addr, clock, rel, unspec) 105 builtin; 106 dcl (cleanup) condition; 107 108 string = "0"b; 109 system = "0"b; 110 goto START; 111 112 string: 113 entry (a_res_id, a_code); 114 115 dcl a_res_id char (*); 116 117 string = "1"b; 118 system = "0"b; 119 goto START; 120 121 sys: 122 entry (a_reservation_id, a_group_id, a_code); 123 124 string = "0"b; 125 system = "1"b; 126 goto START; 127 128 sys_string: 129 entry (a_res_id, a_group_id, a_code); 130 131 string = "1"b; 132 system = "1"b; 133 goto START; 134 135 START: 136 if string 137 then rstr_id = a_res_id; 138 else res_id = a_reservation_id; 139 140 if system 141 then grp_id = a_group_id; 142 else prc_id = get_process_id_ (); 143 144 call cu_$level_get (caller_level); 145 146 on cleanup 147 call cleanup_handler; 148 149 call cu_$level_set (get_ring_ ()); 150 151 rcpd_ptr = rcp_pointers_$data (); 152 rcs_ptr = rcp_pointers_$com_seg (); 153 154 call rcp_lock_$lock (addr (rcpd.lock_info), code); 155 156 if code ^= 0 157 then goto BAD_ERROR; 158 159 /* 160* * Loop through the rcp data base looking for the reservation 161* * id. Then cancel the reservation. 162**/ 163 164 any_found = "0"b; 165 166 if string 167 then do; /* Check for ambiguous res id, and state not reserved. */ 168 res_id = 0b; 169 170 do i = 1 to rcpd.tot_devices; 171 if match_request_id_ (rcpd.device (i).reservation_id, rstr_id) 172 then do; /* Only check ones that match. */ 173 any_found = "1"b; 174 175 if rcpd.device (i).state ^= RESERVED 176 /* Not reserved. */ 177 then code = error_table_$invalid_resource_state; 178 179 if res_id = 0b 180 then res_id = rcpd.device (i).reservation_id; 181 182 else if res_id ^= rcpd.device (i).reservation_id 183 then goto BAD_RID; 184 185 else ; 186 end; /* Only check ones that match. */ 187 end; 188 189 do i = 1 to rcpd.last_volume; 190 if match_request_id_ (rcpd.volume (i).reservation_id, rstr_id) 191 then do; /* Only check ones that match. */ 192 any_found = "1"b; 193 194 if rcpd.volume (i).state ^= RESERVED 195 /* Not reserved. */ 196 then code = error_table_$invalid_resource_state; 197 198 if res_id = 0b 199 then res_id = rcpd.volume (i).reservation_id; 200 201 else if res_id ^= rcpd.volume (i).reservation_id 202 then goto BAD_RID; 203 204 else ; 205 end; /* Only check ones that match. */ 206 end; 207 208 if ^any_found 209 then goto NONE_FOUND; 210 211 if code ^= 0 212 then goto ALREADY_ASSND; 213 214 any_found = "0"b; 215 end; /* Check for ambiguous res id, and state not reserved. */ 216 217 log_res_id = request_id_ (res_id); 218 219 do i = 1 to rcpd.tot_devices; 220 if rcpd.device (i).reservation_id = res_id 221 then do; 222 223 if system 224 then do; 225 if ^rcp_match_user_name_ (rcpd.device (i).group_id, grp_id) 226 then goto BAD_GROUP; 227 end; 228 229 else do; 230 if rcpd.device (i).process_id ^= prc_id 231 then goto BAD_PRC; 232 end; 233 234 any_found = "1"b; 235 device_ptr = addr (rcpd.device (i)); 236 237 call rcp_cancel_resource_ (DEVICE_TYPE (device.dtypex), (device.device_name), code); 238 if code ^= 0 then 239 goto BAD_ERROR; 240 241 call admin_gate_$syserr (JUST_LOG, "RCP: Cancelled device ^a for ^a (id=^a)", device.device_name, 242 device.group_id, log_res_id); 243 244 call ACCOUNT_WAKEUP (device_ptr, RCP_ACCTMSG_unassign); 245 246 if device.volume_name = "" 247 then device.group_id = ""; /* Only if not preloaded. */ 248 249 device.reservation_id = 0; 250 device.reserved_by = ""; 251 device.process_id = "0"b; 252 device.state_time = clock (); 253 device.state = FREE; /* Free. */ 254 end; 255 end; 256 257 do i = 1 to rcpd.last_volume; 258 if rcpd.volume (i).reservation_id = res_id 259 then do; 260 261 if system 262 then do; 263 if ^rcp_match_user_name_ (rcpd.volume (i).group_id, grp_id) 264 then goto BAD_GROUP; 265 end; 266 267 else do; 268 if rcpd.volume (i).process_id ^= prc_id 269 then goto BAD_PRC; 270 end; 271 272 any_found = "1"b; 273 volume_ptr = addr (rcpd.volume (i)); 274 275 call admin_gate_$syserr (JUST_LOG, "RCP: Cancelled volume ^a for ^a (id=^a)", volume.volume_name, 276 volume.group_id, log_res_id); 277 278 call rcp_cancel_resource_ (VOLUME_TYPE (volume.vtypex), (volume.volume_name), code); 279 /* Ignore the code. */ 280 281 volume.group_id = ""; 282 volume.reservation_id = 0; 283 volume.reserved_by = ""; 284 volume.process_id = "0"b; 285 volume.state_time = clock (); 286 volume.state = FREE; /* Free. */ 287 end; 288 end; 289 290 if ^any_found 291 then goto NONE_FOUND; 292 293 a_code = 0b; 294 call rcp_lock_$unlock (addr (rcpd.lock_info)); 295 call cu_$level_set (caller_level); 296 return; 297 298 remove_schedule: 299 entry (a_resource_desc_ptr, resource_no, registry_dir, reserver_info_ptr, reserver_chain, a_code); 300 301 /* This entry is called by rcprm_find_resource_$cancel to finish the cancellation of a resource once it 302* has made sure that the cancellation may be requested by the caller (access control function.) */ 303 /* Right now it is a no-op-- in fact, I would be surprised if anyone ever called rcprm_find_resource_$cancel. */ 304 305 dcl ( 306 a_resource_desc_ptr pointer, 307 resource_no fixed bin, 308 registry_dir char (*), 309 reserver_info_ptr pointer, 310 reserver_chain bit (18) unaligned 311 ) parameter; 312 313 a_code = 0; /* I'm OK, you're OK */ 314 return; 315 316 BAD_ERROR: 317 call cleanup_handler; 318 a_code = code; 319 return; 320 321 BAD_GROUP: 322 call cleanup_handler; 323 a_code = error_table_$badcall; 324 return; 325 326 BAD_PRC: 327 call cleanup_handler; 328 a_code = error_table_$badcall; 329 return; 330 331 BAD_RID: 332 call cleanup_handler; 333 a_code = error_table_$request_id_ambiguous; 334 return; 335 336 NONE_FOUND: 337 call cleanup_handler; 338 a_code = error_table_$noentry; 339 return; 340 341 ALREADY_ASSND: 342 call cleanup_handler (); 343 a_code = code; 344 return; 345 346 ACCOUNT_WAKEUP: 347 procedure (a_devptr, a_action); 348 349 /* This procedure is called to format an accounting message, and send it to the 350* * accounting process. If the accounting event channel has not been set up, no message is sent. 351**/ 352 353 354 dcl a_devptr ptr; /* Pointer to rcp_data entry */ 355 dcl a_action fixed bin; /* Accounting action */ 356 357 dcl wakeup_buf fixed bin (71); 358 dcl 1 auto_rcpamsg like rcp_account_msg aligned; 359 360 unspec (auto_rcpamsg) = "0"b; 361 362 auto_rcpamsg.device_user_procid = a_devptr -> device.process_id; 363 auto_rcpamsg.rcp_data_relp = rel (a_devptr); 364 auto_rcpamsg.devtype = a_devptr -> device.dtypex; 365 auto_rcpamsg.action = a_action; 366 367 unspec (wakeup_buf) = unspec (auto_rcpamsg); 368 if rcpd.accounting_chan ^= 0 369 then call hcs_$wakeup (rcpd.accounting_pid, rcpd.accounting_chan, wakeup_buf, (0)); 370 371 end ACCOUNT_WAKEUP; 372 373 cleanup_handler: 374 proc; 375 376 call rcp_lock_$unlock (addr (rcpd.lock_info)); 377 call cu_$level_set (caller_level); 378 379 end cleanup_handler; 380 381 /* Include Files */ 382 1 1 /* Begin include file ... rcp_data.incl.pl1 1 2* * 1 3* * Created on 09/06/74 by Bill Silver. 1 4* * This include file defines the Resource Control Package data base, rcp_data. 1 5* * It is initialized in ring 0 by rcp_init. It is maintained in ring 1 by RCP. 1 6* * It contains information about all of the devices and volumes managed by RCP. 1 7* * This include file references rcp_com_seg.incl.pl1. 1 8* 1 9* * Modified by R.J.C. Kissel on 10/5/77 to add the check_label bit. 1 10* * Modified by Michael R. Jordan on 04/24/78 to add modes and attached flag. 1 11* * Modified on 12/09/78 to add removable media bit. 1 12* * Modified 3/79 by Michael R. Jordan for MR7.0R. 1 13* * Modified 3/79 by C. D. Tavares for expandable RCP modes. 1 14* * Modified 11/84 by Paul Farley to add fips flag. 1 15* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 1 16**/ 1 17 1 18 /****^ HISTORY COMMENTS: 1 19* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 1 20* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 1 21* Support FIPS and IMU. 1 22* END HISTORY COMMENTS */ 1 23 1 24 dcl rcpd_ptr ptr; /* Points to base of RCPD. */ 1 25 dcl dtype_ptr ptr; /* Points to a device type entry. */ 1 26 dcl device_ptr ptr; /* Points to a device entry. */ 1 27 dcl volume_ptr ptr; /* Points to a volume entry. */ 1 28 1 29 dcl 1 rcpd based (rcpd_ptr) aligned, /* Begin at word 0 of RCPD. */ 1 30 2 lock_info like lock_info, /* Data used to lock this segment. */ 1 31 2 init bit (1) unal, /* ON => rcp_ring1_init_ has executed */ 1 32 2 modes like rcp_init_flags unaligned, 1 33 2 tot_dtypes fixed bin, /* Number of known device types. */ 1 34 2 tot_devices fixed bin, /* Total number of devices configured. */ 1 35 2 tot_volumes fixed bin, /* Number of possible attached volumes. */ 1 36 2 last_volume fixed bin, /* The last volume entry currently in use. */ 1 37 2 mtimer_chan fixed bin (71), /* Event channel for mount timer. */ 1 38 2 mtimer_pid bit (36), /* ID of mount timer process. */ 1 39 2 accounting_chan fixed bin (71), /* Event channel for device accounting */ 1 40 2 accounting_pid bit (36), /* ID of accounting process */ 1 41 2 unload_sleep_time fixed bin (71), /* Number of microseconds to wait for unload completion. */ 1 42 2 pad (7) fixed bin, 1 43 2 dtype (0 refer (rcpd.tot_dtypes)) /* One entry per device type. */ 1 44 like dtype, /* See structure below. */ 1 45 2 device (0 refer (rcpd.tot_devices)) /* One entry per configured device. */ 1 46 like device, /* See structure below. */ 1 47 2 volume (0 refer (rcpd.tot_volumes)) /* One entry per possible attached volume. */ 1 48 like volume, /* See structure below. */ 1 49 2 end bit (36) aligned; /* End of rcp_data. */ 1 50 1 51 dcl 1 dtype based (dtype_ptr) aligned, /* Entry for one device type. */ 1 52 2 device_type char (32), /* Name of this device type. */ 1 53 2 max_concurrent fixed bin, /* Max number of concurrently assigned devices. */ 1 54 2 num_reserved fixed bin, /* Num of devices reserved for system processes. */ 1 55 2 num_devices fixed bin, /* Num of devices of this type that are configured. */ 1 56 2 first_off bit (18), /* Offset of first device entry. */ 1 57 2 histo_times (3) fixed bin; /* Used to compute histograms for this device type. */ 1 58 1 59 dcl 1 device based (device_ptr) aligned, /* Up to state must = rcs.rcse. */ 1 60 2 device_name char (8), /* Name of device associated with this entry. */ 1 61 2 volume_name char (32), /* Volume name. Blank => no volume. */ 1 62 2 dtypex fixed bin, /* Device type index. */ 1 63 2 model fixed bin, /* Device model number. */ 1 64 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 1 65 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 1 66 2 state_time fixed bin (71), /* Time device put into current state. */ 1 67 2 state fixed bin, /* 0 => free, 1 => assigned, 2 => deleted, 1 68* 3 => storage system, 4 => reserved */ 1 69 1 70 /* * * * * ** Following fields are unique to device entry. */ 1 71 1 72 2 unassign_state fixed bin, /* State to return when unassigning. */ 1 73 2 acs_name char (12), /* Entry name of ACS for this device. */ 1 74 2 next_off bit (18), /* Offset of next entry for this device type. */ 1 75 2 iom_num fixed bin, /* IOM number for this device. */ 1 76 2 chan_num fixed bin, /* Channel number for this device. */ 1 77 2 num_channels fixed bin, /* Num channels that may address device. */ 1 78 2 flags, /* Special info flags. */ 1 79 (3 delete bit (1), /* ON => Delete device when it is unassigned. */ 1 80 3 priv bit (1), /* ON => Deleted device assigned for priv attach. */ 1 81 3 reservable bit (1), /* ON => may be reserved for system process. */ 1 82 3 reserved bit (1), /* ON => reserved to a reserved process. */ 1 83 3 mounting bit (1), /* ON => mount pending. */ 1 84 3 writing bit (1), /* ON => mounting for writing. */ 1 85 3 attached bit (1) unal, /* ON => device is attached. */ 1 86 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 1 87 3 fips bit (1), /* ON => FIPS device. */ 1 88 3 no_protect bit (1), /* ON => device has no protect sw. */ 1 89 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 1 90 3 unused bit (25)) unal, 1 91 2 process_id bit (36), /* ID of assigned process. */ 1 92 2 group_id char (32), /* Process group ID. */ 1 93 2 error_count fixed bin (35), /* Total error count. Defined by user ring. */ 1 94 2 num_assigns fixed bin (35), /* Total # of times device assigned & unassigned. */ 1 95 2 tot_assign_time fixed bin (71), /* Total time that device was assigned. */ 1 96 2 histogram (4) fixed bin, /* Assignment time histogram. */ 1 97 2 reservation_id fixed bin (71), 1 98 2 reserved_by char (32), /* Who made this reservation. */ 1 99 2 current_authorization bit (72) aligned; /* Authoization of process using this device. */ 1 100 1 101 dcl 1 volume based (volume_ptr) aligned, /* Entry for one volume. */ 1 102 2 process_id bit (36), /* "0"b => unassigned. */ 1 103 2 volume_name char (32), /* Volume name. */ 1 104 2 vtypex fixed bin, /* Volume type index. */ 1 105 2 group_id char (32), /* This is used for the reserved_for field. */ 1 106 2 reserved_by char (32), 1 107 2 reservation_id fixed bin (71), 1 108 2 state_time fixed bin (71), /* Same as for a device. */ 1 109 2 state fixed bin, /* Same as for a device. */ 1 110 2 unassign_state fixed bin, /* State to return when unassigning. */ 1 111 2 current_authorization bit (72) aligned; /* Authorization of process using this volume. */ 1 112 2 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 2 2 2 3 /* Created on 04/24/78 by Michael R. Jordan */ 2 4 /* Modified 04/10/79 by C. D. Tavares */ 2 5 2 6 dcl rifp ptr; 2 7 2 8 dcl 1 rcp_init_flags based (rifp), 2 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 2 10 2 pad1 bit (2) unaligned, /* obsolete */ 2 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 2 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 2 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 2 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 2 15 2 16 dcl (No_authentication initial (0), 2 17 Nominal_authentication initial (1), 2 18 Automatic_authentication initial (2), 2 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 2 20 2 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 2 22 ("none", "nominal", "automatic", "manual"); 2 23 2 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 1 113 1 114 1 115 /* End of include file ... rcp_data.incl.pl1 */ 383 384 3 1 /* Begin include file ... rcp_com_seg.incl.pl1 3 2* * 3 3* * Created on 11/20/74 by Bill Silver. 3 4* * Modified on 09/19/77 by R.J.C. Kissel to add label authentication bits. 3 5* * Modified on 12/09/78 by Michael R. Jordan to add removable media bit and label_type. 3 6* * Modified 1/79 by R.J.C. Kissel to add disk label authentication bits. 3 7* * Modified 2/79 by Michael R. Jordan to add volume_density. 3 8* * Modified 11/84 by Paul Farley to add fips flag. 3 9* * Modified 1/3/85 by Fawcett to allow room for mca device type 3 10* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 3 11* * This include file defines the Resource Control Package communication segment. 3 12* * This segment is used to communicate requests between the various internal 3 13* * parts of RCP. 3 14**/ 3 15 3 16 /****^ HISTORY COMMENTS: 3 17* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 3 18* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 3 19* Support MCA and FIPS. 3 20* END HISTORY COMMENTS */ 3 21 3 22 dcl lock_info_ptr ptr; /* Pointer to lock info structure. */ 3 23 dcl rcs_ptr ptr; /* Pointer to base of RCS. */ 3 24 dcl rcse_ptr ptr; /* Pointer to an RCS entry. */ 3 25 3 26 dcl 1 based_rcp_id based aligned, /* Overlay of an rcp_id. */ 3 27 (2 id_count fixed bin (17), /* Unique count index. */ 3 28 2 rcse_off bit (18)) unaligned; /* Offset of rcp_com_seg entry. */ 3 29 3 30 dcl 1 rcs based (rcs_ptr) aligned, /* Begin at word zero of rcp_com_seg. */ 3 31 2 lock_info like lock_info, /* Data used to lock this segment. */ 3 32 2 ws_maxs (8) fixed bin (19), /* Max IOI workspace size in words. */ 3 33 2 ws_pmaxs (8) fixed bin (19), /* Max IOI workspace size for priv attachments. */ 3 34 2 to_maxs (8) fixed bin (71), /* Max IOI time-out intervals in microseconds. */ 3 35 2 sys_directory char (32), /* Directory used to define a system process. */ 3 36 2 sys_acs char (32), /* Entry name used to define a system process. */ 3 37 2 acs_directory char (32), /* Directory containing device ACSs. */ 3 38 2 id_count fixed bin (35), /* Counter used to form rcp_id. */ 3 39 2 max_entries fixed bin, /* Maximum number of entries allowed. */ 3 40 2 num_entries fixed bin, /* Total number of entries. */ 3 41 2 first_free_off bit (18), /* Offset of first free entry. */ 3 42 2 entry (0 refer (rcs.num_entries)) /* Array of request entries. */ 3 43 like rcse, /* See structure below. */ 3 44 2 end bit (36); /* End of rcp_com_seg. */ 3 45 3 46 dcl 1 lock_info based (lock_info_ptr) aligned, /* Used to meter locking. */ 3 47 2 lock bit (36), /* The lock itself. */ 3 48 2 num_locks fixed bin (35), /* Number of times locked. */ 3 49 2 num_lock_waits fixed bin (35), /* Number of lock waits. */ 3 50 2 time_of_lock fixed bin (71), /* Time of last lock. */ 3 51 2 tot_lock_time fixed bin (71), /* Total time locked. */ 3 52 2 tot_wait_time fixed bin (71), /* Total time waiting for lock. */ 3 53 2 starting_time fixed bin (71); /* Time metering started. */ 3 54 3 55 dcl 1 rcse based (rcse_ptr) aligned, /* Up to state must = rcpd.device. */ 3 56 2 device_name char (8), /* Name of device associated with this entry. */ 3 57 2 volume_name char (32), /* Volume name. Blank => no volume. */ 3 58 2 dtypex fixed bin, /* Device type index. */ 3 59 2 model fixed bin, /* Device model number. */ 3 60 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 3 61 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 3 62 2 state_time fixed bin (71), /* Time device put into current state. */ 3 63 2 state fixed bin, /* 0 - free 1 - assigning 2 - assigned */ 3 64 /* 3 - attaching 4 - attached 5 - completed. */ 3 65 3 66 /* * * * * ** Following fields are unique to RCS entry. */ 3 67 2 kind fixed bin, /* 1 => attach, 2 => assign */ 3 68 2 free_off bit (18), /* Offset of next free entry. 0 => not free. */ 3 69 2 user_off bit (18), /* Offset of next entry in user list. */ 3 70 2 device_off bit (18), /* Offset of device entry in RCPD. */ 3 71 2 volume_off bit (18), /* Offset of volume entry in RCPD. */ 3 72 2 rcse_off bit (18), /* Offset of associated RCS entry. */ 3 73 2 caller_level fixed bin, /* Caller's validation level. */ 3 74 2 disposition bit (1), /* ON => retain, OFF => unassign. */ 3 75 2 flags, /* Special info flags. */ 3 76 (3 device bit (1), /* ON => assigning a specific device. */ 3 77 3 priv bit (1), /* ON => attached with IOI privilege. */ 3 78 3 system bit (1), /* ON => assigned to a system process. */ 3 79 3 t_and_d bit (1), /* ON => T&D attachment. */ 3 80 3 volume bit (1), /* ON => volume associated with this device. */ 3 81 3 writing bit (1), /* ON => writing on volume. */ 3 82 3 have_auth bit (1), /* ON => tape volume authenticated. */ 3 83 3 need_auth bit (1), /* ON => tape volume needs authentication. */ 3 84 3 auth_set bit (1), /* ON => "have_auth" has been set. */ 3 85 3 preload_allowed bit (1), /* ON => preloading of volumes is allowed. */ 3 86 3 preloaded bit (1), /* ON => volume may be loaded on device. */ 3 87 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 3 88 3 disk_ss_pack bit (1), /* ON => disk is a storage system volume. */ 3 89 3 disk_copy_of_ss_pack bit (1), /* ON => disk is a copy of a storage system volume. */ 3 90 3 disk_io_pack bit (1), /* ON => disk has label but is not storage system. */ 3 91 3 disk_unregistered bit (1), /* ON => disk is unregistered storage system volume. */ 3 92 3 disk_unreadable bit (1), /* ON => io error reading disk label. */ 3 93 3 must_auto_register bit (1), /* ON => unregistered volume requested */ 3 94 3 fips bit (1), /* ON => FIPS device. */ 3 95 3 no_protect bit (1), /* ON => device has no protect sw. */ 3 96 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 3 97 3 unused bit (6), 3 98 3 volume_density_index fixed bin (3) unsigned, /* Density of volume */ 3 99 3 label_type fixed bin (6) unsigned)unaligned, /* Type of label read by RCP. */ 3 100 2 rcp_id bit (36), /* ID of this entry. */ 3 101 2 event_id fixed bin (71), /* Caller's event channel ID. */ 3 102 2 process_id bit (36), /* ID of calling process. */ 3 103 2 group_id char (32), /* Group ID of calling process. */ 3 104 2 ecode fixed bin (35), /* Assignment error code. */ 3 105 2 version_num fixed bin, /* Device info version number. */ 3 106 2 workspace_max fixed bin (19), /* Max size of IOI workspace buffer. */ 3 107 2 timeout_max fixed bin (71), /* Max IOI time-out interval. */ 3 108 2 ioi_index fixed bin, /* IOI device index. */ 3 109 2 workspace_ptr ptr, /* Pointer to IOI workspace buffer. */ 3 110 2 caller_comment char (64); /* Caller's comment. */ 3 111 3 112 /* End of include file ... rcp_com_seg.incl.pl1 */ 385 386 4 1 /* BEGIN INCLUDE FILE rcp_account_msg.incl.pl1 B. Greenberg 8/1/77 */ 4 2 4 3 dcl 1 rcp_account_msg based aligned, /* Message format */ 4 4 2 device_user_procid bit (36), /* id of process using the device */ 4 5 4 6 2 rcp_data_relp bit (18) unal, /* Ptr to rcp_data entry for device */ 4 7 2 devtype fixed bin (8) unal, /* rcp device type involved */ 4 8 2 pad bit (6) unal, 4 9 2 action fixed bin (2) unal; /* see below... */ 4 10 4 11 dcl ( 4 12 RCP_ACCTMSG_assign init (0), 4 13 RCP_ACCTMSG_unassign init (1), 4 14 RCP_ACCTMSG_attach init (2) 4 15 ) options (constant) fixed bin (17) static; 4 16 4 17 /* END INCLUDE FILE rcp_account_msg.incl.pl1 */ 387 388 5 1 /* Begin include file ... rcp_resource_types.incl.pl1 5 2* * 5 3* * Created 3/79 by Michael R. Jordan for MR7.0R 5 4* * 5 5* * This include file defines the official RCP resource types. 5 6* * The array of names is indexed by the corresponding device type. 5 7* * MOD by RAF for MCA 5 8**/ 5 9 5 10 5 11 5 12 /****^ HISTORY COMMENTS: 5 13* 1) change(85-09-09,Fawcett), approve(85-09-09,MCR6979), 5 14* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 5 15* Support of MCA. 5 16* END HISTORY COMMENTS */ 5 17 5 18 dcl DEVICE_TYPE (8) char (32) 5 19 internal static options (constant) 5 20 init ("tape_drive", "disk_drive", "console", "printer", "punch", "reader", "special", "mca"); 5 21 5 22 dcl NUM_QUALIFIERS (8) fixed bin /* Number of qualifiers for each device type. */ 5 23 internal static init (3, 0, 0, 2, 0, 0, 0, 0); 5 24 5 25 dcl VOLUME_TYPE (8) char (32) 5 26 internal static options (constant) 5 27 init ("tape_vol", "disk_vol", "", "", "", "", "", ""); 5 28 5 29 dcl TAPE_DRIVE_DTYPEX fixed bin static internal options (constant) init (1); 5 30 dcl DISK_DRIVE_DTYPEX fixed bin static internal options (constant) init (2); 5 31 dcl CONSOLE_DTYPEX fixed bin static internal options (constant) init (3); 5 32 dcl PRINTER_DTYPEX fixed bin static internal options (constant) init (4); 5 33 dcl PUNCH_DTYPEX fixed bin static internal options (constant) init (5); 5 34 dcl READER_DTYPEX fixed bin static internal options (constant) init (6); 5 35 dcl SPECIAL_DTYPEX fixed bin static internal options (constant) init (7); 5 36 dcl MCA_DTYPEX fixed bin static internal options (constant) init (8); 5 37 dcl TAPE_VOL_VTYPEX fixed bin static internal options (constant) init (1); 5 38 dcl DISK_VOL_VTYPEX fixed bin static internal options (constant) init (2); 5 39 5 40 5 41 /* End include file ... rcp_resource_types.incl.pl1 */ 389 390 6 1 /* Begin include file rcp_resource_states.incl.pl1 6 2** 6 3** Created by M. M. Pozzo on 841005 6 4** Modified by Chris Jones, 12/84, to add volume states. 6 5** 6 6**/ 6 7 6 8 declare FREE fixed bin static internal options (constant) init (0); 6 9 declare ASSIGNED fixed bin static internal options (constant) init (1); 6 10 declare DELETED fixed bin static internal options (constant) init (2); 6 11 declare STORAGE_SYSTEM fixed bin static internal options (constant) init (3); 6 12 declare RESERVED fixed bin static internal options (constant) init (4); 6 13 6 14 /* End include file ... rcp_resource_states.incl.pl1 */ 391 392 7 1 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 7 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 7 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 7 4 7 5 /* This include file has an ALM version. Keep 'em in sync! */ 7 6 7 7 dcl ( 7 8 7 9 /* The following constants define the message action codes. This indicates 7 10*how a message is to be handled. */ 7 11 7 12 SYSERR_CRASH_SYSTEM init (1), 7 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 7 14 7 15 SYSERR_TERMINATE_PROCESS init (2), 7 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 7 17 7 18 SYSERR_PRINT_WITH_ALARM init (3), 7 19 BEEP init (3), /* Beep and print the message on the console. */ 7 20 7 21 SYSERR_PRINT_ON_CONSOLE init (0), 7 22 ANNOUNCE init (0), /* Just print the message on the console. */ 7 23 7 24 SYSERR_LOG_OR_PRINT init (4), 7 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 7 26 7 27 SYSERR_LOG_OR_DISCARD init (5), 7 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 7 29 7 30 7 31 /* The following constants are added to the normal severities to indicate 7 32*different sorting classes of messages. */ 7 33 7 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 7 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 7 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 7 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 7 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 7 39 ) fixed bin internal static options (constant); 7 40 7 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 393 394 395 /* BEGIN MESSAGE DOCUMENTATION 396* 397* Message: 398* RCP: Cancelled device devX_MM for GRP_ID (id=RES_ID) 399* 400* S: $log 401* 402* T: $run 403* 404* M: A device reservation has been cancelled by the operator, the 405* absentee manager or the Initializer. 406* 407* A: $ignore 408* 409* 410* Message: 411* RCP: Cancelled volume volume_name for GRP_ID (id=RES_ID) 412* 413* S: $log 414* 415* T: $run 416* 417* M: A volume reservation has been cancelled by the operator, the 418* absentee manager or the Initializer. 419* 420* A: $ignore 421* 422* END MESSAGE DOCUMENTATION */ 423 424 end rcp_cancel_id_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0805.2 rcp_cancel_id_.pl1 >spec>install>1111>rcp_cancel_id_.pl1 383 1 03/27/86 1120.0 rcp_data.incl.pl1 >ldd>include>rcp_data.incl.pl1 1-113 2 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 385 3 03/27/86 1120.0 rcp_com_seg.incl.pl1 >ldd>include>rcp_com_seg.incl.pl1 387 4 11/09/77 0713.6 rcp_account_msg.incl.pl1 >ldd>include>rcp_account_msg.incl.pl1 389 5 03/27/86 1120.0 rcp_resource_types.incl.pl1 >ldd>include>rcp_resource_types.incl.pl1 391 6 03/15/85 0953.1 rcp_resource_states.incl.pl1 >ldd>include>rcp_resource_states.incl.pl1 393 7 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.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. DEVICE_TYPE 000100 constant char(32) initial array packed unaligned dcl 5-18 set ref 237* FREE constant fixed bin(17,0) initial dcl 6-8 ref 253 286 JUST_LOG 000204 constant fixed bin(17,0) initial dcl 7-7 set ref 241* 275* RCP_ACCTMSG_unassign constant fixed bin(17,0) initial dcl 4-11 set ref 244* RESERVED constant fixed bin(17,0) initial dcl 6-12 ref 175 194 VOLUME_TYPE 000000 constant char(32) initial array packed unaligned dcl 5-25 set ref 278* a_action parameter fixed bin(17,0) dcl 355 ref 346 365 a_code parameter fixed bin(35,0) dcl 49 set ref 23 112 121 128 293* 298 313* 318* 323* 328* 333* 338* 343* a_devptr parameter pointer dcl 354 ref 346 362 363 364 a_group_id parameter char packed unaligned dcl 48 ref 23 121 128 140 a_res_id parameter char packed unaligned dcl 115 ref 112 128 135 a_reservation_id parameter fixed bin(71,0) dcl 47 ref 23 121 138 a_resource_desc_ptr parameter pointer dcl 305 ref 298 accounting_chan 26 based fixed bin(71,0) level 2 dcl 1-29 set ref 368 368* accounting_pid 30 based bit(36) level 2 dcl 1-29 set ref 368* action 1(33) 000170 automatic fixed bin(2,0) level 2 packed packed unaligned dcl 358 set ref 365* addr builtin function dcl 104 ref 154 154 235 273 294 294 376 376 admin_gate_$syserr 000036 constant entry external dcl 87 ref 241 275 any_found 000131 automatic bit(1) packed unaligned dcl 63 set ref 164* 173* 192* 208 214* 234* 272* 290 auto_rcpamsg 000170 automatic structure level 1 dcl 358 set ref 360* 367 caller_level 000132 automatic fixed bin(17,0) dcl 65 set ref 144* 295* 377* cleanup 000134 stack reference condition dcl 106 ref 146 clock builtin function dcl 104 ref 252 285 code 000127 automatic fixed bin(35,0) dcl 61 set ref 154* 156 175* 194* 211 237* 238 278* 318 343 cu_$level_get 000010 constant entry external dcl 73 ref 144 cu_$level_set 000012 constant entry external dcl 74 ref 149 295 377 device based structure level 1 dcl 1-59 in procedure "rcp_cancel_id_" device based structure array level 2 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 235 device_name based char(8) level 2 dcl 1-59 set ref 237 241* device_ptr 000144 automatic pointer dcl 1-26 set ref 235* 237 237 241 241 244* 246 246 249 250 251 252 253 device_user_procid 000170 automatic bit(36) level 2 dcl 358 set ref 362* devtype 1(18) 000170 automatic fixed bin(8,0) level 2 packed packed unaligned dcl 358 set ref 364* dtype based structure level 1 dcl 1-51 dtypex 12 based fixed bin(17,0) level 2 dcl 1-59 ref 237 364 error_table_$badcall 000046 external static fixed bin(35,0) dcl 95 ref 323 328 error_table_$invalid_resource_state 000052 external static fixed bin(35,0) dcl 99 ref 175 194 error_table_$noentry 000044 external static fixed bin(35,0) dcl 93 ref 338 error_table_$request_id_ambiguous 000050 external static fixed bin(35,0) dcl 97 ref 333 get_process_id_ 000040 constant entry external dcl 88 ref 142 get_ring_ 000014 constant entry external dcl 75 ref 149 149 group_id 37 based char(32) level 2 in structure "device" dcl 1-59 in procedure "rcp_cancel_id_" set ref 241* 246* group_id based char(32) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 225* group_id based char(32) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 263* group_id 12 based char(32) level 2 in structure "volume" dcl 1-101 in procedure "rcp_cancel_id_" set ref 275* 281* grp_id 000117 automatic char(32) dcl 60 set ref 140* 225* 263* hcs_$wakeup 000034 constant entry external dcl 86 ref 368 i 000130 automatic fixed bin(17,0) dcl 62 set ref 170* 171 175 179 182* 189* 190 194 198 201* 219* 220 225 230 235* 257* 258 263 268 273* last_volume 20 based fixed bin(17,0) level 2 dcl 1-29 ref 189 257 lock_info based structure level 2 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 154 154 294 294 376 376 lock_info based structure level 1 dcl 3-46 in procedure "rcp_cancel_id_" log_res_id 000112 automatic char(19) packed unaligned dcl 59 set ref 217* 241* 275* match_request_id_ 000042 constant entry external dcl 89 ref 171 190 prc_id 000107 automatic bit(36) packed unaligned dcl 57 set ref 142* 230 268 process_id 36 based bit(36) level 2 in structure "device" dcl 1-59 in procedure "rcp_cancel_id_" set ref 251* 362 process_id based bit(36) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 230 process_id based bit(36) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 268 process_id based bit(36) level 2 in structure "volume" dcl 1-101 in procedure "rcp_cancel_id_" set ref 284* rcp_account_msg based structure level 1 dcl 4-3 rcp_cancel_resource_ 000016 constant entry external dcl 76 ref 237 278 rcp_data_relp 1 000170 automatic bit(18) level 2 packed packed unaligned dcl 358 set ref 363* rcp_init_flags based structure level 1 packed packed unaligned dcl 2-8 rcp_lock_$lock 000024 constant entry external dcl 81 ref 154 rcp_lock_$unlock 000026 constant entry external dcl 82 ref 294 376 rcp_match_user_name_ 000030 constant entry external dcl 83 ref 225 263 rcp_pointers_$com_seg 000022 constant entry external dcl 79 ref 152 rcp_pointers_$data 000020 constant entry external dcl 78 ref 151 rcpd based structure level 1 dcl 1-29 rcpd_ptr 000142 automatic pointer dcl 1-24 set ref 151* 154 154 170 171 175 179 182 189 190 194 198 201 219 220 225 230 235 257 258 263 268 273 294 294 368 368 368 376 376 rcs_ptr 000150 automatic pointer dcl 3-23 set ref 152* rcse based structure level 1 dcl 3-55 registry_dir parameter char packed unaligned dcl 305 ref 298 rel builtin function dcl 104 ref 363 request_id_ 000032 constant entry external dcl 85 ref 217 res_id 000110 automatic fixed bin(71,0) dcl 58 set ref 138* 168* 179 179* 182 198 198* 201 217* 220 258 reservation_id 32 based fixed bin(71,0) level 2 in structure "volume" dcl 1-101 in procedure "rcp_cancel_id_" set ref 282* reservation_id based fixed bin(71,0) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 190* 198 201 258 reservation_id based fixed bin(71,0) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 171* 179 182 220 reservation_id 60 based fixed bin(71,0) level 2 in structure "device" dcl 1-59 in procedure "rcp_cancel_id_" set ref 249* reserved_by 62 based char(32) level 2 in structure "device" dcl 1-59 in procedure "rcp_cancel_id_" set ref 250* reserved_by 22 based char(32) level 2 in structure "volume" dcl 1-101 in procedure "rcp_cancel_id_" set ref 283* reserver_chain parameter bit(18) packed unaligned dcl 305 ref 298 reserver_info_ptr parameter pointer dcl 305 ref 298 resource_no parameter fixed bin(17,0) dcl 305 ref 298 rstr_id 000102 automatic char(19) packed unaligned dcl 56 set ref 135* 171* 190* state based fixed bin(17,0) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 175 state 24 based fixed bin(17,0) level 2 in structure "device" dcl 1-59 in procedure "rcp_cancel_id_" set ref 253* state based fixed bin(17,0) array level 3 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 194 state 36 based fixed bin(17,0) level 2 in structure "volume" dcl 1-101 in procedure "rcp_cancel_id_" set ref 286* state_time 22 based fixed bin(71,0) level 2 in structure "device" dcl 1-59 in procedure "rcp_cancel_id_" set ref 252* state_time 34 based fixed bin(71,0) level 2 in structure "volume" dcl 1-101 in procedure "rcp_cancel_id_" set ref 285* string 000100 automatic bit(1) packed unaligned dcl 53 set ref 108* 117* 124* 131* 135 166 system 000101 automatic bit(1) packed unaligned dcl 54 set ref 109* 118* 125* 132* 140 223 261 tot_devices 16 based fixed bin(17,0) level 2 dcl 1-29 ref 170 190 194 198 201 219 258 263 268 273 tot_dtypes 15 based fixed bin(17,0) level 2 dcl 1-29 ref 171 175 179 182 190 194 198 201 220 225 230 235 258 263 268 273 unspec builtin function dcl 104 set ref 360* 367* 367 volume based structure array level 2 in structure "rcpd" dcl 1-29 in procedure "rcp_cancel_id_" set ref 273 volume based structure level 1 dcl 1-101 in procedure "rcp_cancel_id_" volume_name 2 based char(32) level 2 in structure "device" dcl 1-59 in procedure "rcp_cancel_id_" ref 246 volume_name 1 based char(32) level 2 in structure "volume" dcl 1-101 in procedure "rcp_cancel_id_" set ref 275* 278 volume_ptr 000146 automatic pointer dcl 1-27 set ref 273* 275 275 278 278 281 282 283 284 285 286 vtypex 11 based fixed bin(17,0) level 2 dcl 1-101 ref 278 wakeup_buf 000166 automatic fixed bin(71,0) dcl 357 set ref 367* 368* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ANNOUNCE internal static fixed bin(17,0) initial dcl 7-7 ASSIGNED internal static fixed bin(17,0) initial dcl 6-9 Automatic_authentication internal static fixed bin(17,0) initial dcl 2-16 BEEP internal static fixed bin(17,0) initial dcl 7-7 CONSOLE_DTYPEX internal static fixed bin(17,0) initial dcl 5-31 CRASH internal static fixed bin(17,0) initial dcl 7-7 DELETED internal static fixed bin(17,0) initial dcl 6-10 DISK_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 5-30 DISK_VOL_VTYPEX internal static fixed bin(17,0) initial dcl 5-38 LOG internal static fixed bin(17,0) initial dcl 7-7 MCA_DTYPEX internal static fixed bin(17,0) initial dcl 5-36 Manual_authentication internal static fixed bin(17,0) initial dcl 2-16 NUM_QUALIFIERS internal static fixed bin(17,0) initial array dcl 5-22 No_authentication internal static fixed bin(17,0) initial dcl 2-16 Nominal_authentication internal static fixed bin(17,0) initial dcl 2-16 PRINTER_DTYPEX internal static fixed bin(17,0) initial dcl 5-32 PUNCH_DTYPEX internal static fixed bin(17,0) initial dcl 5-33 RCP_ACCTMSG_assign internal static fixed bin(17,0) initial dcl 4-11 RCP_ACCTMSG_attach internal static fixed bin(17,0) initial dcl 4-11 READER_DTYPEX internal static fixed bin(17,0) initial dcl 5-34 SPECIAL_DTYPEX internal static fixed bin(17,0) initial dcl 5-35 STORAGE_SYSTEM internal static fixed bin(17,0) initial dcl 6-11 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 7-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 7-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 7-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 7-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 7-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 7-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 7-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 7-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 7-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 7-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 7-7 TAPE_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 5-29 TAPE_VOL_VTYPEX internal static fixed bin(17,0) initial dcl 5-37 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 7-7 authentication_level_names internal static char(12) initial array packed unaligned dcl 2-21 based_rcp_id based structure level 1 dcl 3-26 dtype_ptr automatic pointer dcl 1-25 lock_info_ptr automatic pointer dcl 3-22 rcs based structure level 1 dcl 3-30 rcse_ptr automatic pointer dcl 3-24 rifp automatic pointer dcl 2-6 NAMES DECLARED BY EXPLICIT CONTEXT. ACCOUNT_WAKEUP 001617 constant entry internal dcl 346 ref 244 ALREADY_ASSND 001610 constant label dcl 341 ref 211 BAD_ERROR 001541 constant label dcl 316 ref 156 238 BAD_GROUP 001550 constant label dcl 321 ref 225 263 BAD_PRC 001560 constant label dcl 326 ref 230 268 BAD_RID 001570 constant label dcl 331 ref 182 201 NONE_FOUND 001600 constant label dcl 336 ref 208 290 START 000402 constant label dcl 135 ref 110 119 126 133 cleanup_handler 001665 constant entry internal dcl 373 ref 146 316 321 326 331 336 341 rcp_cancel_id_ 000254 constant entry external dcl 23 remove_schedule 001521 constant entry external dcl 298 string 000301 constant entry external dcl 112 sys 000325 constant entry external dcl 121 sys_string 000353 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 2216 2272 1722 2226 Length 2650 1722 54 342 274 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcp_cancel_id_ 188 external procedure is an external procedure. on unit on line 146 64 on unit ACCOUNT_WAKEUP internal procedure shares stack frame of external procedure rcp_cancel_id_. cleanup_handler 70 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcp_cancel_id_ 000100 string rcp_cancel_id_ 000101 system rcp_cancel_id_ 000102 rstr_id rcp_cancel_id_ 000107 prc_id rcp_cancel_id_ 000110 res_id rcp_cancel_id_ 000112 log_res_id rcp_cancel_id_ 000117 grp_id rcp_cancel_id_ 000127 code rcp_cancel_id_ 000130 i rcp_cancel_id_ 000131 any_found rcp_cancel_id_ 000132 caller_level rcp_cancel_id_ 000142 rcpd_ptr rcp_cancel_id_ 000144 device_ptr rcp_cancel_id_ 000146 volume_ptr rcp_cancel_id_ 000150 rcs_ptr rcp_cancel_id_ 000166 wakeup_buf ACCOUNT_WAKEUP 000170 auto_rcpamsg ACCOUNT_WAKEUP THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op ext_entry_desc int_entry clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. admin_gate_$syserr cu_$level_get cu_$level_set get_process_id_ get_ring_ hcs_$wakeup match_request_id_ rcp_cancel_resource_ rcp_lock_$lock rcp_lock_$unlock rcp_match_user_name_ rcp_pointers_$com_seg rcp_pointers_$data request_id_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badcall error_table_$invalid_resource_state error_table_$noentry error_table_$request_id_ambiguous LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000250 108 000272 109 000273 110 000274 112 000275 117 000317 118 000321 119 000322 121 000323 124 000343 125 000344 126 000346 128 000347 131 000376 132 000400 133 000401 135 000402 138 000413 140 000416 142 000426 144 000435 146 000444 149 000466 151 000504 152 000513 154 000522 156 000535 164 000537 166 000540 168 000542 170 000544 171 000555 173 000616 175 000620 179 000643 182 000653 187 000662 189 000664 190 000675 192 000744 194 000746 198 000777 201 001007 206 001016 208 001020 211 001022 214 001024 217 001025 219 001036 220 001047 223 001065 225 001067 227 001110 230 001111 234 001117 235 001121 237 001135 238 001164 241 001166 244 001223 246 001225 249 001235 250 001237 251 001242 252 001243 253 001246 255 001250 257 001252 258 001263 261 001307 263 001311 265 001332 268 001333 272 001340 273 001342 275 001364 278 001417 281 001446 282 001452 283 001454 284 001457 285 001460 286 001463 288 001465 290 001467 293 001471 294 001472 295 001503 296 001512 298 001513 313 001537 314 001540 316 001541 318 001545 319 001547 321 001550 323 001554 324 001557 326 001560 328 001564 329 001567 331 001570 333 001574 334 001577 336 001600 338 001604 339 001607 341 001610 343 001614 344 001616 346 001617 360 001621 362 001623 363 001627 364 001631 365 001634 367 001640 368 001642 371 001663 373 001664 376 001672 377 001703 379 001713 ----------------------------------------------------------- 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