Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only.

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
 STATUS     : VM/ESA Version 2, Release 1.0
 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 Character 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) 000B 11 Bitstring 1 * Reserved 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 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 CACXSNS0 Sense Byte 0 Latches unused* EQU X'80' 0 = Not used .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) unused* EQU X'08' 4 = Not used .... .1.. CACSEQCK X'04' 5 = Control Sequence Check (X/Y) unused* EQU X'02' 6 = Not used .... ...1 CACIFDSC X'01' 7 = Interface Disconnect (Y) ..11 .1.. CACANYCK CACBUFDC+CACEQCHK+CACSEQCK Data/Equip/Ctl check 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 6 * 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 (LKWRDSIZ) 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 Character 2 CACYADDR Device Address (binary) 006A 106 Bitstring 1 CACYTYPE Adapter Type 006B 107 Bitstring 1 * Reserved 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 CACYSNS0 Sense Byte 0 Latches 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 6 * 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 (LKWRDSIZ) LKWRD for this adapter 00000018 CACSIZE (*-CACBK+7)/8 Length in doublewords

 

CACBK Storage Layout

*** CACBK - Virtual CTC Adapter Control Block
*
*     +-------------------------------------------------------+
*   0 |                       CACXUSER                        |
*     +-------------+------+------+------+------+------+------+
*   8 |  CACXADDR   |:XTYPE|//////|:XLTCH|:XFLAG|:XAFLG|:XRFLG|
*     +-------------+------+------+------+------+------+------+
*  10 |         CACXVDEV          |         CACXLINK          |
*     +---------------------------+---------------------------+
*  18 |         CACXBUFF          |         CACXLOCK          |
*     +---------------------------+---------------------------+
*  20 |         CACXRCPX          |         CACXAIOR          |
*     +---------------------------+-------------+-------------+
*  28 |         CACXACTR          |/////////////|  CACXDLEN   |
*     +------+------+------+------+------+------+------+------+
*  30 |:XCMD |:XPSTD|:XSTAT|:XSNS0|:XPEND|:XACTV|:XCNTL|:XUINT|
*     +------+------+------+------+------+------+------+------+
*  38 |:XPCMD|:XPSTS|/////////////////////////////////////////|
*     +------+------+-----------------------------------------+
*  40 |                       CACXDATA                        |
*     +-------------------------------------------------------+
*  48 |                                                       |
*     =                       CACXLKWD                        =
*     |                                                       |
*     +-------------------------------------------------------+
*  60 |                       CACYUSER                        |
*     +-------------+------+------+------+------+------+------+
*  68 |  CACYADDR   |:YTYPE|//////|:YLTCH|:YFLAG|:YAFLG|:YRFLG|
*     +-------------+------+------+------+------+------+------+
*  70 |         CACYVDEV          |         CACYLINK          |
*     +---------------------------+---------------------------+
*  78 |         CACYBUFF          |         CACYLOCK          |
*     +---------------------------+---------------------------+
*  80 |         CACYRCPX          |         CACYAIOR          |
*     +---------------------------+-------------+-------------+
*  88 |         CACYACTR          |/////////////|  CACYDLEN   |
*     +------+------+------+------+------+------+------+------+
*  90 |:YCMD |:YPSTD|:YSTAT|:YSNS0|:YPEND|:YACTV|:YCNTL|:YUINT|
*     +------+------+------+------+------+------+------+------+
*  98 |:YPCMD|:YPSTS|/////////////////////////////////////////|
*     +------+------+-----------------------------------------+
*  A0 |                       CACYDATA                        |
*     +-------------------------------------------------------+
*  A8 |                                                       |
*     =                       CACYLKWD                        =
*     |                                                       |
*     +-------------------------------------------------------+
*  C0
*
*** CACBK - Virtual CTC Adapter Control Block

 

CACBK Cross Reference

(contains links to field and bit definitions)
Symbol         Dspl Value
-------------- ---- -----

CACADISC 000E 40

CACADTCH 000E 80

CACANYCK 0033 34

CACANYPD 0034 F0

CACBUFDC 0033 20

CACCANPD 0036 40

CACCMDAC 0035 40

CACCPLRS 000F 10

CACCTCA 000A 00000001

CACCTLPD 0034 20

CACEODTR 000D 80

CACEOFLE 000C 10

CACEQCHK 0033 10

CACEXCCW 0035 80

CACEXDTR 000D 40

CACEXTND 000C 40

CACEXTOP 000C 80

CACFIRST 000C 08

CACHALTD 0036 80

CACICCCW 0035 08

CACIFDRS 000F 20

CACIFDSC 0033 01

CACINTRQ 0033 40

CACNEWUC 0036 08

CACNTRDY 000C 20

CACPRPPD 0034 10

CACRDXAC 0035 10

CACRDXPD 0034 40

CACSCHED 000E 10

CACSELRS 000F 40

CACSEQCK 0033 04

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

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 0033

CACXSTAT 0032

CACXTYPE 000A

CACXUINT 0037

CACXUSER 0000

CACXVDEV 0010

CACYACTR 0088

CACYACTV 0095

CACYADDR 0068

CACYAFLG 006E

CACYAIOR 0084

CACYAREA 0060

CACYBUFF 0078

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 0093

CACYSTAT 0092

CACYTYPE 006A

CACYUINT 0097

CACYUSER 0060

CACYVDEV 0070

CAC3088 000A 00000002


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 11:44:30 EDT.
Copyright IBM Corporation, 1990, 1999