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 0029 41 Bitstring 1 MMCFLAG Link Flags 1... .... MMCDLPRG X'80' - Delete in progress Notes : MMCPCAPS is cleared during a line driver RESET. 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 -------------- ---- ----- 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 V4R2.0. Last updated on 17 Oct 2001 at 15:43:28 EDT.
Copyright IBM Corporation, 1990, 2001