CACBK Back to Index page
 
Prolog 
Control Block Contents 
   CACBK DSECT
Storage Layout 
Cross Reference (Contains links to field and bit definitions)
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.


  CACBK Prolog Top of page
 
 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 Top of page
 

 CACBK DSECT Top of page
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 Top of page
 
          
*** 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 Top of page
 
 
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
 
This information is based on z/VM 7.3.0 Last updated on 22 Jun 2022 at 15:47:43 EDT.
Copyright IBM Corporation, 1990, 2022