PPABK Back to Index page
 
Prolog 
Control Block Contents 
   PPABK 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.


  PPABK Prolog Top of page
 
 NAME       : HCPPPABK
 DESCRIPTION: Point to Point Accounting Block.
 DSECT      : PPABK
 FUNCTION   : Contains accounting information for a point to
              point virtual connection (virtual channel to channel
              adapter, or an IUCV or APPC/VM connection.)
  ocated by
              VCTCA specific
              - CACXPPA and CACYPPA: point to a shared PPABK
              when 2 virtual ctc adapters are coupled.
              IUCV & APPC/VM specific
              - PDEPPA: When an IUCV or APPC/VM connection exists.
              - IUCPPAS: A chain of PPABKs.  See General Notes.
              PPAFP1: Forward pointer for PPAUSR1 chain.
              PPAFP2: Forward pointer for PPAUSR2 chain.
 CREATED BY : For Virtual CTC adapters PPABKs are created by HCPCTVCP
              when two virtual CTC devices are coupled.
              For IUCV or APPC/VM connections PPABKs are created by
              HCPIUBAC when two users establish a connection for the
              first time.
 DELETED BY : For Virtual CTC adapters PPABKs are deleted by subroutine
              uncouple in HCPCTV when two virtual devices are uncoupled.
              For IUCV and APPC/VM connections, PPABKs are deleted by
              HCPACNPP when a retrieve buffer is done.
 RELOCATION CONSIDERATIONS : None
 REFERENCES : none.
 SERIALIZED : For Virtual CTC adapter processing: fields in the
              HCPPPABK are serialized by holding the shared adapter
              for a pair of coupled adapters.
              For IUCV and APPC/VM processing: fields in the HCPPPABK
              are serialized by holding one or both user's IUCV lock.
              Field        Is serialized by
              ------       ***************-
              PPAUSR1      Modified only when holding both IUCV locks.
              PPAUSR2      Modified only when holding both IUCV locks.
              PPAFP1       PPAUSR1's IUCV lock. (1)
              PPAFP2       PPAUSR2's IUCV lock. (1)
              PPAPWORK     Modified only when holding both IUCV locks.
              PPASENT      PPAUSR2's IUCV lock. (2)
              PPAREC       PPAUSR2's IUCV lock. (2)
              PPATSENT     PPAUSR2's IUCV lock. (2)
              PPATREC      PPAUSR2's IUCV lock. (2)
              PPANSENT     PPAUSR2's IUCV lock. (2)
              PPANREC      PPAUSR2's IUCV lock. (2)
              PPACTOD      PPAUSR2's IUCV lock. (2)
              The field IUCPPAS itself is serialized by holding the
              user's IUCV lock.
  1) This is done so that a user may run his chain without
              having to get the second IUCV lock.  If forced to get a
              higher lock, he would have to release his, and this
              would allow for the corruption of the chain while
              waiting to get boths locks in the right order.  These
              fields are only modified when both locks are held, but
              each user may reference his own forward pointer.
  2) This is done so that a user may run his chain without
              giving up his lock, and have access to all the data on
              his chain.  To do this get your own lock and go down the
              chain.  If you are "high" in the block, then you must
              get the lower lock to access the data: but you can do
              this without releasing your lock.  If you are "low" in
              the block, then you have access to the data without the
              need for the other lock.  In either case your chain will
              remain stable as long as you hold your lock.  (See
              HCPACO implement this, and the General note on IUCV
              Processing for more information.)
 COMPATIBILITY AND MIGRATION CONCERNS : None.
 GENERAL NOTES      : Virtual Channel to Channel processing: No chains of
              PPABKS exist in VCTCA processing.
              IUCV Processing:
              When an IUCV or APPC/VM connection is established
              between two users (USERA and USERB) for the first time,
              a PPABK is created and chained on each user's IUCVB
              (IUCPPAS).  A PPABK is created with PPAUSR1 equal to
              the higher VMDBK address, and PPAUSR2 equal to the
              lower VMDBK address.  The PPABK is then chained
              closest to the IUCPPAS for USR1 and after all the
              PPABKS on USR2's chain that he is highest in.  This
              allows one to shortcut out of a search once you find
              a PPABK that you are no longer high in.  (I.E. All
              PPABKs that a user is high in, comes first on that
              user's IUCPPAS chain.)
 
 
  PPABK Control Block Content Top of page
 

 PPABK DSECT Top of page
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure PPABK Point to Point Accounting Block. 0000 0 Signed 4 PPAUSR1 Vctca: Address of one CACBK. IUCV: VMDBK of the first user of this PPABK. 0004 4 Signed 4 PPAUSR2 Vctca: Address of other CACBK. IUCV: VMDBK of the second user of this block. Notes : There is a dependency in HCPACNPP that PPAFP2 immediately follows PPAFP1. 0008 8 Bitstring 8 PPAFP (0) An indexable reference to FP1 and FP2. 0008 8 Signed 4 PPAFP1 IUCV: Forward pointer for USR1. 000C 12 Signed 4 PPAFP2 IUCV: Forward pointer for USR2. 0010 16 Signed 4 * Reserved for future use. 0014 20 Signed 4 PPAWORK A work field for temporary use. 0018 24 Dbl-Word 8 PPASENT Number of bytes sent from USR1 to USR2 since last accounting record was cut. 0020 32 Dbl-Word 8 PPAREC Number of bytes sent from USR2 to USR1 since last accounting record was cut. 0028 40 Dbl-Word 8 PPATSENT Total number of bytes sent from USR1 to USR2 0030 48 Dbl-Word 8 PPATREC Total number of bytes sent from USR1 to USR1 0038 56 Signed 4 PPANSENT Total number of sends from USR1 to USR2 003C 60 Signed 4 PPANREC Total number of sends from USR2 to USR1 0040 64 Dbl-Word 8 PPACTOD Vctca: TOD value when devices were coupled. IUCV: TOD value when users last connected. 00000009 PPASIZE (*-PPABK+7)/8 size in double words 00000048 PPABSIZE PPASIZE*8 size in bytes
 
 
  PPABK Storage Layout Top of page
 
          
*** PPABK - Point to Point Accounting Block.
*
*     +---------------------------+---------------------------+
*   0 |         PPAUSR1           |         PPAUSR2           |
*     +---------------------------+---------------------------+
*   8 |          PPAFP1           |          PPAFP2           |
*     +---------------------------+---------------------------+
*  10 |///////////////////////////|         PPAWORK           |
*     +---------------------------+---------------------------+
*  18 |                       PPASENT                         |
*     +-------------------------------------------------------+
*  20 |                        PPAREC                         |
*     +-------------------------------------------------------+
*  28 |                       PPATSENT                        |
*     +-------------------------------------------------------+
*  30 |                       PPATREC                         |
*     +---------------------------+---------------------------+
*  38 |         PPANSENT          |         PPANREC           |
*     +---------------------------+---------------------------+
*  40 |                       PPACTOD                         |
*     +-------------------------------------------------------+
*  48
*
*** PPABK - Point to Point Accounting Block.
 
 
  PPABK Cross Reference Top of page
 
 
Symbol         Dspl Value
-------------- ---- -----
PPABSIZE       0040 00000048
PPACTOD        0040
PPAFP          0008
PPAFP1         0008
PPAFP2         000C
PPANREC        003C
PPANSENT       0038
PPAREC         0020
PPASENT        0018
PPASIZE        0040 00000009
PPATREC        0030
PPATSENT       0028
PPAUSR1        0000
PPAUSR2        0004
PPAWORK        0014
 
This information is based on z/VM 7.3.0 Last updated on 22 Jun 2022 at 15:53:41 EDT.
Copyright IBM Corporation, 1990, 2022