|
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
00000000 LNKDVCTL 0 LNKDVCTL - Device Control mode
00000000 LNKINIT 0 LNKINIT - Initialization in
progress
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 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
.1.. .... CTCMBHBK X'40' CTCMBHBK - MBHBK Transfer
possible
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
00000000 LNKDVCTL 0 LNKDVCTL - Device Control mode
00000000 LNKINIT 0 LNKINIT - Initialization in
progress
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 LNKDEACT 8 LNKDEACT - Deactivation in
progress
0061 97 Bitstring 1 CTCXNEXT Next operation to be started
00000000 LNKDVCTL 0 LNKDVCTL - Device Control mode
00000000 LNKINIT 0 LNKINIT - Initialization in
progress
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 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.
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
| |