Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

CACBK

Prolog  

Control Block Contents  
   CACBK DSECT

Storage Layout  

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.
 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
                  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
                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)
                  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)

 

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 - CTCA (Basic Mode Only)
          00000002       CAC3088        2 - 3088 (Basic/Extended)
          00000003       CACESCON       3 - ESCON Adapter
000B   11 Bitstring    1 CACXCAPS       Adapter Capabilities
          1... ....      CACESCTL       X'80' - ESCON Controller
                                        capability (0) means this is the
                                        "CNC" (1) means this is the "CTC"
          .1.. ....      CACRSEVT       X'40' - Support for 'Resetting
                                        Event'
          ..1. ....      CACSIDXT       X'20' - Sense ID Extended Data
          ...1 ....      CACEXRCD       X'10' - Read Configuration Data
000C   12 Bitstring    1 CACXLTCH       Adapter Architecture Latches
          1... ....      CACEXTOP       X'80' - Operating in Extended
                                        Mode
          .1.. ....      CACEXTND       X'40' - Extended Mode indicator
                                        (X)
          ..1. ....      CACNTRDY       X'20' - NOTREADY indicator (X)
          ...1 ....      CACEOFLE       X'10' - End of File indicator (X)
          .... 1...      CACFIRST       X'08' - First/Only CCW in the
                                        program
          .... .1..      CACRESET       X'04' - Resetting-Event flag (X)
000D   13 Bitstring    1 CACXFLAG       Adapter Simulation Flags
          1... ....      CACEODTR       X'80' - End of Data Transfer
          .1.. ....      CACEXDTR       X'40' - Fatal Data Transfer error
000E   14 Bitstring    1 CACXAFLG       Adapter Flag
          1... ....      CACADTCH       X'80' - This side is DETACHed
          .1.. ....      CACADISC       X'40' - This side is disconnected
          ..1. ....      CACSUSPD       X'20' - Adapter Suspended
          ...1 ....      CACSCHED       X'10' - Adapter Scheduled
000F   15 Bitstring    1 CACXRFLG       Reset Flag
          1... ....      CACSYSRS       X'80' - System Reset in progress
          .1.. ....      CACSELRS       X'40' - Selective Reset in
                                        progress
          ..1. ....      CACIFDRS       X'20' - Interface Disconnect
                                        Reset
          ...1 ....      CACCPLRS       X'10' - 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 CACXLOCK       Address of Adapter LKWRD
0020   32 Address      4 CACXRCPX       CPEBK for suspended execution
0024   36 Address      4 CACXAIOR       Active IORBK
     Current Operation.
0028   40 Signed       4 CACXACTR       Pending Activity Counter
002C   44 Bitstring    2 *              Reserved (expansion of CACXDLEN)
002E   46 Signed       2 CACXDLEN       Current Data Transfer length
0030   48 Bitstring    1 CACXCMD        Current CCW command code
0031   49 Bitstring    1 CACXPSTD       Posted Device Status
0032   50 Bitstring    1 CACXSTAT       Pending Device Status
0033   51 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.
0034   52 Bitstring    1 CACXPEND       Dependent command pending
          1... ....      CACWRTPD       X'80' - WRITE pending
          .1.. ....      CACRDXPD       X'40' - READ pending
          ..1. ....      CACCTLPD       X'20' - CONTROL pending
          ...1 ....      CACPRPPD       X'10' - PREPARE pending
          1111 ....      CACANYPD       CACWRTPD+CACRDXPD+CACCTLPD+CACPRP
                                        PD Any pending
0035   53 Bitstring    1 CACXACTV       Active Functions
          1... ....      CACEXCCW       X'80' - Latest executed CCW
          .1.. ....      CACCMDAC       X'40' - Command active
          ..1. ....      CACWRTAC       X'20' - WRITE active
          ...1 ....      CACRDXAC       X'10' - READ active
          .... 1...      CACICCCW       X'08' - Chaining to next CCW
0036   54 Bitstring    1 CACXCNTL       Device Control flags
          1... ....      CACHALTD       X'80' - Halted by Reset
          .1.. ....      CACCANPD       X'40' - Cancel Pending
          ..1. ....      CACWTCCW       X'20' - Waiting for partner's CCW
          ...1 ....      CACUIPND       X'10' - Unsolicited Interrupt
                                        Pending
          .... 1...      CACNEWUC       X'08' - New Unit Check set
0037   55 Bitstring    1 CACXUINT       Unsolicited Interrupt flags
     Adapter Status flags.
