|
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM. |
MMCBK
Control Block Contents
MMCBK DSECT
MMCPGTBL DSECT
Cross Reference (Contains links to field and bit definitions)
MMCBK Prolog
NAME : HCPMMCBK
DESCRIPTION: ISFC Link Extension for MMC devices
DSECT : MMCBK
FUNCTION : This DSECT maps information for an ISFC link using
a Microchannel to Mainframe Connection.
LOCATED BY : LNKEXTBK points to the MMCBK 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
MMCBK Control Block Content
MMCBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure MMCBK ISFC Link Extension for MMC
devices
MMC Link Header.
0000 0 Bitstring 8 MMCLNKHD (0) Dummy link header
0000 0 Character 2 MMCRELID Current release identifier
0002 2 Signed 2 MMCBUFCT Buffer allocation count
0004 4 Signed 2 MMCWRCNT Active Write buffer count
0006 6 Bitstring 1 MMCCAPS Channel driver capabilities
0007 7 Bitstring 1 * Reserved
ISFC Objects (Link and DataQueue).
0008 8 Address 4 MMCLNKBK Address of ISFC link block
000C 12 Address 4 MMCQUEBK Address of ISFC Data QUEBK
0010 16 Address 4 MMCACOLS Address of Accounting fields
0014 20 Bitstring 4 * Reserved
Pointers to Device extensions. Notes : The MMC link requires two
devices. Normally the first (lower) device is Write-Only and the second
device is Read-Only.
0018 24 Address 4 MMCWRDEV Address of Write-Only MMABK
001C 28 Address 4 MMCRDDEV Address of Read-Only MMABK
Link Status.
0020 32 Signed 4 MMCDEVNO Real device address
0024 36 Character 4 MMCDEVID Printable device address
0028 40 Bitstring 1 MMCSTAT Link Status
00000001 LNKIDLE 1 - Idle
00000002 LNKBUSY 2 - Busy
00000003 LNKWRITE 3 - Write in progress
00000004 LNKREAD 4 - Read in progress
00000005 LNKRESET 5 - Reset in progress
00000006 LNKATTN 6 - Handling link attention
00000007 LNKFATAL 7 - Fatal I/O on link
00000008 LNKINIT 8 - Initialization in progress
00000008 LNKDEACT 8 - Deactivation in progress
00000000 *
0029 41 Bitstring 1 MMCFLAG Link Flags
1... .... MMCDLPRG X'80' - Delete in progress
002A 42 Bitstring 1 MMCPCAPS Partner's link capabilities
1... .... MMCWEOF X'80' - Write End Of File
supported
002B 43 Bitstring 1 * Reserved
002C 44 Signed 4 MMCMSNUM Most recent msg number
MMCMDEHD and MMCMDETL 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 MMCMDEHD Top of Pending Message queue
0034 52 Address 4 MMCMDETL End of Pending Message queue
Key addresses in the channel programs and page tables.
0038 56 Address 4 MMCWRBGN Address of first Write CCW
003C 60 Address 4 MMCWREND Address of last Write CCW
0040 64 Address 4 MMCRDBGN Address of first Read CCW
0044 68 Address 4 MMCRDEND Address of last Read CCW
0048 72 Address 4 MMCPGRDR Address of first Read PGEBK ptr
004C 76 Address 4 MMCPGWRT Address of first Write PGEBK ptr
0050 80 Address 4 MMCWRPTR Address of current Write ptr
0054 84 Address 4 MMCRDPTR Address of current Read ptr
0058 88 Signed 2 MMCRDCNT Active Read buffer count
005A 90 Bitstring 6 * Reserved
Variable part of the MMCBK. This area contains: - the Write channel
program (8 bytes/buffer) - the Read channel program (8 bytes/buffer) -
the PGEBK table (4 bytes/buffer)
0060 96 Dbl-Word 8 MMCCONT (0) Start of variable length data
00000060 MMCBKLEN *-MMCBK Size of MMCBK in bytes
0000000C MMCSIZE (*-MMCBK+7)/8 Size of MMCBK in
doublewords
FUNCTION : Map an entry in the table of PGEBK pointers. This table is
variable in length and is contained within the MMCBK. Each entry points
to a PGEBK that is used to manage an input buffer page.
LOCATED BY : MMCPGRDR points to the first Read PGEBK pointer. MMCPGWRT
points to the first Write PGEBK pointer. MMCPGEND points to the last
entry.
MMCPGTBL DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure MMCPGTBL ISFC Link Extension for MMC
devices
0000 0 Address 4 MMCPGPTR Address of a PGEBK entry
00000004 MMCPGLEN *-MMCPGTBL Length of one PGEBK
pointer
The MMCBK 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 - ((MMCSIZE*8) / (L'CCW+L'CCW+MMCPGLEN))
The advertised limit should be set to a reasonable number below this
calculated limit, leaving room for future expansion of the MMCBK.
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.
000000C6 MMCMAXCT (4064-(MMCSIZE*8))/(8+8+MMCPGLEN)
Max Buffers
MMCBK Storage Layout
*** MMCBK - ISFC Link Extension for MMC devices
*
* +-------------+-------------+-------------+------+------+
* 0 | MMCRELID | MMCBUFCT | MMCWRCNT |:CAPS |//////|
* +-------------+-------------+-------------+------+------+
* 8 | MMCLNKBK | MMCQUEBK |
* +---------------------------+---------------------------+
* 10 | MMCACOLS |///////////////////////////|
* +---------------------------+---------------------------+
* 18 | MMCWRDEV | MMCRDDEV |
* +---------------------------+---------------------------+
* 20 | MMCDEVNO | MMCDEVID |
* +------+------+------+------+---------------------------+
* 28 |:STAT |:FLAG |:PCAPS|//////| MMCMSNUM |
* +------+------+------+------+---------------------------+
* 30 | MMCMDEHD | MMCMDETL |
* +---------------------------+---------------------------+
* 38 | MMCWRBGN | MMCWREND |
* +---------------------------+---------------------------+
* 40 | MMCRDBGN | MMCRDEND |
* +---------------------------+---------------------------+
* 48 | MMCPGRDR | MMCPGWRT |
* +---------------------------+---------------------------+
* 50 | MMCWRPTR | MMCRDPTR |
* +-------------+-------------+---------------------------+
* 58 | MMCRDCNT |/////////////////////////////////////////|
* +-------------+-----------------------------------------+
*
*** MMCBK - ISFC Link Extension for MMC devices
*** MMCPGTBL - ISFC Link Extension for MMC devices
*
* +---------------------------+
* 0 | MMCPGPTR | 4
* +---------------------------+
*
*** MMCPGTBL - ISFC Link Extension for MMC devices
MMCBK Cross Reference
Symbol Dspl Value
-------------- ---- -----
* 0028 00000000
LNKATTN 0028 00000006
LNKBUSY 0028 00000002
LNKDEACT 0028 00000008
LNKFATAL 0028 00000007
LNKIDLE 0028 00000001
LNKINIT 0028 00000008
LNKREAD 0028 00000004
LNKRESET 0028 00000005
LNKWRITE 0028 00000003
MMCACOLS 0010
MMCBKLEN 0060 00000060
MMCBUFCT 0002
MMCCAPS 0006
MMCCONT 0060
MMCDEVID 0024
MMCDEVNO 0020
MMCDLPRG 0029 80
MMCFLAG 0029
MMCLNKBK 0008
MMCLNKHD 0000
MMCMAXCT 0000 000000C6
MMCMDEHD 0030
MMCMDETL 0034
MMCMSNUM 002C
MMCPCAPS 002A
MMCPGLEN 0000 00000004
MMCPGPTR 0000
MMCPGRDR 0048
MMCPGWRT 004C
MMCQUEBK 000C
MMCRDBGN 0040
MMCRDCNT 0058
MMCRDDEV 001C
MMCRDEND 0044
MMCRDPTR 0054
MMCRELID 0000
MMCSIZE 0060 0000000C
MMCSTAT 0028
MMCWEOF 002A 80
MMCWRBGN 0038
MMCWRCNT 0004
MMCWRDEV 0018
MMCWREND 003C
MMCWRPTR 0050
This information is
based on z/VM V4R1.0.
Last updated on 6 Jun 2001 at 11:52:28 EDT.
Copyright IBM Corporation, 1990, 2001