VOPBK - 32-bit CP - V4R4.0

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

#### VOPBK

Prolog

Control Block Contents
VOPBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### VOPBK Prolog

     Name       : HCPVOPBK
     Description: HCPVOP simulation fetch/store work area
     DSECT      : VOPBK
     Function   : Work area used by HCPVOP simulation fetch/store
                  routines.
     Located by : VMDVOPBK field of the VMDBK
     Created by : HCPBVMBK when a user logs on or when a new vCPU
                  is defined
     Deleted by : HCPUSPFF when a user logs off or when a vCPU is
                  detached
     Serialized : VMDBK dispatch lock (VMDBK local area)
     Comments   :

#### VOPBK Control Block Content

#### VOPBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      VOPBK          HCPVOP simulation fetch/store
                                            work area
    0000    0 Signed       4 VOPFLAG (0)
    0000    0 Bitstring    1 VOPFLAG0       Flags for HCPVOP processing:
              1... ....      VOPBUFSP       X'80' Caller has specified the
                                            .buffer to use.
              .1.. ....      VOPRWERR       X'40' Indicate register wrap
                                            error
              ..1. ....      VOPSTLOG       X'20' Indicate request store into
                                            guest logical address.
              ...1 ....      VOPFONLY       X'10' Indicate this address space
                                            is read only.
              .... 1...      VOPNXTMV       X'08' More than one section of
                                            data will be moved.
              .... .1..      VOPGOTBF       X'04' HCPVOP got free storage for
                                            the output data buffer. The
                                            address of the buffer is in
                                            VOPBUFAD.
    0001    1 Bitstring    1 VOPFLAG1       Additional HCPVOP flags:
              1... ....      VOPGAM64       X'80' HCPVOP may need to execute
                                            in 64-bit addressing mode to
                                            access ESAME mode guest storage
                                            as host logical storage.
              .1.. ....      VOPAMO64       X'40' HCPVOP is currently
                                            executing in 64-bit addressing
                                            mode to handle a V=V ESAME mode
                                            guest guest.
    0002    2 Bitstring    1 VOPPURGE       Purge operation bits
    0003    3 Bitstring    1 VOPAR          AR number
    0004    4 Signed       4 *              Reserved for future IBM use
    0008    8 Signed       4 VOPHWRAP       High half of address wrap mask
    000C   12 Signed       4 VOPAWRAP       Mask for address wrap (31-bit)
    0010   16 Signed       4 VOPAGSIZ       Page size - 1 (2047/4095)
    0014   20 Address      4 VOPASUBR       Subroutine for translation of
                                            guest logical (virtual, real, or
                                            absolute) to host logical
    0018   24 Address      4 VOPBUFAD       Pointer to CP operand buffer
    001C   28 Address      4 VOPGRHL        Subroutine for translation of
                                            guest real or absolute to host
                                            logical
    0020   32 Signed       4 VOPIPLCK       Address of IPTE lock (zero if
                                            relocation not active)
    0024   36 Signed       4 VOPARMS (0)    Input parameters
    0024   36 Signed       2 VOPLEN         Length of data to be fetched/
                                            stored in bits 0-11.
    0024   36 Bitstring    1 *              Bits 0-7 of length.
    0025   37 Bitstring    1 VOPINFL0       Bits 8-11 of length and 4 bits
                                            for flags.
              .... 1...      VOPEXPRM       X'08' Additional parameters are
                                            defined in the VNPBK.
              .... .1..      VOPALETS       X'04' Guest-use ALET specified.
              .... ..1.      VOPASITS       X'02' I-ASIT specified.
              .... ...1      VOPMCRCD       X'01' Return an MCRECORD.
    0026   38 Bitstring    1 VOPINFLG       Input flags (byte 2 of VOPARMS)
              1... ....      VOPLAP         X'80' Apply low address
                                            protection
              1... ....      VOPLAPFO       X'80' Apply low address
                                            protection
              .1.. ....      VOPPROT        X'40' Apply key protection
              ..1. ....      VOPGA64R       X'20' Bits 18-19 of VOPARMS =
                                            b'10' For entry points which
                                            accept a guest operand address
                                            input in R1, input guest 64-bit
                                            address is provided in 64-bit
                                            wide input R1; for all entry
                                            points which deal with guest
                                            operands, HCPVOP internally
                                            represents the 64-bit guest
                                            operand address in 64-bit R1.
              ...1 ....      VOPGA64S       X'10' Bits 18-19 of VOPARMS =
                                            b'01' For entry points which
                                            accept a guest operand address
                                            input in R1, input guest 64-bit
                                            address is provided in a 64-bit
                                            host real storage area pointed to
                                            by the 31-bit host real address
                                            in 32-bit input R1; for all entry
                                            points which deal with guest
                                            operands, HCPVOP internally
                                            represents the 64-bit guest
                                            operand address in a 64-bit host
                                            real storage area pointed to by
                                            the 31-bit host real address in
                                            31-bit R1. Notes : If neither
                                            VOPGA64R or VOPGA64S are on, then
                                            HCPVOP internally represents the
                                            31 bit guest operand address in
                                            32 bit R1, and, for all entry
                                            points which accept a guest
                                            operand address in R1, the R1
                                            input is a 31-bit guest operand
                                            address in 32-bit input R1. Notes
                                            : For entry points which accept a
                                            guest operand address input in
                                            R1, VOPGA64R and VOPGA64S are
                                            used to map both bits 18-19 of
                                            the input R0 parameter and also
                                            the copy of the input R0
                                            parameter saved in the VOPARMS /
                                            VOPINFLG fields. All entry points
                                            which deal with guest operands
                                            but do NOT accept a guest opeand
                                            address input in R1 have bits
                                            18-19 of the input R0 parameter
                                            undefined, and use the VOPERAND
                                            subroutine to determine the guest
                                            operand address. For these entry
                                            points, VOPGA64R and VOPGA64S are
                                            used both to MODIFY the local
                                            copy of the input R0 parameter
                                            (to indicate how VOPERAND has
                                            represented the guest operand
                                            address) and to map the copy of
                                            input R0 parameter (as modified
                                            by VOPERAND) saved in the VOPARMS
                                            / VOPINFLG fields. Needless to
                                            say, this is all much more
                                            confusing than it ought to be,
                                            but further cleanup is left for
                                            later, and should include an
                                            overhaul of HCPVINOP - HCPVOP
                                            interfaces.
              .... 1...      VOPREGW        X'08' Wrap register to R0 when
                                            RX=15
              .... .11.      VOPWRP64       X'06' 64-bit wrap rule
              .... .1..      VOPWRPD        X'04' Diagnose wrap rule
              .... ..1.      VOPWRP31       X'02' 31-bit wrap rule
              .... ...1      VOPREALA       X'01' Input is guest real address
    0027   39 Bitstring    1 VOPCODE        The forth byte of input parm.
                                            First 4 bit is align code next 4
                                            bit is operand code or AR number
                                            or address space mode
    0028   40 Signed       4 *              Reserved for ESAME gen
    002C   44 Signed       4 VOPSTD (0)     Segment-Table Designation (STD)
    002C   44 Bitstring    1 VOPSTDB0       Byte 0 of STD
    002D   45 Bitstring    1 VOPSTDB1       Byte 1 of STD
    002E   46 Bitstring    1 VOPSTDB2       Byte 2 of STD
    002F   47 Bitstring    1 VOPSTDB3       Byte 3 of STD
    0030   48 Dbl-Word     8 VOPGADDR (0)   Input address (64-bit)
    0030   48 Signed       4 VOPHADDR       High half of large input address
    0034   52 Signed       4 VOPADDR        Low half (31-bit) input address
         Longer data moves can be handled in up to three sections. The host
         logical address for each section, as well as the length of each
         section, are saved in this small array with 3 entries. Each entry has a
         64-bit host logical address field (VOPGHLAD), the right half of which
         is mapped as a 31-bit host logical address field (VOPHLADR), and a
         length field (VOPHLLEN). The same names are used for all three entries,
         the table is accessed using an index register containing a multiple of
         the entry length (VOPHLAEL).
    0038   56 Dbl-Word     8 VOPHLAEN (0)   A host logical address section
                                            entry
    0038   56 Signed       4 *              (high half of VOPGHVA1)
    003C   60 Address      4 VOPHLADR       Host logical address of the first
                                            section (31-bit)
    0040   64 Signed       4 VOPHLLEN       Length of the first section -1
    0044   68 Signed       4 *              reserved for IBM use
              00000010       VOPHLAEL       *-VOPHLAEN Length of one entry
    0048   72 Bitstring    1 * (32)         Space for two more entries
    0068  104 Dbl-Word     8 VOPIASIT       I-ASIT for the guest-absolute
                                            address space to be accessed.
    0070  112 Signed       4 VOPEXADR       Address of the extended parameter
                                            list, if one exists.
    0074  116 Signed       4 VOPEXFLG (0)   Flag field from the extended
                                            parameter list.
    0074  116 Bitstring    1 VOPEXFB0       Byte 0 of VOPEXFLG
              1... ....      VOPBAUTO       VNPBAUTO BUFADDR=AUTO was
                                            specified
              .1.. ....      VOPLNFLD       VNPLNFLD The LENFIELD operand was
                                            specified, and the length to
                                            fetch is found in the halfword
                                            whose displacement is in
                                            VOPLENFD.
              ..1. ....      VOPMXLEN       VNPMXLEN The MAXLEN operand was
                                            specified, and the maximum length
                                            to fetch is in VOPMAXLN.
    0075  117 Bitstring    1 VOPEXFB1       Byte 1 of VOPEXFLG
    0076  118 Bitstring    1 VOPEXFB2       Byte 2 of VOPEXFLG
    0077  119 Bitstring    1 VOPEXFB3       Byte 3 of VOPEXFLG
    0078  120 Signed       4 VOPLENFD       Displacement of the field from
                                            which to fetch the parameter list
                                            length.
    007C  124 Signed       4 VOPLUNIT       Units in which the length to
                                            fetch is expressed.
    0080  128 Address      2 VOPMAXLN       Maximum length to fetch, in DWs.
    0082  130 Signed       2 VOPLENTH       Length fetched from LENFIELD
    0084  132 Signed       4 *              reserved for IBM use
    0088  136 Dbl-Word     8 VOPPSW         Guest PSW (bits 0-64) HCPVOP only
                                            uses VOPPSW to save the bits in
                                            the beginning of the guest's PSW.
                                            It has no need for the
                                            instruction address. So, VOPPSW
                                            is large enough to save the
                                            entire PSW for a 390 mode guest
                                            or the first half of an ESAME
                                            mode guest.
              00000090       VOPBKLEN       *-VOPBK Define the length of the
                                            DSECT
              00000012       VOPBKSIZ       (VOPBKLEN+7)/8 Size of VOPBK in
                                            doublewords

