Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
CACBK
Control Block Contents
CACBK DSECT
Cross Reference (Contains links to field and bit definitions)
CACBK Prolog
NAME : HCPCACBK DESCRIPTION: Virtual CTC Adapter Control Block DSECT : CACBK FUNCTION : This block is used to maintain status information for a virtual CTCA device. The CACBK is a logical extension of the VDEVBK for a Virtual CTCA device. The information in the CACBK is needed for Virtual CTCA simulation. The VDEVBK for a dedicated (real) CTCA device DOES NOT have a CACBK extension. LOCATED BY : VDEVCTCA (pointer) If VDEVCLAS+VDEVTYPE indicate a Virtual CTCA device, and VDEVDED=0 then it points to CACBK. CACXLINK (pointer) the partner (Y-SIDE) CACBK. CACYLINK (pointer) the partner (X-SIDE) CACBK. CREATED BY : Operation of the 'DEFINE' command. DELETED BY : Operation of the 'DETACH' command. SERIALIZED : Modifications to most CACBK fields are serialized by the Adapter Lock (addressed by CACXLOCK). If the adapter is coupled, CACXLOCK points to a LKWRD in shared storage. If the adapter is NOT coupled, CACXLOCK will point to a LKWRD defined within the CACBK. Modifications to the CACBK configuration can only be performed while holding the Global CTC Lock (HCPIOLCT). CACBK configuration changes are initiated by DEFINE, COUPLE, and DETACH commands. CACBK fields that must be protected by the Global CTC Lock include CACXLINK and CACXLOCK. The locking heirarchy for the CACBK is: - VDEV Lock - Global CTC Lock (only needed for configuration) - Adapter Lock Most operations can be performed holding only the Adapter Lock. However, if multiple locks are required, they must be obtained in this order. RELOCATION CONSIDERATIONS : None NOTES : The CACBK is mapped by two symmetrical structures (CACXSIDE and CACYSIDE). CACXSIDE represents the "current" or "local" CACBK, while CACYSIDE represents the "partner" or "other" CACBK. The symmetry of these two structures MUST be maintained because any given CACBK can be referenced using EITHER structure. UNCOUPLED Adapter Linkage - Owner VDEV: VDEVCTCA = A(CACBK(X)) for the primary CACBK VDEVINTV = 1 (Intervention Required) CACBK(X) at CACXSIDE using CACXSIDE: CACADISC = 0 (This side is NOT disconnected) CACXVDEV = A(VDEV) for owner CACXLINK = A(CACYSIDE) (Using the Y-SIDE definition) CACXLOCK = A(CACXLKWD) (Using the internal LKWRD) CACXBUFF = 0 CACXPPA = 0 CACBK(X) at CACYSIDE using CACYSIDE: CACADISC = 1 (This side IS disconnected) CACYVDEV = 0 (No device) CACYLINK = A(CACXSIDE) for the primary CACBK CACYLOCK = A(CACXLKWD) (Using the internal LKWRD) CACYBUFF = 0 CACYPPA = 0 COUPLED Adapter Linkage - X-SIDE VDEV: VDEVCTCA = A(CACBK(X)) VDEVINTV = 0 (coupled) CACBK(X) at CACXSIDE using CACXSIDE: CACADISC = 0 (This side is NOT disconnected) CACXVDEV = A(VDEV) for X-SIDE device CACXLINK = A(CACBK(Y)) for the partner CACBK CACXLOCK = A(LKWRD) (shared) CACXBUFF = A(CABFR) (shared) CACXPPA = A(PPABK) (shared) Y-SIDE VDEV: VDEVCTCA = A(CACBK(Y)) VDEVINTV = 0 (coupled) CACBK(Y) at CACXSIDE using CACYSIDE: CACADISC = 0 (This side is NOT disconnected) CACYVDEV = A(VDEV) for Y-SIDE device CACYLINK = A(CACXSIDE) for the partner CACBK CACYLOCK = A(LKWRD) (shared) CACYBUFF = A(CABFR) (shared) CACYPPA = A(PPABK) (shared)
CACBK Control Block Content
CACBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure CACBK Virtual CTC Adapter Control Block X-SIDE Definition. This substructure maintains information for one side of the Channel-to-Channel adapter. When this adapter is coupled to another primary adapter, the "other" user refers to this storage as the Y-SIDE. 0000 0 Dbl-Word 8 CACXAREA (0) 0000 0 Dbl-Word 8 CACXSIDE (0) Adapter Identification and Mode. 0000 0 Character 8 CACXUSER Owner's VM Userid 0008 8 Bitstring 2 CACXADDR Device Address (binary) 000A 10 Bitstring 1 CACXTYPE Adapter Type 00000001 CACCTCA 1 CACCTCA - CTCA (Basic Mode Only) 00000002 CAC3088 2 CAC3088 - 3088 (Basic/Extended) 00000003 CACESCON 3 CACESCON - ESCON Adapter 00000004 CACFICON 4 CACFICON - FICON Adapter 000B 11 Bitstring 1 CACXCAPS Adapter Capabilities 1... .... CACESFIC X'80' CACESFIC - ESCON/FICON Controller ESCON (0) means this is the "CNC" (1) means this is the "CTC" FICON (0) no CU function this side (1) CU function on this side .1.. .... CACRSEVT X'40' CACRSEVT - Support for 'Resetting Event' ..1. .... CACSIDXT X'20' CACSIDXT - Sense ID Extended Data ...1 .... CACEXRCD X'10' CACEXRCD - Read Configuration Data 000C 12 Bitstring 1 CACXLTCH Adapter Architecture Latches 1... .... CACEXTOP X'80' CACEXTOP - Operating in Extended Mode .1.. .... CACEXTND X'40' CACEXTND - Extended Mode indicator (X) ..1. .... CACNTRDY X'20' CACNTRDY - NOTREADY indicator (X) ...1 .... CACEOFLE X'10' CACEOFLE - End of File indicator (X) .... 1... CACFIRST X'08' CACFIRST - First/Only CCW in the program .... .1.. CACRESET X'04' CACRESET - Resetting-Event flag (X) 000D 13 Bitstring 1 CACXFLAG Adapter Simulation Flags 1... .... CACEODTR X'80' CACEODTR - End of Data Transfer .1.. .... CACEXDTR X'40' CACEXDTR - Fatal Data Transfer error 000E 14 Bitstring 1 CACXAFLG Adapter Flag 1... .... CACADTCH X'80' CACADTCH - This side is DETACHed .1.. .... CACADISC X'40' CACADISC - This side is disconnected ..1. .... CACSUSPD X'20' CACSUSPD - Adapter Suspended ...1 .... CACSCHED X'10' CACSCHED - Adapter Scheduled .... 1... CACNETA X'08' CACNETA - This side is accounting. 000F 15 Bitstring 1 CACXRFLG Reset Flag 1... .... CACSYSRS X'80' CACSYSRS - System Reset in progress .1.. .... CACSELRS X'40' CACSELRS - Selective Reset in progress ..1. .... CACIFDRS X'20' CACIFDRS - Interface Disconnect Reset ...1 .... CACCPLRS X'10' CACCPLRS - COUPLE Reset Adapter Linkage. 0010 16 Address 4 CACXVDEV VDEVBK pointer 0014 20 Address 4 CACXLINK Partner CACBK 0018 24 Address 4 CACXBUFF Data Buffer address 001C 28 Address 4 CACXPPA Accounting Block. 0020 32 Address 4 CACXLOCK Address of Adapter LKWRD 0024 36 Address 4 CACXRCPX CPEBK for suspended execution 0028 40 Address 4 CACXAIOR Active IORBK Current Operation. 002C 44 Signed 4 CACXACTR Pending Activity Counter 0030 48 Bitstring 2 * Reserved (expansion of CACXDLEN) 0032 50 Signed 2 CACXDLEN Current Data Transfer length 0034 52 Bitstring 1 CACXCMD Current CCW command code 0035 53 Bitstring 1 CACXPSTD Posted Device Status 0036 54 Bitstring 1 CACXSTAT Pending Device Status 0037 55 Bitstring 1 * Reserved Adapter Trace Information. Notes : These four flags (PEND, ACTV, CNTL, and UINT) are included in several trace table entries. They are maintained together for efficiency. 0038 56 Bitstring 1 CACXPEND Dependent command pending 1... .... CACWRTPD X'80' CACWRTPD - WRITE pending .1.. .... CACRDXPD X'40' CACRDXPD - READ pending ..1. .... CACCTLPD X'20' CACCTLPD - CONTROL pending ...1 .... CACPRPPD X'10' CACPRPPD - PREPARE pending 1111 .... CACANYPD CACWRTPD+CACRDXPD+CACCTLPD+CACPRP PD CACANYPD Any pending 0039 57 Bitstring 1 CACXACTV Active Functions 1... .... CACEXCCW X'80' CACEXCCW - Latest executed CCW .1.. .... CACCMDAC X'40' CACCMDAC - Command active ..1. .... CACWRTAC X'20' CACWRTAC - WRITE active ...1 .... CACRDXAC X'10' CACRDXAC - READ active .... 1... CACICCCW X'08' CACICCCW - Chaining to next CCW 003A 58 Bitstring 1 CACXCNTL Device Control flags 1... .... CACHALTD X'80' CACHALTD - Halted by Reset .1.. .... CACCANPD X'40' CACCANPD - Cancel Pending ..1. .... CACWTCCW X'20' CACWTCCW - Waiting for partner's CCW ...1 .... CACUIPND X'10' CACUIPND - Unsolicited Interrupt Pending .... 1... CACNEWUC X'08' CACNEWUC - New Unit Check set .... .1.. CACBRKCC X'04' CACBRKCC - Break out of command chain 003B 59 Bitstring 1 CACXUINT Unsolicited Interrupt flags Adapter Status flags. 003C 60 Bitstring 1 CACXPCMD Previous CCW Command Code 003D 61 Bitstring 1 CACXPSTS Previous Unit Status 003E 62 Bitstring 1 CACXSNS0 Sense Byte 0 indicators 1... .... CACCMREJ X'80' CACCMREJ 0 = Command Reject (X) .1.. .... CACINTRQ X'40' CACINTRQ 1 = Intervention Required (Y) ..1. .... CACBUFDC X'20' CACBUFDC 2 = Buffer Data Check (X/Y) ...1 .... CACEQCHK X'10' CACEQCHK 3 = Equipment Check (X/Y) .... .1.. CACSEQCK X'04' CACSEQCK 5 = Control Sequence Check (X/Y) .... ...1 CACIFDSC X'01' CACIFDSC 7 = Interface Disconnect (Y) 1.11 .1.. CACANYCK CACCMREJ+CACBUFDC+CACEQCHK+CACSEQ CK CACANYCK CCW/Eq chks 003F 63 Bitstring 1 CACXSNS1 Sense Byte 1 indicators 1... .... CACRJRES X'80' CACRJRES 0 = Rejected by Reset (X) 0040 64 Bitstring 4 * Reserved Internal Data Buffer (Includes space for SENSEID data). 0044 68 Bitstring 8 CACXDATA Local Data buffer Adapter Lock (LKWRD). Notes : LKWRDSIZ is defined in HCPLKWRD COPY. The value of the LKWRDSIZ variable for BLOCKMAP is 3 0050 80 Dbl-Word 8 CACXLKWD (3) LKWRD for this adapter Y-SIDE Definition. This substructure map provides a convenient way to reference the "other" user's primary CACBK. This section of the CACBK is only referenced (as the "null" Y-SIDE) when the adapter is uncoupled. Every CACX* field in the CACXSIDE area must have a corresponding CACY* field in the CACYSIDE area to maintain the CACBK. 0068 104 Dbl-Word 8 CACYAREA (0) 0068 104 Dbl-Word 8 CACYSIDE (0) 0068 104 Character 8 CACYUSER Owner's VM Userid 0070 112 Bitstring 2 CACYADDR Device Address (binary) 0072 114 Bitstring 1 CACYTYPE Adapter Type 0073 115 Bitstring 1 CACYCAPS Adapter Capabilities 0074 116 Bitstring 1 CACYLTCH Adapter Architecture Latches 0075 117 Bitstring 1 CACYFLAG Adapter Simulation Flags 0076 118 Bitstring 1 CACYAFLG Adapter Flag 0077 119 Bitstring 1 CACYRFLG Reset Flag 0078 120 Address 4 CACYVDEV VDEVBK pointer 007C 124 Address 4 CACYLINK Partner CACBK 0080 128 Address 4 CACYBUFF Data Buffer address 0084 132 Address 4 CACYPPA Accounting Block. 0088 136 Address 4 CACYLOCK Address of Adapter LKWRD 008C 140 Address 4 CACYRCPX CPEBK for suspended execution 0090 144 Address 4 CACYAIOR Active IORBK 0094 148 Signed 4 CACYACTR Pending Activity Counter 0098 152 Bitstring 2 * Reserved (expansion of CACYDLEN) 009A 154 Signed 2 CACYDLEN Current Data Transfer length 009C 156 Bitstring 1 CACYCMD Current CCW command code 009D 157 Bitstring 1 CACYPSTD Posted Device Status 009E 158 Bitstring 1 CACYSTAT Pending Device Status 009F 159 Bitstring 1 * Reserved 00A0 160 Bitstring 1 CACYPEND Dependent command pending 00A1 161 Bitstring 1 CACYACTV Active Functions 00A2 162 Bitstring 1 CACYCNTL Device Control flags 00A3 163 Bitstring 1 CACYUINT Unsolicited Interrupt flags 00A4 164 Bitstring 1 CACYPCMD Previous CCW Command Code 00A5 165 Bitstring 1 CACYPSTS Previous Unit Status 00A6 166 Bitstring 1 CACYSNS0 Sense Byte 0 Latches 00A7 167 Bitstring 1 CACYSNS1 Sense Byte 1 Latches 00A8 168 Bitstring 4 * Reserved 00AC 172 Bitstring 8 CACYDATA Local Data buffer The value of the LKWRDSIZ variable for BLOCKMAP is 3 00B8 184 Dbl-Word 8 CACYLKWD (3) LKWRD for this adapter 0000001A CACSIZE (*-CACBK+7)/8 Length in doublewords Length of the Shared Data Buffer: CACXBUFF and CACYBUFF point to the shared Data Buffer. This buffer holds data as it is moved from one VM to another (so we do not have to serialize guest storage between two VM guests at the same time). 00001000 CACBUFLN 4096 Shared Data Buffer length (in bytes).
CACBK Storage Layout
*** CACBK - Virtual CTC Adapter Control Block * * +-------------------------------------------------------+ * 0 | CACXUSER | * +-------------+------+------+------+------+------+------+ * 8 | CACXADDR |:XTYPE|:XCAPS|:XLTCH|:XFLAG|:XAFLG|:XRFLG| * +-------------+------+------+------+------+------+------+ * 10 | CACXVDEV | CACXLINK | * +---------------------------+---------------------------+ * 18 | CACXBUFF | CACXPPA | * +---------------------------+---------------------------+ * 20 | CACXLOCK | CACXRCPX | * +---------------------------+---------------------------+ * 28 | CACXAIOR | CACXACTR | * +-------------+-------------+------+------+------+------+ * 30 |/////////////| CACXDLEN |:XCMD |:XPSTD|:XSTAT|//////| * +------+------+------+------+------+------+------+------+ * 38 |:XPEND|:XACTV|:XCNTL|:XUINT|:XPCMD|:XPSTS|:XSNS0|:XSNS1| * +------+------+------+------+------+------+------+------+ * 40 |///////////////////////////| CACXDATA- | * +---------------------------+---------------------------+ * 48 | -(044) |///////////////////////////| * +---------------------------+---------------------------+ * 50 | | * = CACXLKWD = * | | * +-------------------------------------------------------+ * 68 | CACYUSER | * +-------------+------+------+------+------+------+------+ * 70 | CACYADDR |:YTYPE|:YCAPS|:YLTCH|:YFLAG|:YAFLG|:YRFLG| * +-------------+------+------+------+------+------+------+ * 78 | CACYVDEV | CACYLINK | * +---------------------------+---------------------------+ * 80 | CACYBUFF | CACYPPA | * +---------------------------+---------------------------+ * 88 | CACYLOCK | CACYRCPX | * +---------------------------+---------------------------+ * 90 | CACYAIOR | CACYACTR | * +-------------+-------------+------+------+------+------+ * 98 |/////////////| CACYDLEN |:YCMD |:YPSTD|:YSTAT|//////| * +------+------+------+------+------+------+------+------+ * A0 |:YPEND|:YACTV|:YCNTL|:YUINT|:YPCMD|:YPSTS|:YSNS0|:YSNS1| * +------+------+------+------+------+------+------+------+ * A8 |///////////////////////////| CACYDATA- | * +---------------------------+---------------------------+ * B0 | -(0AC) |///////////////////////////| * +---------------------------+---------------------------+ * B8 | | * = CACYLKWD = * | | * +-------------------------------------------------------+ * D0 * *** CACBK - Virtual CTC Adapter Control Block
CACBK Cross Reference
Symbol Dspl Value -------------- ---- ----- CACADISC 000E 40 CACADTCH 000E 80 CACANYCK 003E B4 CACANYPD 0038 F0 CACBRKCC 003A 04 CACBUFDC 003E 20 CACBUFLN 00B8 00001000 CACCANPD 003A 40 CACCMDAC 0039 40 CACCMREJ 003E 80 CACCPLRS 000F 10 CACCTCA 000A 00000001 CACCTLPD 0038 20 CACEODTR 000D 80 CACEOFLE 000C 10 CACEQCHK 003E 10 CACESCON 000A 00000003 CACESFIC 000B 80 CACEXCCW 0039 80 CACEXDTR 000D 40 CACEXRCD 000B 10 CACEXTND 000C 40 CACEXTOP 000C 80 CACFICON 000A 00000004 CACFIRST 000C 08 CACHALTD 003A 80 CACICCCW 0039 08 CACIFDRS 000F 20 CACIFDSC 003E 01 CACINTRQ 003E 40 CACNETA 000E 08 CACNEWUC 003A 08 CACNTRDY 000C 20 CACPRPPD 0038 10 CACRDXAC 0039 10 CACRDXPD 0038 40 CACRESET 000C 04 CACRJRES 003F 80 CACRSEVT 000B 40 CACSCHED 000E 10 CACSELRS 000F 40 CACSEQCK 003E 04 CACSIDXT 000B 20 CACSIZE 00B8 0000001A CACSUSPD 000E 20 CACSYSRS 000F 80 CACUIPND 003A 10 CACWRTAC 0039 20 CACWRTPD 0038 80 CACWTCCW 003A 20 CACXACTR 002C CACXACTV 0039 CACXADDR 0008 CACXAFLG 000E CACXAIOR 0028 CACXAREA 0000 CACXBUFF 0018 CACXCAPS 000B CACXCMD 0034 CACXCNTL 003A CACXDATA 0044 CACXDLEN 0032 CACXFLAG 000D CACXLINK 0014 CACXLKWD 0050 CACXLOCK 0020 CACXLTCH 000C CACXPCMD 003C CACXPEND 0038 CACXPPA 001C CACXPSTD 0035 CACXPSTS 003D CACXRCPX 0024 CACXRFLG 000F CACXSIDE 0000 CACXSNS0 003E CACXSNS1 003F CACXSTAT 0036 CACXTYPE 000A CACXUINT 003B CACXUSER 0000 CACXVDEV 0010 CACYACTR 0094 CACYACTV 00A1 CACYADDR 0070 CACYAFLG 0076 CACYAIOR 0090 CACYAREA 0068 CACYBUFF 0080 CACYCAPS 0073 CACYCMD 009C CACYCNTL 00A2 CACYDATA 00AC CACYDLEN 009A CACYFLAG 0075 CACYLINK 007C CACYLKWD 00B8 CACYLOCK 0088 CACYLTCH 0074 CACYPCMD 00A4 CACYPEND 00A0 CACYPPA 0084 CACYPSTD 009D CACYPSTS 00A5 CACYRCPX 008C CACYRFLG 0077 CACYSIDE 0068 CACYSNS0 00A6 CACYSNS1 00A7 CACYSTAT 009E CACYTYPE 0072 CACYUINT 00A3 CACYUSER 0068 CACYVDEV 0078 CAC3088 000A 00000002
Copyright IBM Corporation, 1990, 2011