MBHBK | Back to Index page

| Prolog Control Block Contents MBHBK DSECT MBHBF DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

MBHBK Prolog | Top of page

     NAME       : HCPMBHBK
     DESCRIPTION: ISFC Message Buffer Header Block
     DSECT      : MBHBK
     FUNCTION   :
                  This structure defines the ISFC message for
                  socket function calls.  The message buffer for a
                  single send or receive function may be defined as
                  one or more discontiguous fragments.  A message
                  header (MBHBK) is a contiguous parameter list
                  formed by a single MBHDR followed by an array
                  of MBHBF structures.
     LOCATED BY :
                  Various structures off of the SCKBK or through individual service
                  usage
     CREATED BY :
                  HCPKCDCB or HCPKCDCX
     DELETED BY :
                  HCPKCDDB
     SERIALIZED :
                  There is no formal serialization for an MBHBK. It is
                  initialized by an SSI service, which gives up ownership of
                  the MBHBK when the HCPSOCK macro is invoked. The MBHBK,
                  including the buffers pointed to by the Buffer Fragment
                  Entries (MBHBF) are owned by ISFC until HCPSOCK returns.
                  Ownership of an MBHBK passes between the ISFC socket layer
                  and the ISFC link layer. Once the socket layer calls
                  HCPKCWTX to pass the MBHBK or its clone into the link layer
                  the MBHBK is owned by the link layer and CANNOT be
                  returned to the caller. The MBHBK is eligible to be
                  returned to the service when the MBHMP_RETURNOK flag is ON.
                  Reference to the MBHMP_RETURNOK flag is controlled by the
                  owning socket's SCKLKWRD.
     RELOCATION CONSIDERATIONS : None
     NOTES      :
                  This structure describes an ISFC message.  The
                  structure includes the following sections:
                  o Local processing fields.
                  o Message header (MBHDR for MBHDRLN bytes).
                  o Buffer Fragment List (MBHBUFCT copies of MBHBF).
                  The message header (MBHDR) includes the following
                  fields for every message:
                  MBHPROT (halfword) protocol
                  MBHFUNC (halfword) function code
                  MBHPARM (fullword) optional information
                  When MBHBFCT ==0 the message is contained entirely
                  within the MBHDR area (MBHFUNC and MBHPARM).
                  There is no associated buffer storage.
                  When MBHBFCT >0 the MBHBF array contains an entry
                  for each buffer fragment (MBHBUFCT indicates the
                  number of buffer fragments).
                  When the MBHBK is created, MBHBUFMX contains the
                  maximum number of buffer fragments defined in the
                  current structure.  The MBHBK owner must set
                  MBHBUFCT to indicate the number of fragments active
                  at the moment.

