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
     COPYRIGHT -
                  THIS MODULE IS "RESTRICTED MATERIALS OF IBM"
                  5739-A03 (C) COPYRIGHT IBM CORP. - 1983, 2002
                  LICENSED MATERIALS - PROPERTY OF IBM
     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
           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 - 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
              .... 1...      CACNETA        X'08' - This side is accounting.
    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 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' - 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
    0039   57 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
    003A   58 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
    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' 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
    003F   63 Bitstring    1 CACXSNS1       Sense Byte 1 indicators
              1... ....      CACRJRES       X'80' 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
    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
    CACESCTL       000B 80
    CACEXCCW       0039 80
    CACEXDTR       000D 40
    CACEXRCD       000B 10
    CACEXTND       000C 40
    CACEXTOP       000C 80
    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 V4R3.0. Last updated on 30 Apr 2002 at 15:42:22 EDT.
Copyright IBM Corporation, 1990, 2002