CACBK | Back to Index page |
Prolog Control Block Contents CACBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
|
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 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 |
Copyright IBM Corporation, 1990, 2022