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
       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
          00000004       CACFICON       4 - FICON Adapter
000B   11 Bitstring    1 CACXCAPS       Adapter Capabilities
          1... ....      CACESFIC       X'80' - 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' - 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
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 V5R1.0. Last updated on 8 Sep 2004 at 13:03:37 EDT.
Copyright IBM Corporation, 1990, 2004