Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

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   |/////////////////////////////////////////|
*     +-------------+-----------------------------------------+
*
*** 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