COMPILATION LISTING OF SEGMENT rcp_resource_info_ 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 0943.1 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 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 14 rcp_resource_info_: proc (); 15 16 17 /* 18* * 19* * This procedure and its entries constitue the interfaces in RCP to return information to RCPRM from rcp_data. 20* * The entries currently defined are: 21* * 22* * current_access_class 23* * returns the current access class of the resource in question. If it is in use (assigned/reserved) 24* * a pair of bit(1)s are returned to identify who is using the resource. 25* * 26* * 27* * Initially coded 3/79 by Michael R. Jordan 28* * Modifed during B2 cleanup by Chris Jones to stop using magic numbers. 29* * 30**/ 31 32 /* PARAMETERS */ 33 34 35 dcl access_class bit (72) aligned; /* If in use, the current access class. */ 36 dcl code fixed bin (35); /* Error code. */ 37 dcl in_use bit (1) aligned; /* ON => Resource is in use (assigned/reserved). */ 38 dcl in_use_by_other bit (1) aligned; /* ON => Resource in use by another process. */ 39 dcl rsc_name char (*); /* Resource name. */ 40 dcl rsct char (*); /* Resource type. */ 41 42 43 /* AUTOMATIC */ 44 45 46 dcl device_off bit (18); /* Offset into rcp_data of device entry. */ 47 dcl i fixed bin; /* Temporary index. */ 48 dcl this_process bit (36); /* Process id of the current process. */ 49 dcl vi fixed bin; /* Volume index. */ 50 51 52 /* ERROR CODES */ 53 54 55 dcl error_table_$resource_type_unknown fixed bin (35) ext; 56 dcl error_table_$resource_unknown fixed bin (35) ext; 57 58 59 /* ENTRIES CALLED */ 60 61 62 dcl get_process_id_ entry () returns (bit (36)); 63 dcl rcp_pointers_$data entry () returns (ptr); 64 65 66 /* BUILTIN FUNCTIONS */ 67 68 69 dcl addr builtin; 70 dcl hbound builtin; 71 dcl ptr builtin; 72 73 current_access_class: entry (rsct, rsc_name, in_use, in_use_by_other, access_class, code); 74 75 76 /* 77* * 78* * This entry tells RCPRM whether a resource is in use and if by another process. 79* * 80* * Input parameters are: 81* * 82* * (I) rsct -- resource type. 83* * (I) rsc_name -- resource name. 84* * (O) in_use -- ON => resource is assigned/reserved. 85* * (O) in_use_by_other -- ON => resource in use by another process. 86* * (O) access_class -- if in use, the access class. 87* * (O) code -- error code. 88* * 89* * 90**/ 91 92 93 in_use = "0"b; /* Not in use. */ 94 in_use_by_other = "0"b; /* Not in use by anyone. */ 95 access_class = (72)"0"b; /* No current access class. */ 96 code = 0; /* No error, yet. */ 97 98 this_process = get_process_id_ (); 99 100 rcpd_ptr = rcp_pointers_$data (); 101 102 103 /* 104* 105* Let's see if this resource type is one of the types we know (and love). 106* 107**/ 108 109 110 do i = 1 to hbound (DEVICE_TYPE, 1) ; 111 if rsct = DEVICE_TYPE (i) 112 then do; /* Found it! */ 113 do device_off = rcpd.dtype (i).first_off repeat device.next_off while (device_off ^= (18)"0"b); 114 device_ptr = ptr (rcpd_ptr, device_off); 115 if device.device_name = rsc_name 116 then do; 117 in_use = (device.state ^= FREE); 118 in_use_by_other = in_use & (device.process_id ^= this_process); 119 access_class = device.current_authorization; 120 return; 121 end; 122 end; 123 code = error_table_$resource_unknown; 124 return; 125 end; 126 end; 127 128 do i = 1 to hbound (VOLUME_TYPE, 1); 129 if rsct = VOLUME_TYPE (i) 130 then do; /* Found the right one. */ 131 do vi = 1 to rcpd.last_volume; 132 volume_ptr = addr (rcpd.volume (vi)); 133 if volume.volume_name = rsc_name 134 & volume.vtypex = i 135 then do; 136 in_use = (volume.state ^= FREE); 137 in_use_by_other = in_use & (volume.process_id ^= this_process); 138 access_class = volume.current_authorization; 139 return; 140 end; 141 end; 142 return; 143 end; 144 end; 145 146 147 code = error_table_$resource_type_unknown ; 148 return; 149 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 */ 150 151 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 */ 152 153 4 1 /* Begin include file ... rcp_resource_types.incl.pl1 4 2* * 4 3* * Created 3/79 by Michael R. Jordan for MR7.0R 4 4* * 4 5* * This include file defines the official RCP resource types. 4 6* * The array of names is indexed by the corresponding device type. 4 7* * MOD by RAF for MCA 4 8**/ 4 9 4 10 4 11 4 12 /****^ HISTORY COMMENTS: 4 13* 1) change(85-09-09,Fawcett), approve(85-09-09,MCR6979), 4 14* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 4 15* Support of MCA. 4 16* END HISTORY COMMENTS */ 4 17 4 18 dcl DEVICE_TYPE (8) char (32) 4 19 internal static options (constant) 4 20 init ("tape_drive", "disk_drive", "console", "printer", "punch", "reader", "special", "mca"); 4 21 4 22 dcl NUM_QUALIFIERS (8) fixed bin /* Number of qualifiers for each device type. */ 4 23 internal static init (3, 0, 0, 2, 0, 0, 0, 0); 4 24 4 25 dcl VOLUME_TYPE (8) char (32) 4 26 internal static options (constant) 4 27 init ("tape_vol", "disk_vol", "", "", "", "", "", ""); 4 28 4 29 dcl TAPE_DRIVE_DTYPEX fixed bin static internal options (constant) init (1); 4 30 dcl DISK_DRIVE_DTYPEX fixed bin static internal options (constant) init (2); 4 31 dcl CONSOLE_DTYPEX fixed bin static internal options (constant) init (3); 4 32 dcl PRINTER_DTYPEX fixed bin static internal options (constant) init (4); 4 33 dcl PUNCH_DTYPEX fixed bin static internal options (constant) init (5); 4 34 dcl READER_DTYPEX fixed bin static internal options (constant) init (6); 4 35 dcl SPECIAL_DTYPEX fixed bin static internal options (constant) init (7); 4 36 dcl MCA_DTYPEX fixed bin static internal options (constant) init (8); 4 37 dcl TAPE_VOL_VTYPEX fixed bin static internal options (constant) init (1); 4 38 dcl DISK_VOL_VTYPEX fixed bin static internal options (constant) init (2); 4 39 4 40 4 41 /* End include file ... rcp_resource_types.incl.pl1 */ 154 155 5 1 /* Begin include file rcp_resource_states.incl.pl1 5 2** 5 3** Created by M. M. Pozzo on 841005 5 4** Modified by Chris Jones, 12/84, to add volume states. 5 5** 5 6**/ 5 7 5 8 declare FREE fixed bin static internal options (constant) init (0); 5 9 declare ASSIGNED fixed bin static internal options (constant) init (1); 5 10 declare DELETED fixed bin static internal options (constant) init (2); 5 11 declare STORAGE_SYSTEM fixed bin static internal options (constant) init (3); 5 12 declare RESERVED fixed bin static internal options (constant) init (4); 5 13 5 14 /* End include file ... rcp_resource_states.incl.pl1 */ 156 157 158 end rcp_resource_info_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0804.6 rcp_resource_info_.pl1 >spec>install>1111>rcp_resource_info_.pl1 150 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 152 3 03/27/86 1120.0 rcp_com_seg.incl.pl1 >ldd>include>rcp_com_seg.incl.pl1 154 4 03/27/86 1120.0 rcp_resource_types.incl.pl1 >ldd>include>rcp_resource_types.incl.pl1 156 5 03/15/85 0953.1 rcp_resource_states.incl.pl1 >ldd>include>rcp_resource_states.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 4-18 ref 110 111 FREE constant fixed bin(17,0) initial dcl 5-8 ref 117 136 VOLUME_TYPE 000000 constant char(32) initial array packed unaligned dcl 4-25 ref 128 129 access_class parameter bit(72) dcl 35 set ref 73 95* 119* 138* addr builtin function dcl 69 ref 132 code parameter fixed bin(35,0) dcl 36 set ref 73 96* 123* 147* current_authorization 40 based bit(72) level 2 in structure "volume" dcl 1-101 in procedure "rcp_resource_info_" ref 138 current_authorization 72 based bit(72) level 2 in structure "device" dcl 1-59 in procedure "rcp_resource_info_" ref 119 device based structure level 1 dcl 1-59 device_name based char(8) level 2 dcl 1-59 ref 115 device_off 000100 automatic bit(18) packed unaligned dcl 46 set ref 113* 113* 114* device_ptr 000106 automatic pointer dcl 1-26 set ref 114* 115 117 118 119 122 dtype 43 based structure array level 2 in structure "rcpd" dcl 1-29 in procedure "rcp_resource_info_" dtype based structure level 1 dcl 1-51 in procedure "rcp_resource_info_" error_table_$resource_type_unknown 000010 external static fixed bin(35,0) dcl 55 ref 147 error_table_$resource_unknown 000012 external static fixed bin(35,0) dcl 56 ref 123 first_off 56 based bit(18) array level 3 dcl 1-29 ref 113 get_process_id_ 000014 constant entry external dcl 62 ref 98 hbound builtin function dcl 70 ref 110 128 i 000101 automatic fixed bin(17,0) dcl 47 set ref 110* 111 113* 128* 129 133* in_use parameter bit(1) dcl 37 set ref 73 93* 117* 118 136* 137 in_use_by_other parameter bit(1) dcl 38 set ref 73 94* 118* 137* last_volume 20 based fixed bin(17,0) level 2 dcl 1-29 ref 131 lock_info based structure level 1 dcl 3-46 next_off 31 based bit(18) level 2 dcl 1-59 ref 122 process_id based bit(36) level 2 in structure "volume" dcl 1-101 in procedure "rcp_resource_info_" ref 137 process_id 36 based bit(36) level 2 in structure "device" dcl 1-59 in procedure "rcp_resource_info_" ref 118 ptr builtin function dcl 71 ref 114 rcp_init_flags based structure level 1 packed packed unaligned dcl 2-8 rcp_pointers_$data 000016 constant entry external dcl 63 ref 100 rcpd based structure level 1 dcl 1-29 rcpd_ptr 000104 automatic pointer dcl 1-24 set ref 100* 113 114 131 132 rcse based structure level 1 dcl 3-55 rsc_name parameter char packed unaligned dcl 39 ref 73 115 133 rsct parameter char packed unaligned dcl 40 ref 73 111 129 state 24 based fixed bin(17,0) level 2 in structure "device" dcl 1-59 in procedure "rcp_resource_info_" ref 117 state 36 based fixed bin(17,0) level 2 in structure "volume" dcl 1-101 in procedure "rcp_resource_info_" ref 136 this_process 000102 automatic bit(36) packed unaligned dcl 48 set ref 98* 118 137 tot_devices 16 based fixed bin(17,0) level 2 dcl 1-29 ref 132 tot_dtypes 15 based fixed bin(17,0) level 2 dcl 1-29 ref 132 vi 000103 automatic fixed bin(17,0) dcl 49 set ref 131* 132* volume based structure level 1 dcl 1-101 in procedure "rcp_resource_info_" volume based structure array level 2 in structure "rcpd" dcl 1-29 in procedure "rcp_resource_info_" set ref 132 volume_name 1 based char(32) level 2 dcl 1-101 ref 133 volume_ptr 000110 automatic pointer dcl 1-27 set ref 132* 133 133 136 137 138 vtypex 11 based fixed bin(17,0) level 2 dcl 1-101 ref 133 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ASSIGNED internal static fixed bin(17,0) initial dcl 5-9 Automatic_authentication internal static fixed bin(17,0) initial dcl 2-16 CONSOLE_DTYPEX internal static fixed bin(17,0) initial dcl 4-31 DELETED internal static fixed bin(17,0) initial dcl 5-10 DISK_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 4-30 DISK_VOL_VTYPEX internal static fixed bin(17,0) initial dcl 4-38 MCA_DTYPEX internal static fixed bin(17,0) initial dcl 4-36 Manual_authentication internal static fixed bin(17,0) initial dcl 2-16 NUM_QUALIFIERS internal static fixed bin(17,0) initial array dcl 4-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 4-32 PUNCH_DTYPEX internal static fixed bin(17,0) initial dcl 4-33 READER_DTYPEX internal static fixed bin(17,0) initial dcl 4-34 RESERVED internal static fixed bin(17,0) initial dcl 5-12 SPECIAL_DTYPEX internal static fixed bin(17,0) initial dcl 4-35 STORAGE_SYSTEM internal static fixed bin(17,0) initial dcl 5-11 TAPE_DRIVE_DTYPEX internal static fixed bin(17,0) initial dcl 4-29 TAPE_VOL_VTYPEX internal static fixed bin(17,0) initial dcl 4-37 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 rcs_ptr automatic pointer dcl 3-23 rcse_ptr automatic pointer dcl 3-24 rifp automatic pointer dcl 2-6 NAMES DECLARED BY EXPLICIT CONTEXT. current_access_class 000225 constant entry external dcl 73 rcp_resource_info_ 000211 constant entry external dcl 14 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 610 630 503 620 Length 1110 503 20 244 104 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcp_resource_info_ 83 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcp_resource_info_ 000100 device_off rcp_resource_info_ 000101 i rcp_resource_info_ 000102 this_process rcp_resource_info_ 000103 vi rcp_resource_info_ 000104 rcpd_ptr rcp_resource_info_ 000106 device_ptr rcp_resource_info_ 000110 volume_ptr rcp_resource_info_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as call_ext_out return_mac ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_process_id_ rcp_pointers_$data THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$resource_type_unknown error_table_$resource_unknown LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000210 73 000216 93 000245 94 000247 95 000250 96 000254 98 000255 100 000263 110 000272 111 000277 113 000311 114 000320 115 000323 117 000332 118 000335 119 000345 120 000352 122 000353 123 000356 124 000362 126 000363 128 000365 129 000373 131 000405 132 000415 133 000436 136 000450 137 000453 138 000463 139 000470 141 000471 142 000473 144 000474 147 000476 148 000502 ----------------------------------------------------------- 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