|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
LDVBK
Control Block Contents
LDVBK DSECT
Cross Reference (Contains links to field and bit definitions)
LDVBK Prolog
NAME : HCPLDVBK
DESCRIPTION: ISFC Link Device Extension
DSECT : LDVBK
FUNCTION :
This structure acts as an extension of the RDEV
for an ISFC link device. One LDVBK exists for
each device that is attached to ISFC. One or more
link devices (LDVBKs) may be associated with the
same link (LNKBK).
LOCATED BY :
LNKDVTBL (pointer) to the chain of LDVBK structures
associated with this link. The chain is
linked by LDVFPNT and LDVBPNT pointers.
RDEVCFDV (pointer).
CREATED BY :
Operation of the 'ACTIVATE ISLINK' command.
DELETED BY :
Operation of the 'DEACTIVE ISLINK' command.
SERIALIZED :
- LDVLKWRD is held Exclusive to update these fields.
- LDVLKWRD is held Shared or Exclusive to reference
these fields.
- LDVLKWRD may be held (exclusive) across some calls
as LDVLKWRD ownership follows a given task.
- LDVINUSE (TS lock) is obtained (NO SPIN) to indicate
the device is busy. If the TS fails, the device is
presumed to be busy with some other task. If the
TS suceeds, a new data transfer operation may be
performed before resetting LDVINUSE.
- Exceptions are noted below.
RELOCATION CONSIDERATIONS : None
LDVBK Control Block Content
LDVBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure LDVBK ISFC Link Device Extension
Device identification and linkage.
0000 0 Character 4 LDVDEVID Printable hex device number
0004 4 Signed 4 LDVDEVNO Real device address
0008 8 Address 4 LDVLNKBK Base LNKBK addr (Hold RDEV lock)
000C 12 Character 4 LDVTYPE Link Type (e.g. FCTC)
0010 16 Address 4 LDVRDEV RDEV address
0014 20 Address 4 LDVEXTBK Pointer to CTCBK (LNKDRV00)
Device table pointers (LDVFPNT and LDVBPNT).
When this device is disconnected (LDVLKWRD==0) these
pointers link to other devices in the Disconnected
Device chain at HCPBUTDV (serialized by the ISFC
Global Lock).
When this device is connected (LDVLKWRD==nonzero) these
pointers link to other devices belonging to the same
LNKBK (serialized by the LNKLKWRD).
0018 24 Address 4 LDVFPNT Pointer to next LDVBK
001C 28 Address 4 LDVBPNT Pointer to prev LDVBK
When LDVDFNOD is not null, it is the defined NODEID.
If the actual remote NODEID does not match the
defined (expected) NODEID, this device is unuseable.
0020 32 Character 8 LDVDFNOD Defined Node ID
LDVUSER records the VM userid that most recently
activated or deactivated this device.
0028 40 Character 8 LDVUSER Command invoker
Link device lock (LKWRD).
0030 48 Bitstring 24 LDVLKWRD LKWRD for device configuration
Remote Node Information (only valid for type FCTC).
These fields are serialized by LDVLKWRD.
0048 72 Bitstring 8 LDVRMVER Remote Driver Version
0050 80 Bitstring 8 LDVRMCAP Remote Driver Capabilities
0058 88 Character 8 LDVRMNOD Remote Node ID
0060 96 Character 4 LDVRMDEV Remote Device Address
0064 100 Signed 2 LDVRMMFL Remote Maximum Frame Length
0066 102 Character 18 LDVRMUID Remote Identifier
0078 120 Signed 2 LDVBUFCT Remote buffer count (LNKDRV00)
007A 122 Signed 2 LDVRFCTR Outstanding reference counter
(the number of tasks that need
this LDVBK but do NOT currently
hold LDVLKWRD)
007C 124 Bitstring 1 LDVINUSE TS latch for data transfer
007D 125 Bitstring 1 LDVREASON Reason device reset
00000001 LDV_RSNRESET 1 LDV_RSNRESET - Device reset
00000002 LDV_RSNDEACT 2 LDV_RSNDEACT - Device
deactivated
00000003 LDV_RSNMIH 3 LDV_RSNMIH - Missing Interrupt
detected
00000004 LDV_RSNDUPID 4 LDV_RSNDUPID - Duplicate nodeid
detected
00000005 LDV_RSNDRIVER 5 LDV_RSNDRIVER - Incompatible
driver detected
00000006 LDV_RSNLINK 6 LDV_RSNLINK - Link Level reset
007E 126 Signed 2 LDVRMDID Remote Devno
Device status.
0080 128 Bitstring 1 LDVDVFLG Device Flag
1... .... LDVDVINI X'80' LDVDVINI - Initializing
device
.1.. .... LDVDVDET X'40' LDVDVDET - Detached device
..1. .... LDVDVBUF X'20' LDVDVBUF - Device buffer is
active
...1 .... LDVDVDSC X'10' LDVDVDSC - Disconnecting
device
0081 129 Bitstring 1 LDVSETUP Initialization stages
1... .... LDVCSCH X'80' LDVCSCH - CSCH was done
.1.. .... LDVPREP X'40' LDVPREP - Adapter is in
Extended Mode
..1. .... LDVWRXID X'20' LDVWRXID - Write XID was
done
...1 .... LDVRDXID X'10' LDVRDXID - Read XID was
done
0082 130 Bitstring 1 LDVSTAT Device status
00000000 LNKDVCTL 0 LNKDVCTL - Device Control mode
00000000 LNKINIT 0 LNKINIT - Initialization in
progress
00000001 LNKIDLE 1 LNKIDLE - Idle
00000002 LNKBUSY 2 LNKBUSY - Busy
00000003 LNKWRITE 3 LNKWRITE - Write in progress
00000004 LNKREAD 4 LNKREAD - Read in progress
00000005 LNKRESET 5 LNKRESET - Reset in progress
00000006 LNKATTN 6 LNKATTN - Handling link
attention
00000007 LNKFATAL 7 LNKFATAL - Fatal I/O on link
00000008 LNKDEACT 8 LNKDEACT - Deactivation in
progress
LDVMODE indicates the current operating mode.
LDVDISC This side (the X-SIDE) is disconnected from
the driver on the other side (the Y-SIDE).
We need to initialize (or reset) our
conversation with that driver.
LDVINIMD Initialization is in progress for this device.
We are involved in establishing a connection
with the Y-SIDE driver. When we are in synch
with the Y-SIDE driver, we can move to LDVLINK
mode to create (or join) a logical link.
LDVLINK We are connected to a Y-SIDE driver, and
creating (or joining) a logical link.
LDVIDLE We are connected to a logical link (LNKBK)
and ready for data transfer.
LDVXFRMD We are involved in a data transfer sequence.
Normally we go to LDVIDLE mode when the
sequence is done.
LDVTRMMD We are terminating the prior mode for this
device. When termination is complete, this
device returns to LDVDISC mode (or is removed).
0083 131 Bitstring 1 LDVMODE Operational Mode
00000000 LDVDISC 0 LDVDISC - Disconnected from
neighbor
00000001 LDVINIMD 1 LDVINIMD - Initialization in
progress
00000002 LDVLINK 2 LDVLINK - Link formation in
progress
00000003 LDVIDLE 3 LDVIDLE - Idle (ready for work)
00000004 LDVXFRMD 4 LDVXFRMD - Data Transfer Mode
00000005 LDVCTLMD 5 LDVCTLMD - Device Control Mode
00000006 LDVTRMMD 6 LDVTRMMD - Termination Mode
0084 132 Bitstring 1 LDVCONN Device connection status
1... .... LDVREADY X'80' LDVREADY - Interface is
ready
.1.. .... LDVDRVID X'40' LDVDRVID - Known driver
level (LDVLEVEL)
..1. .... LDVLINIT X'20' LDVLINIT - Started by local
node
...1 .... LDVRINIT X'10' LDVRINIT - Started by
remote node
.... 1... LDVRSTOP X'08' LDVRSTOP - Stopped by
remote node
0085 133 Bitstring 1 LDVERROR Most recent error condition
00000000 LDV_NONE 0 LDV_NONE - No error
00000001 LDV_NOTREADY 1 LDV_NOTREADY - NOTREADY
(Y-SIDE)
00000002 LDV_READSEQ 2 LDV_READSEQ - Read out of
sequence
00000003 LDV_EOFSEQ 3 LDV_EOFSEQ - EOF out of
sequence
00000004 LDV_BADLEN 4 LDV_BADLEN - Bad frame length
00000005 LDV_BADTYPE 5 LDV_BADTYPE - Bad frame type
00000006 LDV_TIMEOUT 6 LDV_TIMEOUT - I/O Timeout
00000007 LDV_STOPPED 7 LDV_STOPPED - Stopped by Y-SIDE
00000008 LDV_DRIVER 8 LDV_DRIVER - Incompatible
Y-SIDE driver
00000009 LDV_DUPLICATE 9 LDV_DUPLICATE - Duplicate Node
0000000A LDV_IOMISC 10 LDV_IOMISC - Miscellaneous I/O
error
0000000B LDV_FATAL 11 LDV_FATAL - Fatal I/O error
Notes : LDVLEVEL is serialized by
LDVLKWRD.
0086 134 Bitstring 1 LDVLEVEL Device Driver Level
00000000 LNKLVL00 0 LNKLVL00 - Driver not confirmed
00000001 LNKLVL01 1 LNKLVL01 - Driver using MDEBK
00000002 LNKLVL02 2 LNKLVL02 - Driver using MBHBK
0087 135 Bitstring 1 LDVMIH Current Device MIH State
00000000 LDVMIOFF 0 LDVMIOFF - No MIH support
00000001 LDVMIBYP 1 LDVMIBYP - MIH temporarily
disabled
00000002 LDVMIALT 2 LDVMIALT - Alternate MIRATE in
use
00000003 LDVMIENB 3 LDVMIENB - Normal MIRATE in use
00000006 LDVMIRAT 6 LDVMIRAT Normal MIRATE for a
Link Device LDVMIRAT * 5 = # of
Seconds
Active work areas.
0088 136 Address 4 LDVTXWRK Pointer to TX LWKBK
008C 140 Address 4 LDVRXWRK Pointer to RX LWKBK
Links for dispatch priority sequence.
0090 144 Address 4 LDVFPDS Ptr to next for device selection
0094 148 Address 4 LDVBPDS Ptr to prev for device selection
Low level I/O activity.
0098 152 Signed 4 LDVUPARM ORB Word 0 (User PARM value)
009C 156 Signed 4 LDVOCTL ORB Word 1 (control flags)
00A0 160 Address 4 LDVCPA ORB Word 2 (CPA) HA
00A4 164 Address 4 LDVIORBK IORBK for outgoing I/O
00A8 168 Dbl-Word 8 LDVIOTOD TOD when I/O started
00B0 176 Dbl-Word 8 LDVLKTRC LDVLKWRD obtainer info (R13,R14)
00B8 184 Bitstring 1 LDVCFLG Control flags
1... .... LDVXRTRY X'80' LDVXRTRY - Enable ATTN+BUSY
retry logic
00B9 185 Bitstring 1 LDVIOPND I/O Pending Status
1... .... LDVSIOPD X'80' LDVSIOPD - Start Pending
.1.. .... LDVINTPD X'40' LDVINTPD - Interrupt
Pending
..1. .... LDVATTPD X'20' LDVATTPD - ATTN status
pending
...1 .... LDVDEPD X'10' LDVDEPD - DE status pending
00BA 186 Bitstring 1 LDVIOSTS Pending Device I/O Status
00BB 187 Bitstring 1 LDVRMCMD Remote CCW Command (SCB buffer)
00BC 188 Address 4 LDVRSCPA Pointer to Restart CPA
00C0 192 Signed 4 LDVRETRY Retry count
00C4 196 Bitstring 4 LDVXCCW0 (0) Last CCW (word 0)
IORETCOD<>0
00C4 196 Bitstring 1 LDVXCMD CCW command
00C5 197 Bitstring 1 LDVXFLAG CCW flag
00C6 198 Bitstring 2 LDVXCNT CCW byte count
Work area for CCWs.
00C8 200 Dbl-Word 8 LDV_CCW1 Space for a CCW
00D0 208 Dbl-Word 8 LDV_CCW2 Space for a CCW
00D8 216 Dbl-Word 8 LDV_CCW3 Space for a CCW
Type 09 Accounting Record (Link Statistics) columns 29-78.
Notes :
Map LNKACOLS using HCPACOBK at ACOCFLS.
- For LDVTYPE=CTCA, these fields are protected by the
LNKBK lock.
- For LDVTYPE=FCTC, these fields are protected by
Compare and Swap logic.
00E0 224 Bitstring 50 LDVACOLS (29-78) for Type 09 Accounting
0112 274 Signed 2 LDVMFL Local DDBUF length
0114 276 Signed 4 LDVCTSI Validate UI currency (RDEVCTSI)
Device level I/O activity counters.
0118 280 Dbl-Word 8 LDVRXMSG Receive Message Count
0120 288 Dbl-Word 8 LDVRXBYT Receive Byte Count
0128 296 Dbl-Word 8 LDVTXMSG Sent Message Count
0130 304 Dbl-Word 8 LDVTXBYT Sent Byte Count
Device control latches.
0138 312 Bitstring 1 LDVOP Operational status
00000000 LDVOP_NORMAL 0 LDVOP_NORMAL - Normal
operational status
000000FF LDVOP_SUSPEND 255 LDVOP_SUSPEND - Suspend /
quiesce activity
0139 313 Bitstring 1 LDVDET Detach action
00000000 LDVDET_KEEP 0 LDVDET_KEEP - Keep this device
000000FF LDVDET_REMOVE 255 LDVDET_REMOVE - Remove this
device
013A 314 Bitstring 6 * Reserved for IBM use
Buffer for independent read operations.
0140 320 Dbl-Word 8 LDV_DDBUF (0) Array of device buffer frames
0140 320 Address 8 LDV_DDBUF1 HA Pointer to 4KB buffer
0148 328 Address 8 LDV_DDBUF2 HA Pointer to 4KB buffer
0150 336 Address 8 LDV_DDBUF3 HA Pointer to 4KB buffer
00000003 LDVMFC 3 LDV_DDBUF pages defined
TOD when this LDVBK was defined (ACTIVATE ISLINK)
0158 344 Dbl-Word 8 LDVDFTOD TOD when LDVBK was defined
TOD used while connecting to the Y-SIDE neighbor
0160 352 Dbl-Word 8 LDVCNTOD TOD when connecting to Y-SIDE
Most recent LWKSEQNO frames processed on this device.
0168 360 Signed 2 LDVTXSEQ Latest TX LWKSEQNO on this dev
016A 362 Signed 2 LDVRXSEQ Latest RX LWKSEQNO on this dev
016C 364 Signed 2 LDVBUFLN Actual LDV_DDBUF length
016E 366 Bitstring 10 * Reserved for IBM Use
0178 376 Bitstring 8 LDVCT_WRCOLL Write collisions
0180 384 Bitstring 8 LDVCT_TXLWK Packages sent
0188 392 Bitstring 8 LDVCT_RXLWK Packages received
0190 400 Bitstring 16 * Reserved for IBM use
01A0 416 Bitstring 1 LDVBK$ (0) End of LDVBK
00000034 LDVSIZE (*-LDVBK+7)/8 Size, in
doublewords, of LDVBK
LDVBK Storage Layout
*** LDVBK - ISFC Link Device Extension
*
* +---------------------------+---------------------------+
* 0 | LDVDEVID | LDVDEVNO |
* +---------------------------+---------------------------+
* 8 | LDVLNKBK | LDVTYPE |
* +---------------------------+---------------------------+
* 10 | LDVRDEV | LDVEXTBK |
* +---------------------------+---------------------------+
* 18 | LDVFPNT | LDVBPNT |
* +---------------------------+---------------------------+
* 20 | LDVDFNOD |
* +-------------------------------------------------------+
* 28 | LDVUSER |
* +-------------------------------------------------------+
* 30 | |
* = LDVLKWRD =
* | |
* +-------------------------------------------------------+
* 48 | LDVRMVER |
* +-------------------------------------------------------+
* 50 | LDVRMCAP |
* +-------------------------------------------------------+
* 58 | LDVRMNOD |
* +---------------------------+-------------+-------------+
* 60 | LDVRMDEV | LDVRMMFL | |
* +---------------------------+-------------+ |
* | LDVRMUID |
* | |
* +-------------+-------------+------+------+-------------+
* 78 | LDVBUFCT | LDVRFCTR |:INUSE|(07D) | LDVRMDID |
* +------+------+------+------+------+------+------+------+
* 80 |:DVFLG|:SETUP|:STAT |:MODE |:CONN |:ERROR|:LEVEL|LDVMIH|
* +------+------+------+------+------+------+------+------+
* 88 | LDVTXWRK | LDVRXWRK |
* +---------------------------+---------------------------+
* 90 | LDVFPDS | LDVBPDS |
* +---------------------------+---------------------------+
* 98 | LDVUPARM | LDVOCTL |
* +---------------------------+---------------------------+
* A0 | LDVCPA | LDVIORBK |
* +---------------------------+---------------------------+
* A8 | LDVIOTOD |
* +-------------------------------------------------------+
* B0 | LDVLKTRC |
* +------+------+------+------+---------------------------+
* B8 |:CFLG |:IOPND|:IOSTS|:RMCMD| LDVRSCPA |
* +------+------+------+------+------+------+-------------+
* C0 | LDVRETRY |:XCMD |:XFLAG| LDVXCNT |
* +---------------------------+------+------+-------------+
* C8 | LDV_CCW1 |
* +-------------------------------------------------------+
* D0 | LDV_CCW2 |
* +-------------------------------------------------------+
* D8 | LDV_CCW3 |
* +-------------------------------------------------------+
* E0 | |
* = LDVACOLS =
* | +-------------+---------------------------+
* 110 | | LDVMFL | LDVCTSI |
* +-------------+-------------+---------------------------+
* 118 | LDVRXMSG |
* +-------------------------------------------------------+
* 120 | LDVRXBYT |
* +-------------------------------------------------------+
* 128 | LDVTXMSG |
* +-------------------------------------------------------+
* 130 | LDVTXBYT |
* +------+------+-----------------------------------------+
* 138 |LDVOP |LDVDET|/////////////////////////////////////////|
* +------+------+-----------------------------------------+
* 140 | LDV_DDBUF1 |
* +-------------------------------------------------------+
* 148 | LDV_DDBUF2 |
* +-------------------------------------------------------+
* 150 | LDV_DDBUF3 |
* +-------------------------------------------------------+
* 158 | LDVDFTOD |
* +-------------------------------------------------------+
* 160 | LDVCNTOD |
* +-------------+-------------+-------------+-------------+
* 168 | LDVTXSEQ | LDVRXSEQ | LDVBUFLN |/////////////|
* +-------------+-------------+-------------+/////////////|
* |///////////////////////////////////////////////////////|
* +-------------------------------------------------------+
* 178 | LDVCT_WRCOLL |
* +-------------------------------------------------------+
* 180 | LDVCT_TXLWK |
* +-------------------------------------------------------+
* 188 | LDVCT_RXLWK |
* +-------------------------------------------------------+
* 190 |///////////////////////////////////////////////////////|
* |///////////////////////////////////////////////////////|
* +-------------------------------------------------------+
*
*** LDVBK - ISFC Link Device Extension
LDVBK Cross Reference
Symbol Dspl Value -------------- ---- ----- LDV_BADLEN 0085 00000004 LDV_BADTYPE 0085 00000005 LDV_CCW1 00C8 LDV_CCW2 00D0 LDV_CCW3 00D8 LDV_DDBUF 0140 LDV_DDBUF1 0140 LDV_DDBUF2 0148 LDV_DDBUF3 0150 LDV_DRIVER 0085 00000008 LDV_DUPLICATE 0085 00000009 LDV_EOFSEQ 0085 00000003 LDV_FATAL 0085 0000000B LDV_IOMISC 0085 0000000A LDV_NONE 0085 00000000 LDV_NOTREADY 0085 00000001 LDV_READSEQ 0085 00000002 LDV_RSNDEACT 007D 00000002 LDV_RSNDRIVER 007D 00000005 LDV_RSNDUPID 007D 00000004 LDV_RSNLINK 007D 00000006 LDV_RSNMIH 007D 00000003 LDV_RSNRESET 007D 00000001 LDV_STOPPED 0085 00000007 LDV_TIMEOUT 0085 00000006 LDVACOLS 00E0 LDVATTPD 00B9 20 LDVBK$ 01A0 LDVBPDS 0094 LDVBPNT 001C LDVBUFCT 0078 LDVBUFLN 016C LDVCFLG 00B8 LDVCNTOD 0160 LDVCONN 0084 LDVCPA 00A0 LDVCSCH 0081 80 LDVCT_RXLWK 0188 LDVCT_TXLWK 0180 LDVCT_WRCOLL 0178 LDVCTLMD 0083 00000005 LDVCTSI 0114 LDVDEPD 00B9 10 LDVDET 0139 LDVDET_KEEP 0139 00000000 LDVDET_REMOVE 0139 000000FF LDVDEVID 0000 LDVDEVNO 0004 LDVDFNOD 0020 LDVDFTOD 0158 LDVDISC 0083 00000000 LDVDRVID 0084 40 LDVDVBUF 0080 20 LDVDVDET 0080 40 LDVDVDSC 0080 10 LDVDVFLG 0080 LDVDVINI 0080 80 LDVERROR 0085 LDVEXTBK 0014 LDVFPDS 0090 LDVFPNT 0018 LDVIDLE 0083 00000003 LDVINIMD 0083 00000001 LDVINTPD 00B9 40 LDVINUSE 007C LDVIOPND 00B9 LDVIORBK 00A4 LDVIOSTS 00BA LDVIOTOD 00A8 LDVLEVEL 0086 LDVLINIT 0084 20 LDVLINK 0083 00000002 LDVLKTRC 00B0 LDVLKWRD 0030 LDVLNKBK 0008 LDVMFC 0150 00000003 LDVMFL 0112 LDVMIALT 0087 00000002 LDVMIBYP 0087 00000001 LDVMIENB 0087 00000003 LDVMIH 0087 LDVMIOFF 0087 00000000 LDVMIRAT 0087 00000006 LDVMODE 0083 LDVOCTL 009C LDVOP 0138 LDVOP_NORMAL 0138 00000000 LDVOP_SUSPEND 0138 000000FF LDVPREP 0081 40 LDVRDEV 0010 LDVRDXID 0081 10 LDVREADY 0084 80 LDVREASON 007D LDVRETRY 00C0 LDVRFCTR 007A LDVRINIT 0084 10 LDVRMCAP 0050 LDVRMCMD 00BB LDVRMDEV 0060 LDVRMDID 007E LDVRMMFL 0064 LDVRMNOD 0058 LDVRMUID 0066 LDVRMVER 0048 LDVRSCPA 00BC LDVRSTOP 0084 08 LDVRXBYT 0120 LDVRXMSG 0118 LDVRXSEQ 016A LDVRXWRK 008C LDVSETUP 0081 LDVSIOPD 00B9 80 LDVSIZE 01A0 00000034 LDVSTAT 0082 LDVTRMMD 0083 00000006 LDVTXBYT 0130 LDVTXMSG 0128 LDVTXSEQ 0168 LDVTXWRK 0088 LDVTYPE 000C LDVUPARM 0098 LDVUSER 0028 LDVWRXID 0081 20 LDVXCCW0 00C4 LDVXCMD 00C4 LDVXCNT 00C6 LDVXFLAG 00C5 LDVXFRMD 0083 00000004 LDVXRTRY 00B8 80 LNKATTN 0082 00000006 LNKBUSY 0082 00000002 LNKDEACT 0082 00000008 LNKDVCTL 0082 00000000 LNKFATAL 0082 00000007 LNKIDLE 0082 00000001 LNKINIT 0082 00000000 LNKLVL00 0086 00000000 LNKLVL01 0086 00000001 LNKLVL02 0086 00000002 LNKREAD 0082 00000004 LNKRESET 0082 00000005 LNKWRITE 0082 00000003
Copyright IBM Corporation, 1990, 2011