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) MBHCTRLK (TSGET/TSREL) serializes transmission status: Flag byte: MBHTX Counters: MBHCLNCT, MBHTRGCT, MBHSNDCT, MBHREPCT These fields only need to be serialized from the time a transmission begins (HCPKCCTX) until that transmission is complete (i.e. no more clones or replies outstanding). 001C 28 Bitstring 1 MBHCTRLK Counter lock (TSGET/TSREL) 001D 29 Bitstring 1 MBHTX Transmission status 1... .... MBHTX_WAITING X'80' MBHTX_WAITING - Waiting for Link I/O .1.. .... MBHTX_SENT X'40' MBHTX_SENT - All/only copies sent ..1. .... MBHTX_RCVD X'20' MBHTX_RCVD - All replies done ...1 .... MBHTX_POSTED X'10' MBHTX_POSTED - Posted to resume 111. .... MBHTX_READY MBHTX_WAITING+MBHTX_SENT+MBHTX_RC VD MBHTX_READY bits are all set when this MBHBK is ready to post to resume/return from send. 1111 .... MBHTX_RESUMED MBHTX_READY+MBHTX_POSTED MBHTX_RESUMED bits are all set when this MBHBK has been posted to resume/return from send. 001E 30 Signed 2 MBHCLNCT Number of Clones 0020 32 Signed 2 MBHTRGCT Count targets identified 0022 34 Signed 2 MBHSNDCT 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 MBHREPCT Count replies received 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.. .... MBHSQMSG X'40' MBHSQMSG - SEND_QUEUED Message ..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          |:CTRLK|MBHTX |  MBHCLNCT   |
*     +-------------+-------------+------+------+-------------+
*  20 |  MBHTRGCT   |  MBHSNDCT   |         MBHREFCT          |
*     +-------------+-------------+---------------------------+
*  28 |         MBHSCKBK          |         MBHMDEBK          |
*     +---------------------------+---------------------------+
*  30 |         MBHCRTAD          |         MBHFREAD          |
*     +-------------+-------------+---------------------------+
*  38 |  MBHTOCTR   |  MBHREPCT   |         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
MBHCLNCT       001E
MBHCLONE       0008 40
MBHCMP_MAILBOX
               0082 00000002
MBHCMP_SEND    0082 00000001
MBHCRTAD       0030
MBHCTRLK       001C
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
MBHREPCT       003A
MBHREPLY       0051 10
MBHSCKBK       0028
MBHSEGCT       0086
MBHSEGNO       0084
MBHSEQNO       0052
MBHSINFO       0068
MBHSMASK       007C
MBHSNDCT       0022
MBHSNODE       0068
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
MBHSQMSG       0051 40
MBHSTGMT       0008 80
MBHTOCTR       0038
MBHTOD0        0010
MBHTRGCT       0020
MBHTX          001D
MBHTX_POSTED   001D 10
MBHTX_RCVD     001D 20
MBHTX_READY    001D E0
MBHTX_RESUMED  001D F0
MBHTX_SENT     001D 40
MBHTX_WAITING  001D 80
MBHUNI         0050 00000000
MBHWTREP       0051 20
 
This information is based on z/VM 7.3.0 Last updated on 22 Jun 2022 at 15:52:26 EDT.
Copyright IBM Corporation, 1990, 2022