1 /* Begin include file ... rcp_data.incl.pl1 2 * 3 * Created on 09/06/74 by Bill Silver. 4 * This include file defines the Resource Control Package data base, rcp_data. 5 * It is initialized in ring 0 by rcp_init. It is maintained in ring 1 by RCP. 6 * It contains information about all of the devices and volumes managed by RCP. 7 * This include file references rcp_com_seg.incl.pl1. 8 9 * Modified by R.J.C. Kissel on 10/5/77 to add the check_label bit. 10 * Modified by Michael R. Jordan on 04/24/78 to add modes and attached flag. 11 * Modified on 12/09/78 to add removable media bit. 12 * Modified 3/79 by Michael R. Jordan for MR7.0R. 13 * Modified 3/79 by C. D. Tavares for expandable RCP modes. 14 * Modified 11/84 by Paul Farley to add fips flag. 15 * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 16 */ 17 18 /****^ HISTORY COMMENTS: 19 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 20 audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 21 Support FIPS and IMU. 22 END HISTORY COMMENTS */ 23 24 dcl rcpd_ptr ptr; /* Points to base of RCPD. */ 25 dcl dtype_ptr ptr; /* Points to a device type entry. */ 26 dcl device_ptr ptr; /* Points to a device entry. */ 27 dcl volume_ptr ptr; /* Points to a volume entry. */ 28 29 dcl 1 rcpd based (rcpd_ptr) aligned, /* Begin at word 0 of RCPD. */ 30 2 lock_info like lock_info, /* Data used to lock this segment. */ 31 2 init bit (1) unal, /* ON => rcp_ring1_init_ has executed */ 32 2 modes like rcp_init_flags unaligned, 33 2 tot_dtypes fixed bin, /* Number of known device types. */ 34 2 tot_devices fixed bin, /* Total number of devices configured. */ 35 2 tot_volumes fixed bin, /* Number of possible attached volumes. */ 36 2 last_volume fixed bin, /* The last volume entry currently in use. */ 37 2 mtimer_chan fixed bin (71), /* Event channel for mount timer. */ 38 2 mtimer_pid bit (36), /* ID of mount timer process. */ 39 2 accounting_chan fixed bin (71), /* Event channel for device accounting */ 40 2 accounting_pid bit (36), /* ID of accounting process */ 41 2 unload_sleep_time fixed bin (71), /* Number of microseconds to wait for unload completion. */ 42 2 pad (7) fixed bin, 43 2 dtype (0 refer (rcpd.tot_dtypes)) /* One entry per device type. */ 44 like dtype, /* See structure below. */ 45 2 device (0 refer (rcpd.tot_devices)) /* One entry per configured device. */ 46 like device, /* See structure below. */ 47 2 volume (0 refer (rcpd.tot_volumes)) /* One entry per possible attached volume. */ 48 like volume, /* See structure below. */ 49 2 end bit (36) aligned; /* End of rcp_data. */ 50 51 dcl 1 dtype based (dtype_ptr) aligned, /* Entry for one device type. */ 52 2 device_type char (32), /* Name of this device type. */ 53 2 max_concurrent fixed bin, /* Max number of concurrently assigned devices. */ 54 2 num_reserved fixed bin, /* Num of devices reserved for system processes. */ 55 2 num_devices fixed bin, /* Num of devices of this type that are configured. */ 56 2 first_off bit (18), /* Offset of first device entry. */ 57 2 histo_times (3) fixed bin; /* Used to compute histograms for this device type. */ 58 59 dcl 1 device based (device_ptr) aligned, /* Up to state must = rcs.rcse. */ 60 2 device_name char (8), /* Name of device associated with this entry. */ 61 2 volume_name char (32), /* Volume name. Blank => no volume. */ 62 2 dtypex fixed bin, /* Device type index. */ 63 2 model fixed bin, /* Device model number. */ 64 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 65 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 66 2 state_time fixed bin (71), /* Time device put into current state. */ 67 2 state fixed bin, /* 0 => free, 1 => assigned, 2 => deleted, 68 3 => storage system, 4 => reserved */ 69 70 /* * * * * ** Following fields are unique to device entry. */ 71 72 2 unassign_state fixed bin, /* State to return when unassigning. */ 73 2 acs_name char (12), /* Entry name of ACS for this device. */ 74 2 next_off bit (18), /* Offset of next entry for this device type. */ 75 2 iom_num fixed bin, /* IOM number for this device. */ 76 2 chan_num fixed bin, /* Channel number for this device. */ 77 2 num_channels fixed bin, /* Num channels that may address device. */ 78 2 flags, /* Special info flags. */ 79 (3 delete bit (1), /* ON => Delete device when it is unassigned. */ 80 3 priv bit (1), /* ON => Deleted device assigned for priv attach. */ 81 3 reservable bit (1), /* ON => may be reserved for system process. */ 82 3 reserved bit (1), /* ON => reserved to a reserved process. */ 83 3 mounting bit (1), /* ON => mount pending. */ 84 3 writing bit (1), /* ON => mounting for writing. */ 85 3 attached bit (1) unal, /* ON => device is attached. */ 86 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 87 3 fips bit (1), /* ON => FIPS device. */ 88 3 no_protect bit (1), /* ON => device has no protect sw. */ 89 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 90 3 unused bit (25)) unal, 91 2 process_id bit (36), /* ID of assigned process. */ 92 2 group_id char (32), /* Process group ID. */ 93 2 error_count fixed bin (35), /* Total error count. Defined by user ring. */ 94 2 num_assigns fixed bin (35), /* Total # of times device assigned & unassigned. */ 95 2 tot_assign_time fixed bin (71), /* Total time that device was assigned. */ 96 2 histogram (4) fixed bin, /* Assignment time histogram. */ 97 2 reservation_id fixed bin (71), 98 2 reserved_by char (32), /* Who made this reservation. */ 99 2 current_authorization bit (72) aligned; /* Authoization of process using this device. */ 100 101 dcl 1 volume based (volume_ptr) aligned, /* Entry for one volume. */ 102 2 process_id bit (36), /* "0"b => unassigned. */ 103 2 volume_name char (32), /* Volume name. */ 104 2 vtypex fixed bin, /* Volume type index. */ 105 2 group_id char (32), /* This is used for the reserved_for field. */ 106 2 reserved_by char (32), 107 2 reservation_id fixed bin (71), 108 2 state_time fixed bin (71), /* Same as for a device. */ 109 2 state fixed bin, /* Same as for a device. */ 110 2 unassign_state fixed bin, /* State to return when unassigning. */ 111 2 current_authorization bit (72) aligned; /* Authorization of process using this volume. */ 112 113 %include rcp_init_flags; 114 115 /* End of include file ... rcp_data.incl.pl1 */