MBHBK Control Block Content | Top of page

     MBHBK DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      MBHBK          ISFC Message Buffer Header Block
          MBHBK starts with local processing fields.
            This part of the MBHBK is not transmitted to the
            destination node.
           The MBHFPNT/MBHBPNT ptrs are used in a variety of ways.
           The key is that these ptrs are not used for two purposes
           at once.
           Known uses:
           - MBRREQ_REPLY is double-linked, but not circular.
           - (Used by HCPKCDCH, HCPKCDTO, HCPKCD's TRANSMIT)
           - SCKRCVR is single-linked, not circular.
             (Used by HCPKCDMR,HCPKCDRM)
           - SCKCNRQU is double-linked, circular list.
             (Used by HCPKCDAC.)
           - SCKRXQUE is double-linked, circular list.
             (Used by HCPKCDRX, HCPKCDTO, HCPKCD's INSERT_QUEUE, REMOVE_QUEUE)
           - LNKTQ_NEXT/FIRST/LAST is single-linked, not circular
             (Used by HCPKCWTX, HCPKCWTP, HCPKWTO, HCPKCW's PROC_OUTBOUND.)
           - HCPKCCQ1 is single-linked, not circular
             (Used by HCPKCC's DISCARD_MSG)
           - Send Reply chain (MBRREQ_REPLY) is double-linked, not circular
             (Used by HCPKCDRQ, HCPNET)
           - SCKQUEBK managed by HCPQMX routines.
    0000    0 Address      4 MBHFPNT        Pointer to next MBHDR
    0004    4 Address      4 MBHBPNT        Pointer to previous MBHDR
    0008    8 Bitstring    1 MBHMGT         Message Management flags
              1... ....      MBHSTGMT       X'80' MBHSTGMT - This MBHBK owns
                                            the buffers
              .1.. ....      MBHCLONE       X'40' MBHCLONE - This is a clone
                                            MBHBK
              ..1. ....      MBHPASST       X'20' MBHPASST - This is a
                                            passthru MBHBK
              ...1 ....      MBHMBX         X'10' MBHMBX - Use ISFC Mailbox
                                            storage
    0009    9 Bitstring    1 MBHMP          Message Processing flags
              1... ....      MBHMP_INBOUND  X'80' MBHMP_INBOUND - Inbound
                                            message
              .1.. ....      MBHMP_OUTBOUND X'40' MBHMP_OUTBOUND - Outbound
                                            message
              ..1. ....      MBHMP_ERROR    X'20' MBHMP_ERROR - Error
                                            detected
              ...1 ....      MBHMP_COMPLETE X'10' MBHMP_COMPLETE - Transmit
                                            (TX) complete
              .... 1...      MBHMP_INCCW    X'08' MBHMP_INCCW - Built in CCW;
                                            can't remove
              .... .1..      MBHMP_KCWTO    X'04' MBHMP_KCWTO - Being timed
                                            out
              .... ..1.      MBHMP_RETURNOK X'02' MBHMP_RETURNOK - The link
                                            layer has returned ownership of
                                            the MBHBK to the socket layer.
                                            Only when the MBHMP_RETURNOK flag
                                            is ON may the MBHBK be returned
                                            to the HCPSOCK caller. The
                                            SCKLKWRD for the owning socket
                                            must be held EXCLUSIVE to change
                                            or reference the MBHMP_RETURNOK
                                            flag.
    000A   10 Signed       2 MBHBUFMX       MBHBUFCT maximum (this MBHBK)
    000C   12 Signed       4 MBHERRNO       Error number
              00000001       MBH_INVCLASS   1 MBH_INVCLASS Invalid MBHCLASS
              00000002       MBH_NOLINK     2 MBH_NOLINK No link found
              00000003       MBH_NOSOCK     3 MBH_NOSOCK No socket found
              00000006       MBH_UNEXPECTED 6 MBH_UNEXPECTED Unexpected error
              00000007       MBH_TIMEDOUT   7 MBH_TIMEDOUT Timed out by CP -
                                            REPLY did not arrive promptly -
                                            Connection lost to target
              00000008       MBH_BREAK4KB   8 MBH_BREAK4KB A frame crosses
                                            the 4KB boundary
              00000009       MBH_TOOLATE    9 MBH_TOOLATE Reply too late
    0010   16 Dbl-Word     8 MBHTOD0        TOD when msg was sent/recvd
    0018   24 Address      4 MBHPRMBK       Pointer to MBHBK(prime)
    001C   28 Signed       4 MBHCLCNT       Number of Clones
    0020   32 Signed       4 MBHSNTCT       Count messages sent
    0024   36 Signed       4 MBHREFCT       Reference count for MBHBK
    0028   40 Address      4 MBHSCKBK       Link to local socket
    002C   44 Address      4 MBHMDEBK       Pointer to MDEBK (for passthru)
    0030   48 Address      4 MBHCRTAD       Creation address for debug
    0034   52 Address      4 MBHFREAD       Free address for debug
    0038   56 Signed       2 MBHTOCTR       Time out counter
    003A   58 Signed       2 *              Reserved
    003C   60 Address      4 MBHMBBK        Pointer to the MBBK
    0040   64 Dbl-Word     8 MBHLINST       Local link instance
          MBHDR defines the message header (for transmission).
            These fields are transmitted with the message.
    0048   72 Bitstring    1 MBHDR (0)
    0048   72 Bitstring    1 MBHHDRLN       Header length (MBHDRLN)
    0049   73 Bitstring    1 MBHFMT         Message Format
              00000001       MBHFMT01       1 MBHFMT01 ISFC MBHDR Format 1
    004A   74 Signed       2 MBHBUFCT       Buffer count
    004C   76 Signed       4 MBHMSGLN       Total message length
    0050   80 Bitstring    1 MBHCLASS       Message Class
              00000000       MBHUNI         0 MBHUNI - Unicast to MBHNODE
              00000001       MBHBRD         1 MBHBRD - Broadcast to ISFC
                                            Collection
              00000002       MBHPLX         2 MBHPLX - Broadcast to VMPLEX
    0051   81 Bitstring    1 MBHOPTNS       Options
              1... ....      MBHIMMED       X'80' MBHIMMED - Immediate mode
                                            (nonblocking)
              ..1. ....      MBHWTREP       X'20' MBHWTREP - Wait for Reply
                                            (blocking)
              ...1 ....      MBHREPLY       X'10' MBHREPLY - This is a Reply
                                            (use MBHMSGID)
    0052   82 Signed       2 MBHSEQNO       Link Layer sequence number
    0054   84 Signed       4 MBHMSGID       Source message ID
    0058   88 Character   16 MBHDINFO (0)   General Destination Info
    0058   88 Character    8 MBHDNODE       Destination NodeID
    0060   96 Character    8 MBHDPORT       Destination ServiceID
    0068  104 Character   16 MBHSINFO (0)   General Source Info
    0068  104 Character    8 MBHSNODE       Source NodeID
    0070  112 Character    8 MBHSPORT       Source ServiceID
    0078  120 Signed       4 MBHDMASK       Destination MASK
    007C  124 Signed       4 MBHSMASK       Source MASK
          Overlay Protocol||Function (MBHPROT||MBHFUNC).
    0080  128 Bitstring    4 MBHPCFN (0)    Protocol||Function combined
          Every message has a protocol (MBHPROT).
            ISFC claims protocols 0-255.
            Other services may use 256 (x'100') or higher.
    0080  128 Signed       2 MBHPROT        Message Protocol
              00000000       MBH_NOPROT     X'0000' MBH_NOPROT No protocol
              00000002       MBH_CMP        X'0002' MBH_CMP Collection
                                            Management protocol
              00000004       MBH_SOCK       X'0004' MBH_SOCK Socket protocol
          Function code is set by the message creator.
            If MBHMSGLN==0 (which implies MBHBUFCT==0) the
            message is contained entirely within function
            code (MBHFUNC) and the optional MBHPARM field.
    0082  130 Signed       2 MBHFUNC        Message Function (in MBHPROT)
              00000001       MBHCMP_SEND    1 MBHCMP_SEND CMP Send
              00000002       MBHCMP_MAILBOX 2 MBHCMP_MAILBOX CMP Send for
                                            mailbox
              00000001       MBHSOCK_CNREQ  1 MBHSOCK_CNREQ Socket connection
                                            request
              00000002       MBHSOCK_CNACPT 2 MBHSOCK_CNACPT Socket
                                            connection accepted
              00000003       MBHSOCK_CLOSE  3 MBHSOCK_CLOSE Socket closed
              00000004       MBHSOCK_YES    4 MBHSOCK_YES A YES vote on
                                            HCPSOCK SEND_REPLY
              00000005       MBHSOCK_NO     5 MBHSOCK_NO A NO vote on HCPSOCK
                                            SEND_REPLY
              00000006       MBHSOCK_NODESY 6 MBHSOCK_NODESY ISFC Node Sync
                                            Services
              00000007       MBHSOCK_TIMESY 7 MBHSOCK_TIMESY ISFC Time Sync
                                            Services
              00000009       MBHSOCK_LINK   9 MBHSOCK_LINK Link Heartbeat
                                            message
              0000000A       MBHSOCK_LATE   10 MBHSOCK_LATE Late Node Sync
                                            Response
          MBHPARM is set by the message creator.
    0084  132 Signed       4 MBHPARM        Message Parameter (optional)
    0088  136 Signed       4 * (3)          Reserved for future use
    0094  148 Bitstring    1 MBHPRIOR       Message priority
              00000000       MBHPRILO       X'00' MBHPRILO Priority 0 - Low
              00000001       MBHPRIML       X'01' MBHPRIML Priority 1 -
                                            MediumLow
              00000007       MBHPRIMD       X'07' MBHPRIMD Medium = High (for
                                            future use)
              00000007       MBHPRIHI       X'07' MBHPRIHI Priority 7 -
                                            Highest
    0095  149 Bitstring    1 *              Reserved
    0096  150 Signed       2 *              Reserved
              00000098       MBHDR$         * = End of MBHDR
              00000050       MBHDRLN        *-MBHDR Length of MBHDR area
          MBHBF array.
            When MBHBUFCT>0 the MBHBF array begins here.
    0098  152 Bitstring    1 MBHLIST (0)    Buffer Fragment list
          End of MBHBK
              00000098       MBHBK$         * = End of MBHBK
              00000098       MBHBKLN        *-MBHBK Length of typical MBHBK
              00000013       MBHBKSZ        (MBHBKLN+7)/8 Size of typical
                                            MBHBK (dblwords)
          MBHPARM definition for Passthru data (MBHCMP_MAILBOX)
    0084  132 Signed       2 MBHSEGNO       MDEBK segment (1-MBHSEGCT)
    0086  134 Signed       2 MBHSEGCT       MDEBK segment count (total)
          Constants associated with MBHBK.
              00000080       MBH_BFMAX      128 Max MBHBF entries with one
                                            MBHBK
              00000898       MBH_BKMAX      MBHBKLN+(MBHBFLN*MBH_BFMAX) Max
                                            MBHBK len
          MBHBF - Buffer Fragment entry.
            When MBHBUFCT>0 the MBHBF array follows immediately
            after MBHDR (starting at MBHLIST).

     MBHBF DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      MBHBF          ISFC Message Buffer Header Block
    0000    0 Bitstring    1 MBHBFFLG       Buffer Flag
              1... ....      MBHBFBAD       X'80' MBHBFBAD - This buffer
                                            fragment is bad
              .1.. ....      MBHBFDNR       X'40' MBHBFDNR - Don't release
                                            this fragment
              ..1. ....      MBHBFUSR       X'20' MBHBFUSR - User Frame
              ...1 ....      MBHBFPAG       X'10' MBHBFPAG - Full page
                                            obtained
    0001    1 Bitstring    1 MBHBFSTG       Buffer Storage Type (HL/HA)
              00000001       MBHBFHLS       1 MBHBFHLS Host Logical Space
              00000002       MBHBFHAS       2 MBHBFHAS Host Absolute Space
              00000003       MBHBFCFS       3 MBHBFCFS ISFC Address Space
    0002    2 Bitstring    4 *              Reserved for IBM Use
    0006    6 Signed       2 MBHBFLEN       Buffer Fragment Length
    0008    8 Dbl-Word     8 MBHBFPTR (0)   Buffer Fragment Address
    0008    8 Address      4 MBHBFPTH       Buffer Fragment - High half
    000C   12 Address      4 MBHBFPTL       Buffer Fragment - Low half
              00000010       MBHBF$         * = End of MBHBF
              00000010       MBHBFLN        *-MBHBF Length of MBHBF entry
                                            (bytes)
              00000002       MBHBFSZ        (MBHBFLN+7)/8 Size of typical
                                            MBHBF (dblwords)

MBHBK Storage Layout | Top of page

    *** MBHBK - ISFC Message Buffer Header Block
    *
    *     +---------------------------+---------------------------+
    *   0 |         MBHFPNT           |         MBHBPNT           |
    *     +------+------+-------------+---------------------------+
    *   8 |MBHMGT|MBHMP |  MBHBUFMX   |         MBHERRNO          |
    *     +------+------+-------------+---------------------------+
    *  10 |                       MBHTOD0                         |
    *     +---------------------------+---------------------------+
    *  18 |         MBHPRMBK          |         MBHCLCNT          |
    *     +---------------------------+---------------------------+
    *  20 |         MBHSNTCT          |         MBHREFCT          |
    *     +---------------------------+---------------------------+
    *  28 |         MBHSCKBK          |         MBHMDEBK          |
    *     +---------------------------+---------------------------+
    *  30 |         MBHCRTAD          |         MBHFREAD          |
    *     +-------------+-------------+---------------------------+
    *  38 |  MBHTOCTR   |/////////////|         MBHMBBK           |
    *     +-------------+-------------+---------------------------+
    *  40 |                       MBHLINST                        |
    *     +------+------+-------------+---------------------------+
    *  48 |:HDRLN|MBHFMT|  MBHBUFCT   |         MBHMSGLN          |
    *     +------+------+-------------+---------------------------+
    *  50 |:CLASS|:OPTNS|  MBHSEQNO   |         MBHMSGID          |
    *     +------+------+-------------+---------------------------+
    *  58 |                       MBHDNODE                        |
    *     +-------------------------------------------------------+
    *  60 |                       MBHDPORT                        |
    *     +-------------------------------------------------------+
    *  68 |                       MBHSNODE                        |
    *     +-------------------------------------------------------+
    *  70 |                       MBHSPORT                        |
    *     +---------------------------+---------------------------+
    *  78 |         MBHDMASK          |         MBHSMASK          |
    *     +-------------+-------------+---------------------------+
    *  80 |  MBHPROT    |  MBHFUNC    |         MBHPARM           |
    *     +-------------+-------------+---------------------------+
    *  88 |///////////////////////////////////////////////////////|
    *     |///////////////////////////+------+------+-------------+
    *  90 |///////////////////////////|:PRIOR|//////|/////////////|
    *     +---------------------------+------+------+-------------+
    *
    *** MBHBK - ISFC Message Buffer Header Block

    *** Overlay for MBHPARM in MBHBK
    *
    *                                 +-------------+-------------+
    *  80 ...                      84 |  MBHSEGNO   |  MBHSEGCT   |
    *                                 +-------------+-------------+
    *  88
    *
    *** Overlay for MBHPARM in MBHBK

    *** MBHBF - ISFC Message Buffer Header Block
    *
    *     +------+------+---------------------------+-------------+
    *   0 |:BFFLG|:BFSTG|///////////////////////////|  MBHBFLEN   |
    *     +------+------+-------------+-------------+-------------+
    *   8 |         MBHBFPTH          |         MBHBFPTL          |
    *     +---------------------------+---------------------------+
    *  10
    *
    *** MBHBF - ISFC Message Buffer Header Block

MBHBK Cross Reference | Top of page

    Symbol         Dspl Value
    -------------- ---- -----
    MBH_BFMAX      0086 00000080
    MBH_BKMAX      0086 00000898
    MBH_BREAK4KB   000C 00000008
    MBH_CMP        0080 00000002
    MBH_INVCLASS   000C 00000001
    MBH_NOLINK     000C 00000002
    MBH_NOPROT     0080 00000000
    MBH_NOSOCK     000C 00000003
    MBH_SOCK       0080 00000004
    MBH_TIMEDOUT   000C 00000007
    MBH_TOOLATE    000C 00000009
    MBH_UNEXPECTED
                   000C 00000006
    MBHBF$         000C 00000010
    MBHBFBAD       0000 80
    MBHBFCFS       0001 00000003
    MBHBFDNR       0000 40
    MBHBFFLG       0000
    MBHBFHAS       0001 00000002
    MBHBFHLS       0001 00000001
    MBHBFLEN       0006
    MBHBFLN        000C 00000010
    MBHBFPAG       0000 10
    MBHBFPTH       0008
    MBHBFPTL       000C
    MBHBFPTR       0008
    MBHBFSTG       0001
    MBHBFSZ        000C 00000002
    MBHBFUSR       0000 20
    MBHBK$         0098 00000098
    MBHBKLN        0098 00000098
    MBHBKSZ        0098 00000013
    MBHBPNT        0004
    MBHBRD         0050 00000001
    MBHBUFCT       004A
    MBHBUFMX       000A
    MBHCLASS       0050
    MBHCLCNT       001C
    MBHCLONE       0008 40
    MBHCMP_MAILBOX
                   0082 00000002
    MBHCMP_SEND    0082 00000001
    MBHCRTAD       0030
    MBHDINFO       0058
    MBHDMASK       0078
    MBHDNODE       0058
    MBHDPORT       0060
    MBHDR          0048
    MBHDR$         0096 00000098
    MBHDRLN        0096 00000050
    MBHERRNO       000C
    MBHFMT         0049
    MBHFMT01       0049 00000001
    MBHFPNT        0000
    MBHFREAD       0034
    MBHFUNC        0082
    MBHHDRLN       0048
    MBHIMMED       0051 80
    MBHLINST       0040
    MBHLIST        0098
    MBHMBBK        003C
    MBHMBX         0008 10
    MBHMDEBK       002C
    MBHMGT         0008
    MBHMP          0009
    MBHMP_COMPLETE
                   0009 10
    MBHMP_ERROR    0009 20
    MBHMP_INBOUND  0009 80
    MBHMP_INCCW    0009 08
    MBHMP_KCWTO    0009 04
    MBHMP_OUTBOUND
                   0009 40
    MBHMP_RETURNOK
                   0009 02
    MBHMSGID       0054
    MBHMSGLN       004C
    MBHOPTNS       0051
    MBHPARM        0084
    MBHPASST       0008 20
    MBHPCFN        0080
    MBHPLX         0050 00000002
    MBHPRIHI       0094 00000007
    MBHPRILO       0094 00000000
    MBHPRIMD       0094 00000007
    MBHPRIML       0094 00000001
    MBHPRIOR       0094
    MBHPRMBK       0018
    MBHPROT        0080
    MBHREFCT       0024
    MBHREPLY       0051 10
    MBHSCKBK       0028
    MBHSEGCT       0086
    MBHSEGNO       0084
    MBHSEQNO       0052
    MBHSINFO       0068
    MBHSMASK       007C
    MBHSNODE       0068
    MBHSNTCT       0020
    MBHSOCK_CLOSE  0082 00000003
    MBHSOCK_CNACPT
                   0082 00000002
    MBHSOCK_CNREQ  0082 00000001
    MBHSOCK_LATE   0082 0000000A
    MBHSOCK_LINK   0082 00000009
    MBHSOCK_NO     0082 00000005
    MBHSOCK_NODESY
                   0082 00000006
    MBHSOCK_TIMESY
                   0082 00000007
    MBHSOCK_YES    0082 00000004
    MBHSPORT       0070
    MBHSTGMT       0008 80
    MBHTOCTR       0038
    MBHTOD0        0010
    MBHUNI         0050 00000000
    MBHWTREP       0051 20

This information is based on z/VM 7.2.0 Last updated on 24 Jun 2020 at 09:29:05 EDT.
Copyright IBM Corporation, 1990, 2020