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