#### VOPBK Storage Layout

    *** VOPBK - HCPVOP simulation fetch/store work area
    *
    *     +------+------+------+------+---------------------------+
    *   0 |:FLAG0|:FLAG1|:PURGE|VOPAR |///////////////////////////|
    *     +------+------+------+------+---------------------------+
    *   8 |         VOPHWRAP          |         VOPAWRAP          |
    *     +---------------------------+---------------------------+
    *  10 |         VOPAGSIZ          |         VOPASUBR          |
    *     +---------------------------+---------------------------+
    *  18 |         VOPBUFAD          |         VOPGRHL           |
    *     +---------------------------+-------------+-------------+
    *  20 |         VOPIPLCK          |   VOPLEN    | 26
    *     +---------------------------+-------------+
    *
    *** VOPBK - HCPVOP simulation fetch/store work area

    *** Overlay for VOPLEN in VOPBK
    *
    *                                 +------+------+------+------+
    *  20 ...                      24 |//////|:INFL0|:INFLG|:CODE |
    *     +---------------------------+------+------+------+------+
    *  28 |///////////////////////////|:STDB0|:STDB1|:STDB2|:STDB3|
    *     +---------------------------+------+------+------+------+
    *  30 |         VOPHADDR          |         VOPADDR           |
    *     +---------------------------+---------------------------+
    *  38 |///////////////////////////|         VOPHLADR          |
    *     +---------------------------+---------------------------+
    *  40 |         VOPHLLEN          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  48 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  68 |                       VOPIASIT                        |
    *     +---------------------------+------+------+------+------+
    *  70 |         VOPEXADR          |:EXFB0|:EXFB1|:EXFB2|:EXFB3|
    *     +---------------------------+------+------+------+------+
    *  78 |         VOPLENFD          |         VOPLUNIT          |
    *     +-------------+-------------+---------------------------+
    *  80 |  VOPMAXLN   |  VOPLENTH   |///////////////////////////|
    *     +-------------+-------------+---------------------------+
    *  88 |                        VOPPSW                         |
    *     +-------------------------------------------------------+
    *  90
    *
    *** Overlay for VOPLEN in VOPBK

#### VOPBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    VOPADDR        0034
    VOPAGSIZ       0010
    VOPALETS       0025 04
    VOPAMO64       0001 40
    VOPAR          0003
    VOPARMS        0024
    VOPASITS       0025 02
    VOPASUBR       0014
    VOPAWRAP       000C
    VOPBAUTO       0074 80
    VOPBKLEN       0088 00000090
    VOPBKSIZ       0088 00000012
    VOPBUFAD       0018
    VOPBUFSP       0000 80
    VOPCODE        0027
    VOPEXADR       0070
    VOPEXFB0       0074
    VOPEXFB1       0075
    VOPEXFB2       0076
    VOPEXFB3       0077
    VOPEXFLG       0074
    VOPEXPRM       0025 08
    VOPFLAG        0000
    VOPFLAG0       0000
    VOPFLAG1       0001
    VOPFONLY       0000 10
    VOPGADDR       0030
    VOPGAM64       0001 80
    VOPGA64R       0026 20
    VOPGA64S       0026 10
    VOPGOTBF       0000 04
    VOPGRHL        001C
    VOPHADDR       0030
    VOPHLADR       003C
    VOPHLAEL       0044 00000010
    VOPHLAEN       0038
    VOPHLLEN       0040
    VOPHWRAP       0008
    VOPIASIT       0068
    VOPINFLG       0026
    VOPINFL0       0025
    VOPIPLCK       0020
    VOPLAP         0026 80
    VOPLAPFO       0026 80
    VOPLEN         0024
    VOPLENFD       0078
    VOPLENTH       0082
    VOPLNFLD       0074 40
    VOPLUNIT       007C
    VOPMAXLN       0080
    VOPMCRCD       0025 01
    VOPMXLEN       0074 20
    VOPNXTMV       0000 08
    VOPPROT        0026 40
    VOPPSW         0088
    VOPPURGE       0002
    VOPREALA       0026 01
    VOPREGW        0026 08
    VOPRWERR       0000 40
    VOPSTD         002C
    VOPSTDB0       002C
    VOPSTDB1       002D
    VOPSTDB2       002E
    VOPSTDB3       002F
    VOPSTLOG       0000 20
    VOPWRPD        0026 04
    VOPWRP31       0026 02
    VOPWRP64       0026 06

This information is based on z/VM V4R4.0. Last updated on 29 Jul 2003 at 16:34:51 EDT.
Copyright IBM Corporation, 1990, 2003