Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only.

MMCBK

Prolog  

Control Block Contents  

MMCBK DSECT

MMCPGTBL DSECT

Storage Layout  

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   |/////////////////////////////////////////|
*     +-------------+-----------------------------------------+
*  60 |                                                       |
*     =                       MMCCONT                         =
*     |                                                       |
*     +-------------------------------------------------------+
*
*** 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

(contains links to field and bit definitions)
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 VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 12:14:54 EDT.
Copyright IBM Corporation, 1990, 1999