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 V5R2.0.
    Last updated on 12 Apr 2006 at 17:05:36 EDT.

    Copyright IBM Corporation, 1990, 2005