0038   56 Bitstring    1 CACXPCMD       Previous CCW Command Code
0039   57 Bitstring    1 CACXPSTS       Previous Unit Status
003A   58 Bitstring    1 CACXSNS0       Sense Byte 0 indicators
          1... ....      CACCMREJ       X'80' 0 = Command Reject (X)
          .1.. ....      CACINTRQ       X'40' 1 = Intervention Required
                                        (Y)
          ..1. ....      CACBUFDC       X'20' 2 = Buffer Data Check (X/Y)
          ...1 ....      CACEQCHK       X'10' 3 = Equipment Check (X/Y)
          .... .1..      CACSEQCK       X'04' 5 = Control Sequence Check
                                        (X/Y)
          .... ...1      CACIFDSC       X'01' 7 = Interface Disconnect
                                        (Y)
          1.11 .1..      CACANYCK       CACCMREJ+CACBUFDC+CACEQCHK+CACSEQ
                                        CK CCW/Eq chks
003B   59 Bitstring    1 CACXSNS1       Sense Byte 1 indicators
          1... ....      CACRJRES       X'80' 0 = Rejected by Reset (X)
003C   60 Bitstring    4 *              Reserved
     Internal Data Buffer (Includes space for SENSEID data).
0040   64 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
0048   72 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.
0060   96 Dbl-Word     8 CACYAREA (0)
0060   96 Dbl-Word     8 CACYSIDE (0)
0060   96 Character    8 CACYUSER       Owner's VM Userid
0068  104 Bitstring    2 CACYADDR       Device Address (binary)
006A  106 Bitstring    1 CACYTYPE       Adapter Type
006B  107 Bitstring    1 CACYCAPS       Adapter Capabilities
006C  108 Bitstring    1 CACYLTCH       Adapter Architecture Latches
006D  109 Bitstring    1 CACYFLAG       Adapter Simulation Flags
006E  110 Bitstring    1 CACYAFLG       Adapter Flag
006F  111 Bitstring    1 CACYRFLG       Reset Flag
0070  112 Address      4 CACYVDEV       VDEVBK pointer
0074  116 Address      4 CACYLINK       Partner CACBK
0078  120 Address      4 CACYBUFF       Data Buffer address
007C  124 Address      4 CACYLOCK       Address of Adapter LKWRD
0080  128 Address      4 CACYRCPX       CPEBK for suspended execution
0084  132 Address      4 CACYAIOR       Active IORBK
0088  136 Signed       4 CACYACTR       Pending Activity Counter
008C  140 Bitstring    2 *              Reserved (expansion of CACYDLEN)
008E  142 Signed       2 CACYDLEN       Current Data Transfer length
0090  144 Bitstring    1 CACYCMD        Current CCW command code
0091  145 Bitstring    1 CACYPSTD       Posted Device Status
0092  146 Bitstring    1 CACYSTAT       Pending Device Status
0093  147 Bitstring    1 *              Reserved
0094  148 Bitstring    1 CACYPEND       Dependent command pending
0095  149 Bitstring    1 CACYACTV       Active Functions
0096  150 Bitstring    1 CACYCNTL       Device Control flags
0097  151 Bitstring    1 CACYUINT       Unsolicited Interrupt flags
0098  152 Bitstring    1 CACYPCMD       Previous CCW Command Code
0099  153 Bitstring    1 CACYPSTS       Previous Unit Status
009A  154 Bitstring    1 CACYSNS0       Sense Byte 0 Latches
009B  155 Bitstring    1 CACYSNS1       Sense Byte 1 Latches
009C  156 Bitstring    4 *              Reserved
00A0  160 Bitstring    8 CACYDATA       Local Data buffer The value of
                                        the LKWRDSIZ variable for
                                        BLOCKMAP is 3
00A8  168 Dbl-Word     8 CACYLKWD (3)   LKWRD for this adapter
          00000018       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          |         CACXLOCK          |
