|
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure EXPBK EXPOSURE BLOCK
Flags for the exposure block.
0000 0 Bitstring 1 EXPLCKFG Exposure lock byte. Obtained -
TSGET X'FF' Released - TSREL
X'00'
0001 1 Bitstring 1 EXPTYPEF Exposure type flag
..1. .... EXPSCSI X'20' EXPSCSI Native SCSI (FBA on
SCSI)
.... ..1. EXPFBA X'02' EXPFBA This is an FBA
device
.... ...1 EXPECKD X'01' EXPECKD Indicates this is
an ECKD paging device
These flags keep the status information for this exposure.
This flag contains bits, but is also manipulated with a
MVI so care must be taken to understand the relationship of
the bits.
0002 2 Bitstring 1 EXPSTAT1 Exposure status flag one
.... .... EXPIDLE X'00' EXPIDLE Value when exposure
is idle, and unsuspended, as far
as paging subsystem is aware.
1... .... EXPINTE X'80' EXPINTE Interrupt is
expected. Turned on when: - a
SSCH is stacked - a RSCH is
issued - a CSCH is issued Turned
off when: - PAHIN receives a
"final" interrupt. (Suspended
NOP, or an interrupt for a
non-suspended NOP, or CSCH.) Left
on when: - PCI only interrupt is
received.
.1.. .... EXPSUSPN X'40' EXPSUSPN Indicates that the
device is suspended and a RSCH is
needed. Turned on when EXPINTE is
turned off, and the device is
suspended. Turned off when a RSCH
or CSCH is issued.
..1. .... EXPRSCHBC X'20' EXPRSCHBC RSCH Bad
Condition code. RSCH was issued
but a CC1 or CC2 was received.
Turned on when a RSCH is issued
and results in a CC1 or a CC2.
Turned off when an interrupt is
received and PAH issues a SSCH to
restart the previously built
package.
...1 .... EXPCSCHDN X'10' EXPCSCHDN CSCH DoNe. Turned
on when a CSCH is issued. Turned
off when EXPINTE is turned off.
.... 1... EXPAQ X'08' EXPAQ RAS: Call has been
stacked to HCPPAUAQ after a RSCH
CC=3.
.... .1.. EXPNOPS X'04' EXPNOPS RAS: Suspend is on
in the final NOP CCW. Turned on
when the final CCW has suspend
indicated. Turned off when
EXPINTE is turned off, or the the
suspend bit is turned off and
ESPSTAT2.DQINP is turned on.
.... ..1. EXPSSCHDN X'02' EXPSSCHDN RAS: SSCH was
stacked or gone to. Turned on
when a SSCH is stacked. Turned
off when EXPINTE is turned off.
.... ...1 EXPRSCHDN X'01' EXPRSCHDN RAS: RSCH was
issued. Turned on when a RSCH is
issued. Turned off when EXPINTE
is turned off.
0003 3 Bitstring 1 EXPSTAT2 Exposure status flag two
1... .... EXPDQINP X'80' EXPDQINP Indicates a
DEQUEUE in progress. Turned on
when it is determined that a
device needs to come to an
unsuspended state. Turned off
when EXPSTAT1.EXPINTE is turned
off and the device is not
suspended.
0004 4 Signed 4 * Reserved for future IBM use.
The PIOBK array (array of PIOBKs) contains the
channel program for this exposure. Therefore
it is allocated below the 2G line.
Most PIOBK "work" is done using host absolute addresses.
Any reference to the "previous" PIOBK in the
comments refers to the PIOBK that tics to a CCW
within this PIOBK. Any reference to the "next"
PIOBK in the comments refers to the PIOBK that
is TICed to by the TIC/NOP in this PIOBK.
See PIOBK for more information concerning each PIOBK.
0008 8 Address 4 EXPPIOARHL PIOBK Array Host Logical. Host
logical address of the array of
PIOBKs.
000C 12 Address 4 EXPPIOARHA PIOBK Array Host Absolute. Host
absolute address of the array of
PIOBKs.
0010 16 Address 4 EXPPIOAREND PIOBK Array End. Host absolute
address of the last byte of the
array of PIOBKs.
0014 20 Signed 4 * Reserved for future IBM use.
The "executing" PIOBKs for this exposure
These next two pointers define the first through last PIOBKS
that have been "sent" to the channel. The second pointer
is updated as the channel program is being built though.
Initial state - PIOEF = PIOEL = First PIOBK in Array
(Arbitrary, could be any)
I/O Executing state - see comments below
Suspended (idle) state - PIOEF=PIOEL (suspended PIOBK)
Idle (Unsuspended) state - PIOEF = PIOEL (last processed)
PIOEF and PIOEL will never be zero.
0018 24 Address 4 EXPPIOEF PIOBK Executing First. Host
absolute address of the first
executing PIOBK. This is the HA
address of the PIOBK in the
current channel program that has
not been processed by HCPPAHIN
(or is currently suspended).
Note: In the case of a RSCH, this
points to the PIOBK that is
pointed into by the TIC that was
resumed. In the case of a SSCH,
this points to the PIOBK that has
the Define Extent pointed to by
CPA in the ORB. In the case when
a PCI interrupt is received, this
points to the next PIOBK that is
not yet processed.
001C 28 Address 4 EXPPIOEL Executing Last. "Suspended" Host
absolute address of the PIOBK in
the executing channel program
that contains the last R/W CCW
and has (ends in) either a
NOP/suspend, or a NOP.
0020 32 Address 4 EXPGATE This is the address of the PIOBK
that was executed by the channel
subsystem and has a suspended
NOP. Set when construction of a
new segment of channel program
begins. Just before a segment is
executed (SSCH or RSCH) the NOP
in this PIOBK is changed to a TIC
to the next appropriate CCW, and
this field is set to 0. Its
important this is not done
earlier as the I/O subsystem may
do a RSCH while we are still
building the next CCW segment.
0024 36 Signed 4 * Reserved for IBM use
The "built" PIOBKs for this exposure
These next two pointers define the first through
last PIOBKS that have unprocessed CCWs that have
been built, but not yet sent to the channel. When
an SSCH is scheduled or a RSCH receives a CC0 then
these built PIOBKs become the executing PIOBKs.
Initial state - PIOBF = 0
PIOBL = 0
Reset to initial state when a SSCH is
scheduled, or a RSCH receives a CC0.
BKT didn't actually use/need the first 2. To be deleted.
0028 40 Address 4 EXPPIOBF Built first. Host absolute
address of the first PIOBK as a
new channel program is being
built. This PIOBK has a R/W CCW
that is waiting to be executed.
The "previous" PIOBK NOP address
has been updated to point to the
define extent, but is still a NOP
(till just before SSCH or RSCH.)
This field may be zero indicating
a channel program is not
currently being built.
002C 44 Address 4 EXPPIOBL Built last. Host absolute address
of the last PIOBK as a new
channel program is being built.
This PIOBK has a R/W CCW that is
waiting to be executed. The
"previous" PIOBK TIC/NOP address
has been updated to point to the
define extent, locate record, or
R/W and has been changed to a TIC
unless this is also EXPPIOBF.
0030 48 Address 4 EXPeffLR Host absolute address of the
PIOBK with the effective Locate
record as a channel program is
being built.
The "available" PIOBKs for this exposure
These next two pointers define the first
through last PIOBKS that are available.
These pointers may not be zero
When EXPPIOAF and EXPPIOAL are equal, no PIOBKs are
available (We can not use the last "available" one since
it contains a TIC that the channel may want to look at
if a RSCH is issued. Think - Suspended, but idle case.)
When all are available, then EXPPIOAL will be
the PIOBK that tics into the PIOBK at EXPIOLAF.
Initial state - EXPIOAF = EXPPIOARHA
EXPIOAL = HA Address of the last PIOBK
in the array.
Full (no PIOBKs available) EXPIOAF=EXPIOAL
BKT didn't actually use/need these two pointers. to be ded.
0034 52 Address 4 EXPPIOAF Available First. Host absolute
address of the first available
PIOBK. This PIOBK has the
processed flag on and is
available to be used to build or
continue building a channel
program.
0038 56 Address 4 EXPPIOAL Available Last. Host absolute
address of the last available
PIOBK. This PIOBK has the
processed flag on and is
available to be used to build or
continue building a channel
program.
003C 60 Signed 4 EXPAVAIL Number of PIOBKs available. The
number of PIOBKs available. The
last one, must not be used, so
this will bottom out at 1.
(therefore, 1 => none
available.)
0040 64 Signed 4 EXPBUILT Number of PIOBKs built.
0044 68 Signed 4 EXPEXEC Number of PIOBKs executing. Note:
This is the number of outstanding
read/write CCWs that have not
been processed, but have been
sent to the channel.
(PIORDWRO.PIOFINIS=0) RAS. Debug
only? BKT
0048 72 Dbl-Word 8 EXPLRSAVES Number of mid i/o Locate records
0050 80 Dbl-Word 8 EXPMAXED Number of times we could have
used more PIOBKs.
0058 88 Dbl-Word 8 EXPSTATS (9) MinMaxAvg stats for number of
PIOBKs in use at SSCH/RSCH time.
00A0 160 Signed 4 * Reserved for IBM use
These are deferred saveareas when all CCW packages
are in use for this exposure. The queues are described
in the general comments section of HCPPAGRV.
00A4 164 Address 4 EXPSFDSV First deferred savearea for
single reads and writes. (A
PPIBK)
00A8 168 Address 4 EXPSLDSV Last deferred savearea for single
reads and writes. (A PPIBK)
00AC 172 Signed 4 EXPCURQS Count of deferred PPIBKs on
EXPSFDSV each representing 1 page
read or 1 page write.
00B0 176 Address 4 EXPMRDFQ Host logical address of the
00B4 180 Signed 4 EXPCURQMR PPIBK that contains the queue of
deferred FRMTEs (PPIFRMQG) to be
read for a multiple read request.
Followed by the count of pages on
that queue. Mapped by EXPQUENT
DSECT.
00B8 184 Address 4 EXPMWDFQ Host logical address of the
00BC 188 Signed 4 EXPCURQMW PPIBK that contains the queue of
deferred FRMTEs (PPIFRMQG) to be
written for a multiple write
request. Followed by the count of
pages on that queue. Mapped by
EXPQUENT DSECT.
00C0 192 Signed 4 EXPRedriving When we redrive a multi-read or
multi-write we will move the
count dequeued to here, and keep
track of them. If we requeue left
overs, after filling the PIOBK
array, we will know how many are
left.
00C4 196 Bitstring 1 EXPPossArrow A binary switch.
1... .... EXPWriteNext X'80' EXPWriteNext Write next
time.
.... .... EXPReadNext X'00' EXPReadNext Read next time.
00C5 197 Bitstring 3 * Reserved for IBM use
00C8 200 Signed 4 * Reserved for IBM use
00CC 204 Signed 4 * Reserved for IBM use
Monitor counters.
00D0 208 Signed 4 EXPCTPRD Total count of page read
operations for this device. Note
that page read operations may be
directed to devices without any
cylinders specifically defined as
type PAGE.
00D4 212 Signed 4 EXPCTPWR Total count of page write
operations for this device. Note
that page write operations may be
directed to devices without any
cylinders specifically defined as
type PAGE.
00D8 216 Signed 4 EXPCTSRD Total count of spooling reads for
this device.
00DC 220 Signed 4 EXPCTSWR Total count of spooling writes
for this device.
00E0 224 Signed 2 * Reserved for IBM use.
00E2 226 Signed 2 EXPQCNEG Number of times EXPCURQC went
neg.
00E4 228 Signed 4 EXPCURQC Cardinal count of all outstanding
paging/spooling reads/writes for
this device.
00E8 232 Signed 4 EXP2BQED Count of slots that have been
assigned on this CPVOL but have
not yet been added to EXPCURQC,
updated using CS logic
00EC 236 Address 4 EXPPAGIOR IORBK for this exposure. PAGBK
for this exposure. The IORBK is
always at the beginning of the
PAGBK so this field does double
duty.
00F0 240 Signed 4 EXPCTUSI Total count of the number of
times the channel program had to
be terminated to allow user I/O.
This is an indicator of
interference between user and
paging/spooling I/O.
00F4 244 Signed 4 EXPDEVST Exposure service time.
00F8 248 Signed 4 EXPMLOAD Exposure MLOAD.
00FC 252 Signed 4 EXPTIMER Exposure timestamp for SSCH/RSCH.
0100 256 Signed 4 EXPINTIM Exposure timestamp at I/O
interrupt time.
0104 260 Signed 4 EXPNMPIO Number of active PIOBKS at I/O
interrupt time used to calc
service time.
0108 264 Address 4 EXPRDCBK Address of the RDCBK.
010C 268 Signed 4 EXPCONT (20) Count of 20 contiguous free
spaces allocated from 1 to 20
plus.
015C 348 Signed 4 * Reserved for IBM use
0160 352 Signed 4 * Reserved for future use.
0164 356 Signed 4 EXPBKEND (0) End of EXPBK.
00000164 EXPBSIZE *-EXPBK Size of this DSECT in
Bytes
0000002D EXPSIZE (((*-EXPBK)+7)/8) Size in
double-words
MLOAD constants
00FFFFFF EXPMXTOT X'7FFFFFFF' Maximum total MLOAD
value
007FFFFF EXPMXAVG X'007FFFFF' Maximum average MLOAD
value
The next two statements EXPQUENT, and EXPQANCH
are used to map the multiple read and
write queue fields EXPMRDFQ and EXPMWDFQ.
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure EXPQUENT EXPOSURE BLOCK
0000 0 Address 4 EXPQANCH Anchor for multiple defer queues.
0004 4 Signed 4 EXPCount Count of pages on that queue.
| |