|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
CTCBK
Control Block Contents
CTCBK DSECT
CTCPGTBL DSECT
Cross Reference (Contains links to field and bit definitions)
CTCBK Prolog
NAME : HCPCTCBK
DESCRIPTION: ISFC Link Extension for CTCA devices
DSECT : CTCBK
FUNCTION : This DSECT maps information for an ISFC link using
a Channel to Channel Adapter.
LOCATED BY : LNKEXTBK points to the CTCBK for this link.
LDVEXTBK points to the CTCBK for this link.
CREATED BY : HCPDCD when a new link is activated.
DELETED BY : HCPDCD when a link is deactivated.
SERIALIZED : The ISFC Global Lock (HCPBDSGL).
The ISFC LNKBK lock (LNKLKWRD).
COMMENTS : None
CTCBK Control Block Content
CTCBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CTCBK ISFC Link Extension for CTCA devices
CTC Link Header.
The link header is one reason why CTCBK storage has
to be below the 2 gig bar. Treat the address of
CTCLNKHD as a Host Logical address.
0000 0 Bitstring 8 CTCLNKHD (0) Dummy link header
0000 0 Character 2 CTCRELID Current release identifier
0002 2 Signed 2 CTCBUFCT Buffer allocation count
0004 4 Signed 2 CTCWRCNT Active Write buffer count
0006 6 Bitstring 1 CTCCAPS Channel driver capabilities
0007 7 Bitstring 1 * Reserved
ISFC Objects (Link, DataQueue, and Device).
0008 8 Address 4 CTCLNKBK Address of ISFC link block
000C 12 Address 4 CTCQUEBK Address of ISFC Data QUEBK
0010 16 Address 4 CTCLDVBK Address of ISFC device extension
0014 20 Address 4 CTCACOLS Address of Accounting Fields
Link Status.
0018 24 Signed 4 CTCDEVNO Real device address
001C 28 Character 4 CTCDEVID Printable device address
0020 32 Bitstring 1 CTCSTAT Link Status
00000001 LNKIDLE 1 LNKIDLE - Idle
00000002 LNKBUSY 2 LNKBUSY - Busy
00000003 LNKWRITE 3 LNKWRITE - Write in progress
00000004 LNKREAD 4 LNKREAD - Read in progress
00000005 LNKRESET 5 LNKRESET - Reset in progress
00000006 LNKATTN 6 LNKATTN - Handling link
attention
00000007 LNKFATAL 7 LNKFATAL - Fatal I/O on link
00000008 LNKINIT 8 LNKINIT - Initialization in
progress
00000008 LNKDEACT 8 LNKDEACT - Deactivation in
progress
0021 33 Bitstring 1 CTCFLAG Link Flags
1... .... CTCDLPRG X'80' CTCDLPRG - Delete in
progress
.1.. .... CTCWSPRG X'40' CTCWSPRG - Write Sequence
in progress Notes : CTCPCAPS is
cleared during a line driver
RESET.
0022 34 Bitstring 1 CTCPCAPS Partner's link capabilities
1... .... CTCWEOF X'80' CTCWEOF - Write End Of File
supported
0023 35 Bitstring 1 * Reserved
0024 36 Signed 4 CTCMSNUM Most recent msg number
0028 40 Signed 4 CTCWSQCT Write Sequence count
002C 44 Bitstring 4 * Reserved
CTCMDEHD and CTCMDETL are used to maintain a list of
messages (MDEBKs) for this link that have not yet been
verified. An MDEBK in this list may represent frames in
various stages of completion (none started, some written,
some completed).
0030 48 Address 4 CTCMDEHD Top of Pending Message queue
0034 52 Address 4 CTCMDETL End of Pending Message queue
Key addresses in the channel programs and page tables.
All are host logical addresses
0038 56 Address 4 CTCWRBGN Address of first Write CCW
003C 60 Address 4 CTCWREND Address of last Write CCW
0040 64 Address 4 CTCRDBGN Address of first Read CCW
0044 68 Address 4 CTCRDEND Address of last Read CCW
0048 72 Address 4 CTCPGRDR Address of first Read PGEBK ptr
004C 76 Address 4 CTCPGWRT Address of first Write PGEBK ptr
0050 80 Address 4 CTCWRPTR Address of current Write ptr
0054 84 Address 4 CTCRDPTR Address of current Read ptr
0058 88 Signed 2 CTCRDCNT Active Read buffer count
005A 90 Bitstring 6 * reserved
Device status.
0060 96 Bitstring 1 CTCXSTAT Latest operation attempted
00000001 LNKIDLE 1 LNKIDLE - Idle
00000002 LNKBUSY 2 LNKBUSY - Busy
00000003 LNKWRITE 3 LNKWRITE - Write in progress
00000004 LNKREAD 4 LNKREAD - Read in progress
00000005 LNKRESET 5 LNKRESET - Reset in progress
00000006 LNKATTN 6 LNKATTN - Handling link
attention
00000007 LNKFATAL 7 LNKFATAL - Fatal I/O on link
00000008 LNKINIT 8 LNKINIT - Initialization in
progress
00000008 LNKDEACT 8 LNKDEACT - Deactivation in
progress
0061 97 Bitstring 1 CTCXNEXT Next operation to be started
00000001 LNKIDLE 1 LNKIDLE - Idle
00000002 LNKBUSY 2 LNKBUSY - Busy
00000003 LNKWRITE 3 LNKWRITE - Write in progress
00000004 LNKREAD 4 LNKREAD - Read in progress
00000005 LNKRESET 5 LNKRESET - Reset in progress
00000006 LNKATTN 6 LNKATTN - Handling link
attention
00000007 LNKFATAL 7 LNKFATAL - Fatal I/O on link
00000008 LNKINIT 8 LNKINIT - Initialization in
progress
00000008 LNKDEACT 8 LNKDEACT - Deactivation in
progress
0062 98 Bitstring 1 CTCXPEND I/O Pending Flags:
1... .... CTCIOACT X'80' CTCIOACT - I/O is active on
this device
.1.. .... CTCRQSEM X'40' CTCRQSEM - SEM is required
on this device
0063 99 Bitstring 1 * reserved
0064 100 Signed 4 CTCXRTRY Retry counter
ORB for this device.
Treat as Host Logical address
0068 104 Bitstring 12 CTCXORB (0) ORB for I/O requests Treat as
Host Logical address
0068 104 Signed 4 CTCXRET ORB User Parm (I/O Return Addr)
006C 108 Bitstring 4 CTCXREQ ORB Request Flags Host Absolute
32 bit address
0070 112 Address 4 CTCXCPA ORB Channel Program Address
Interrupt information for this device.
32 bit Host Absolute address
0074 116 Address 4 CTCXIRB Latest IRBLK address
0078 120 Address 4 CTCXSNS Latest SNSBK address
007C 124 Signed 4 CTCXIORC Latest I/O Return Code Host
Logical address
0080 128 Address 4 CTCXCCWX Last CCW expected Not in use - 32
bit host absolute
0084 132 Address 4 CTCXCCWF Failing CCW Address
0088 136 Address 8 CTCIDAW (0) 64 Bit Host Absolute address
0088 136 Address 4 CTCHIDAW High word of address
008C 140 Address 4 CTCLIDAW Low word of address
Work area for this device.
0090 144 Dbl-Word 8 CTCXBUFF (8) Space for a work buffer
Variable part of the CTCBK. This area contains:
- the Write channel program (8 bytes/buffer)
- the Read channel program (8 bytes/buffer)
- the PGEBK table (4 bytes/buffer)
Another area which requires CTCBK storage to be below the
2 gig bar.
Address of CTCCONT is
treated as Host Logical address
00D0 208 Dbl-Word 8 CTCCONT (0) Start of variable length data
000000D0 CTCBKLEN *-CTCBK Size of base CTCBK in
bytes
0000001A CTCSIZE (*-CTCBK+7)/8 Size of base CTCBK
in doublewords
FUNCTION :
Map an entry in the table of PGEBK pointers. This
table is variable in length and is contained within
the CTCBK. Each entry points to a PGEBK that is
used to manage an input buffer page.
LOCATED BY :
CTCPGRDR points to the first Read entry.
CTCPGWRT points to the first Write entry.
CTCPGTBL DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure CTCPGTBL ISFC Link Extension for CTCA devices
0000 0 Address 4 CTCPGPTR Address of a PGEBK entry
00000004 CTCPGLEN *-CTCPGTBL Length of one PGEBK
pointer
The CTCBK must fit entirely within a 4K page. Since the
variable portion of the control block increases in size
for each I/O buffer, we have to limit the number of I/O
buffers that can be defined for this type of link. The
limit can be calculated with the following:
Limit := 4064 - ((CTCSIZE*8) / (L'CCW+L'CCW+2*CTCPGLEN))
The advertised limit should be set to a reasonable number
below this calculated limit, leaving room for future
expansion of the CTCBK.
Notes :
Bytes per page (4064) leaves 32 bytes for free storage
header and trailer information (currently 24 bytes).
See HCPFREBK FRERECL for the number of doublewords
required for free storage management.
000000A0 CTCMAXCT (4064-(CTCSIZE*8))/(8+8+(2*CTCPGL
EN)) Max count
CTCBK Storage Layout
*** CTCBK - ISFC Link Extension for CTCA devices
*
* +-------------+-------------+-------------+------+------+
* 0 | CTCRELID | CTCBUFCT | CTCWRCNT |:CAPS |//////|
* +-------------+-------------+-------------+------+------+
* 8 | CTCLNKBK | CTCQUEBK |
* +---------------------------+---------------------------+
* 10 | CTCLDVBK | CTCACOLS |
* +---------------------------+---------------------------+
* 18 | CTCDEVNO | CTCDEVID |
* +------+------+------+------+---------------------------+
* 20 |:STAT |:FLAG |:PCAPS|//////| CTCMSNUM |
* +------+------+------+------+---------------------------+
* 28 | CTCWSQCT |///////////////////////////|
* +---------------------------+---------------------------+
* 30 | CTCMDEHD | CTCMDETL |
* +---------------------------+---------------------------+
* 38 | CTCWRBGN | CTCWREND |
* +---------------------------+---------------------------+
* 40 | CTCRDBGN | CTCRDEND |
* +---------------------------+---------------------------+
* 48 | CTCPGRDR | CTCPGWRT |
* +---------------------------+---------------------------+
* 50 | CTCWRPTR | CTCRDPTR |
* +-------------+-------------+---------------------------+
* 58 | CTCRDCNT |/////////////////////////////////////////|
* +------+------+------+------+---------------------------+
* 60 |:XSTAT|:XNEXT|:XPEND|//////| CTCXRTRY |
* +------+------+------+------+---------------------------+
* 68 | CTCXRET | CTCXREQ |
* +---------------------------+---------------------------+
* 70 | CTCXCPA | CTCXIRB |
* +---------------------------+---------------------------+
* 78 | CTCXSNS | CTCXIORC |
* +---------------------------+---------------------------+
* 80 | CTCXCCWX | CTCXCCWF |
* +---------------------------+---------------------------+
* 88 | CTCHIDAW | CTCLIDAW |
* +---------------------------+---------------------------+
* 90 | |
* = CTCXBUFF =
* | |
* +-------------------------------------------------------+
*
*** CTCBK - ISFC Link Extension for CTCA devices
*** CTCPGTBL - ISFC Link Extension for CTCA devices
*
* +---------------------------+
* 0 | CTCPGPTR | 4
* +---------------------------+
*
*** CTCPGTBL - ISFC Link Extension for CTCA devices
CTCBK Cross Reference
Symbol Dspl Value
-------------- ---- -----
CTCACOLS 0014
CTCBKLEN 00D0 000000D0
CTCBUFCT 0002
CTCCAPS 0006
CTCCONT 00D0
CTCDEVID 001C
CTCDEVNO 0018
CTCDLPRG 0021 80
CTCFLAG 0021
CTCHIDAW 0088
CTCIDAW 0088
CTCIOACT 0062 80
CTCLDVBK 0010
CTCLIDAW 008C
CTCLNKBK 0008
CTCLNKHD 0000
CTCMAXCT 0000 000000A0
CTCMDEHD 0030
CTCMDETL 0034
CTCMSNUM 0024
CTCPCAPS 0022
CTCPGLEN 0000 00000004
CTCPGPTR 0000
CTCPGRDR 0048
CTCPGWRT 004C
CTCQUEBK 000C
CTCRDBGN 0040
CTCRDCNT 0058
CTCRDEND 0044
CTCRDPTR 0054
CTCRELID 0000
CTCRQSEM 0062 40
CTCSIZE 00D0 0000001A
CTCSTAT 0020
CTCWEOF 0022 80
CTCWRBGN 0038
CTCWRCNT 0004
CTCWREND 003C
CTCWRPTR 0050
CTCWSPRG 0021 40
CTCWSQCT 0028
CTCXBUFF 0090
CTCXCCWF 0084
CTCXCCWX 0080
CTCXCPA 0070
CTCXIORC 007C
CTCXIRB 0074
CTCXNEXT 0061
CTCXORB 0068
CTCXPEND 0062
CTCXREQ 006C
CTCXRET 0068
CTCXRTRY 0064
CTCXSNS 0078
CTCXSTAT 0060
LNKATTN 0020 00000006
LNKATTN 0060 00000006
LNKATTN 0061 00000006
LNKBUSY 0020 00000002
LNKBUSY 0060 00000002
LNKBUSY 0061 00000002
LNKDEACT 0020 00000008
LNKDEACT 0060 00000008
LNKDEACT 0061 00000008
LNKFATAL 0020 00000007
LNKFATAL 0060 00000007
LNKFATAL 0061 00000007
LNKIDLE 0020 00000001
LNKIDLE 0060 00000001
LNKIDLE 0061 00000001
LNKINIT 0020 00000008
LNKINIT 0060 00000008
LNKINIT 0061 00000008
LNKREAD 0020 00000004
LNKREAD 0060 00000004
LNKREAD 0061 00000004
LNKRESET 0020 00000005
LNKRESET 0060 00000005
LNKRESET 0061 00000005
LNKWRITE 0020 00000003
LNKWRITE 0060 00000003
LNKWRITE 0061 00000003
This information is
based on z/VM V5R4.0.
Last updated on 18 Feb 2010 at 03:33:39 EDT.
Copyright IBM Corporation, 1990, 2009