*     +---------------------------+---------------------------+
*  20 |         CACXRCPX          |         CACXAIOR          |
*     +---------------------------+-------------+-------------+
*  28 |         CACXACTR          |/////////////|  CACXDLEN   |
*     +------+------+------+------+------+------+------+------+
*  30 |:XCMD |:XPSTD|:XSTAT|//////|:XPEND|:XACTV|:XCNTL|:XUINT|
*     +------+------+------+------+------+------+------+------+
*  38 |:XPCMD|:XPSTS|:XSNS0|:XSNS1|///////////////////////////|
*     +------+------+------+------+---------------------------+
*  40 |                       CACXDATA                        |
*     +-------------------------------------------------------+
*  48 |                                                       |
*     =                       CACXLKWD                        =
*     |                                                       |
*     +-------------------------------------------------------+
*  60 |                       CACYUSER                        |
*     +-------------+------+------+------+------+------+------+
*  68 |  CACYADDR   |:YTYPE|:YCAPS|:YLTCH|:YFLAG|:YAFLG|:YRFLG|
*     +-------------+------+------+------+------+------+------+
*  70 |         CACYVDEV          |         CACYLINK          |
*     +---------------------------+---------------------------+
*  78 |         CACYBUFF          |         CACYLOCK          |
*     +---------------------------+---------------------------+
*  80 |         CACYRCPX          |         CACYAIOR          |
*     +---------------------------+-------------+-------------+
*  88 |         CACYACTR          |/////////////|  CACYDLEN   |
*     +------+------+------+------+------+------+------+------+
*  90 |:YCMD |:YPSTD|:YSTAT|//////|:YPEND|:YACTV|:YCNTL|:YUINT|
*     +------+------+------+------+------+------+------+------+
*  98 |:YPCMD|:YPSTS|:YSNS0|:YSNS1|///////////////////////////|
*     +------+------+------+------+---------------------------+
*  A0 |                       CACYDATA                        |
*     +-------------------------------------------------------+
*  A8 |                                                       |
*     =                       CACYLKWD                        =
*     |                                                       |
*     +-------------------------------------------------------+
*  C0
*
*** CACBK - Virtual CTC Adapter Control Block

 

CACBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
CACADISC       000E 40
CACADTCH       000E 80
CACANYCK       003A B4
CACANYPD       0034 F0
CACBUFDC       003A 20
CACBUFLN       00A8 00001000
CACCANPD       0036 40
CACCMDAC       0035 40
CACCMREJ       003A 80
CACCPLRS       000F 10
CACCTCA        000A 00000001
CACCTLPD       0034 20
CACEODTR       000D 80
CACEOFLE       000C 10
CACEQCHK       003A 10
CACESCON       000A 00000003
CACESCTL       000B 80
CACEXCCW       0035 80
CACEXDTR       000D 40
CACEXRCD       000B 10
CACEXTND       000C 40
CACEXTOP       000C 80
CACFIRST       000C 08
CACHALTD       0036 80
CACICCCW       0035 08
CACIFDRS       000F 20
CACIFDSC       003A 01
CACINTRQ       003A 40
CACNEWUC       0036 08
CACNTRDY       000C 20
CACPRPPD       0034 10
CACRDXAC       0035 10
CACRDXPD       0034 40
CACRESET       000C 04
CACRJRES       003B 80
CACRSEVT       000B 40
CACSCHED       000E 10
CACSELRS       000F 40
CACSEQCK       003A 04
CACSIDXT       000B 20
CACSIZE        00A8 00000018
CACSUSPD       000E 20
CACSYSRS       000F 80
CACUIPND       0036 10
CACWRTAC       0035 20
CACWRTPD       0034 80
CACWTCCW       0036 20
CACXACTR       0028
CACXACTV       0035
CACXADDR       0008
CACXAFLG       000E
CACXAIOR       0024
CACXAREA       0000
CACXBUFF       0018
CACXCAPS       000B
CACXCMD        0030
CACXCNTL       0036
CACXDATA       0040
CACXDLEN       002E
CACXFLAG       000D
CACXLINK       0014
CACXLKWD       0048
CACXLOCK       001C
CACXLTCH       000C
CACXPCMD       0038
CACXPEND       0034
CACXPSTD       0031
CACXPSTS       0039
CACXRCPX       0020
CACXRFLG       000F
CACXSIDE       0000
CACXSNS0       003A
CACXSNS1       003B
CACXSTAT       0032
CACXTYPE       000A
CACXUINT       0037
CACXUSER       0000
CACXVDEV       0010
CACYACTR       0088
CACYACTV       0095
CACYADDR       0068
CACYAFLG       006E
CACYAIOR       0084
CACYAREA       0060
CACYBUFF       0078
CACYCAPS       006B
CACYCMD        0090
CACYCNTL       0096
CACYDATA       00A0
CACYDLEN       008E
CACYFLAG       006D
CACYLINK       0074
CACYLKWD       00A8
CACYLOCK       007C
CACYLTCH       006C
CACYPCMD       0098
CACYPEND       0094
CACYPSTD       0091
CACYPSTS       0099
CACYRCPX       0080
CACYRFLG       006F
CACYSIDE       0060
CACYSNS0       009A
CACYSNS1       009B
CACYSTAT       0092
CACYTYPE       006A
CACYUINT       0097
CACYUSER       0060
CACYVDEV       0070
CAC3088        000A 00000002

This information is based on z/VM V4R2.0. Last updated on 30 Oct 2001 at 13:30:12 EDT.
Copyright IBM Corporation, 1990, 2001