|
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' VOPBUFSP Caller has
specified the .buffer to use.
.1.. .... VOPRWERR X'40' VOPRWERR Indicate register
wrap error
..1. .... VOPSTLOG X'20' VOPSTLOG Indicate request
store into guest logical address.
...1 .... VOPFONLY X'10' VOPFONLY Indicate this
address space is read only.
.... 1... VOPNXTMV X'08' VOPNXTMV More than one
section of data will be moved.
.... .1.. VOPGOTBF X'04' VOPGOTBF HCPVOP got free
storage for the output data
buffer. The address of the buffer
is in VOPBUFAD.
.... ...1 VOPNRLLK X'01' VOPNRLLK Skip releasing
IPTE lock
0001 1 Bitstring 1 VOPFLAG1 Additional HCPVOP flags:
1... .... VOPGAM64 X'80' VOPGAM64 HCPVOP may need to
execute in 64-bit addressing mode
to access zArch mode guest
storage as host logical storage.
.1.. .... VOPAMO64 X'40' VOPAMO64 HCPVOP is
currently executing in 64-bit
addressing mode to handle a V=V
zArch mode guest guest.
..1. .... VOPEXTIN X'20' VOPEXTIN Executing inside
FETCH/STORE exit
...1 .... VOPWAS64 X'10' VOPWAS64 Flag to indicate
whether we were 1, or were not 0,
in 64 bit addressing mode before
changing states
.... 1... VOPFETCH X'08' VOPFETCH VOP was called to
perform a fetch
.... .1.. VOPSTORE X'04' VOPSTORE VOP was called to
perform a store
.... ..1. VOPIEP X'02' VOPIEP VOP was called to
perform an I-fetch with IEP
installed and enabled
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 Dbl-Word 8 VOPGWRAP Mask for address wrap (64-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' VOPLAP Apply low address
protection
1... .... VOPLAPFO X'80' VOPLAPFO Apply low address
protection
.1.. .... VOPPROT X'40' VOPPROT Apply key
protection
..1. .... VOPGA64R X'20' VOPGA64R 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' VOPGA64S 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' VOPREGW Wrap register to R0
when RX=15
.... .11. VOPWRP64 X'06' VOPWRP64 64-bit wrap rule
.... .1.. VOPWRPD X'04' VOPWRPD Diagnose wrap rule
.... ..1. VOPWRP31 X'02' VOPWRP31 31-bit wrap rule
.... ...1 VOPREALA X'01' VOPREALA Input is guest
real address
.... ...1 VOPGSTAR X'01' VOPGSTAR Input is guest AR
number
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 Dbl-Word 8 VOPASCE (0) Address-Space-Control Element
(ASCE), zArch guest
0028 40 Signed 4 VOPASCEH High half of ASCE, zArch guest
Reserved, 390 guest
002C 44 Signed 4 VOPASCEL (0) Low half of ASCE, zArch guest
002C 44 Bitstring 1 VOPASCB4 Byte 4 of ASCE, zArch guest
002D 45 Bitstring 1 VOPASCB5 Byte 5 of ASCE, zArch guest
002E 46 Bitstring 1 VOPASCB6 Byte 6 of ASCE, zArch guest
002F 47 Bitstring 1 VOPASCB7 Byte 7 of ASCE, zArch guest
0028 40 Signed 4 * Reserved, 390 guest
002C 44 Signed 4 VOPSTD (0) Segment-Table Designation (STD),
390 guest
002C 44 Bitstring 1 VOPSTDB0 Byte 0 of STD, 390 guest
002D 45 Bitstring 1 VOPSTDB1 Byte 1 of STD, 390 guest
002E 46 Bitstring 1 VOPSTDB2 Byte 2 of STD, 390 guest
002F 47 Bitstring 1 VOPSTDB3 Byte 3 of STD, 390 guest
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 Dbl-Word 8 VOPGHLAD (0) Host logical address of the first
section (64-bit)
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 VOPBAUTO BUFADDR=AUTO
was specified
.1.. .... VOPLNFLD VNPLNFLD VOPLNFLD The LENFIELD
operand was specified, and the
length to fetch is found in the
halfword whose displacement is in
VOPLENFD.
..1. .... VOPMXLEN VNPMXLEN VOPMXLEN 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 zArch
mode guest.
00000090 VOPBKLEN *-VOPBK Define the length of the
DSECT
00000012 VOPBKSIZ (VOPBKLEN+7)/8 Size of VOPBK in
doublewords
| |