|
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM. |
ASRBK
Control Block Contents
ASRBK DSECT
Cross Reference (Contains links to field and bit definitions)
ASRBK Prolog
Name : HCPASRBK
Description: Assert monitor call parameter mapping
DSECT : ASRBK
Function : This copy file contains a DSECT used to map the
parameter list for the monitor call instruction
generated by the HCPASERT macro.
Located by : The first operand to the monitor call instruction,
the monitor code, is the host-logical address of the
parameter list.
Created by : HCPASERT macro.
Deleted by : The parameter list is static data.
Notes :
In order to minimize the amount of storage used for the *
monitor call parameter list, its form varies according to *
what assertion is being made and possibly due to what *
operands are specified. The following DSECT consequently *
contains many ORGs to remap sections of the parameter *
list, and labels for rebasing after examining a variable *
portion of the parameter list. *
*
All "addresses" in this parameter list are really S-type *
constants, which provide a base register and displacement *
that allows the calculation of the address. This *
technique is used to avoid run-time code to generate an *
address, and to save space in the parameter list.
ASRBK Control Block Content
ASRBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure ASRBK Assert monitor call parameter
mapping
The following area maps the parameter list header, which is the same
for all assertion types. Note, however, that not all fields are
significant for all assertion types. When this is the case, it is
noted.
00000000 ASRBKHDR * Mapping for HCPASERT parameter
list
0000 0 Bitstring 1 ASRATYPE Code indicating type of assertion
00000001 ASRDFRLK 1 A defer lock is held
00000002 ASRSYMLK 2 A symbolic lock is held
00000003 ASRSPNLK 3 A spin lock is held
00000004 ASRIOLK 4 An I/O lock is held
00000005 ASRCB 5 A control block is addressed by
a GR
00000006 ASRUNUSD 6 Certain general registers are
unused
00000007 ASRCFM 7 Console-function mode is in
effect
00000008 ASRISTRM 8 Instruction-stream
serialization is in effect.
00000009 ASRCFMIS 9 Either console-function mode or
istream serialization is in
effect.
0000000A ASRDSPCH 10 A specified user is dispatched
0000000B ASRMSTON 11 Master-only serialization used
0000000C ASRINIT 12 System initialization is
active
0000000D ASRNOLOC 13 No loss-of-control is
permitted
0000000E ASRLSTRN 14 The "last translated"
serialization is being used.
0000000F ASRVALUE 15 Perform a value comparison
00000010 ASRCODE 16 Execute special checking code
00000011 ASRCUSTM 17 Perform a customized assertion
check
00000012 ASRGROUP 18 Assertions are being grouped
00000013 ASRCP390 19 CP ESA/390 nucleus is running
00000014 ASRCPME 20 CP ESAME nucleus is running
00000015 ASRAMO31 21 CP is running in 31-bit
(basic) addressing mode
00000016 ASRAMO64 22 CP is running in 64-bit
(extended) addressing mode
00000000 *
0001 1 Bitstring 1 ASRGFLGS General flags
1... .... ASRGFGRP X'80' This assertion is part of a
group, and is "chained" to
another set of parameters. This
bit will never be set with
ASRGFNAB.
.1.. .... ASRGFSAB X'40' If this assertion is not
true, a soft abend is desired
instead of hard.
..1. .... ASRGFNAB X'20' If this assertion is not
true, no abend is desired. This
bit will never be set with
ASRGFSAB. If either ASRGFSAB or
ASRGFNAB is set, ASRFAILR may
contain the address of a label to
branch to in case of a failure.
0002 2 Address 2 ASRVMDBK Address of the VMDBK to which the
assertion applies. This field is
not used for all assertions.
0004 4 Address 2 ASRFAILR If ASRGFSAB or ASRGFNAB is set,
then a non-zero value in this
field is the address to which
control should be returned when
an untrue assertion is made.
0006 6 Bitstring 1 ASRTFLGS Flags that are unique for each
assertion type. The bits are
assigned with the specific
assertion parameters below.
1... .... ASRLEXCL X'80' Lock is held exclusive
.1.. .... ASRLSHR X'40' Lock is held shared If both
ASRLEXCL and ASRLSHR are set,
then lock may be held either
exclusive or shared.
1... .... ASRBLBEG X'80' Beginning of block
.1.. .... ASRBLEND X'40' End of block
1... .... ASRVLSLC X'80' Source for comparisons is a
location in storage.
.1.. .... ASRVLSGR X'40' Source for comparisons is a
general register.
..1. .... ASRVLSGG X'20' Source for comparisons is a
large general register.
...1 .... ASRVLSCC X'10' Source for comparisons is
the condition code.
.... ...1 ASRVLSGN X'01' Signed comparisons should
be performed instead of unsigned,
the default.
.... ...1 ASRCSFPM X'01' A parameter was specified
via PARM=
00000007 ASRVARST * Start of variable portion of
plist
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRDFRLK, asserting that a defer lock is held. This
is the sort of lock managed by HCPLCK, whose lockword is mapped by the
LKWRD DSECT.
0007 7 Address 2 ASRLKWRD Address of lockword
00000009 ASRDFRZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRSYMLK, asserting that a symbolic lock is held.
This is the sort of lock managed by HCPLOC, whose lockword is mapped by
the LCKBK DSECT.
0007 7 Address 2 * Address of symbol (use ASRLKWRD)
0009 9 Address 2 ASRSQANC If non-zero, address of symbolic
lock private queue anchor. If
zero, the global resource queue
is used.
0000000B ASRSYMZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRSPNLK, asserting that a spin lock is held. This is
the sort of lock managed by the HCPLKxxx and HCPULxxx macros, whose
lockword is mapped by the SYNBK DSECT.
0007 7 Address 2 * Address of lockword (use
ASRLKWRD)
00000009 ASRSPNZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRIOLK, asserting that an I/O lock is held. This is
the sort of lock managed by HCPIOL, lockword is mapped by the LKIWD
DSECT.
0007 7 Address 2 * Address of lockword (use
ASRLKWRD)
00000009 ASRIOLZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRCB, asserting that a particular general register
contains the address of a specific kind of control block. For control
blocks that are defined in the CBITABLE control block, and are thus
known by the IDOFFSET macro, we identify the control block by storing
the displacement returned by IDOFFSET. We accept only a limited number
of other, special, control blocks, and to those we assign specific
codes.
0006 6 Address 1 ASRCBSPC Code indicating type of special
CB
00000000 ASRCBNTS 0 ASRCBOFF contains CBITABLE
offset
00000001 ASRCBVMD 1 VMDBK
00000002 ASRCBCPE 2 CPEBK
00000003 ASRCBSAV 3 SAVBK
00000004 ASRCBPGM 4 PGMBK
00000005 ASRCBSYS 5 SYSCM
00000006 ASRCBRDV 6 RDEV
00000007 ASRCBSNT 7 SNTBK
00000000 *
0007 7 Address 2 ASRCBOFF Offset returned by IDOFFSET macro
This field is significant only
when ASRCBSPC is zero.
0009 9 Address 1 ASRCBGR Bits 4-7 are the general register
number of the GR which contains
the address.
0000000A ASRCBZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRUNUSD, asserting that a particular set of general
registers is unused.
0007 7 Bitstring 2 ASRGRMSK Mask of unused general registers
If bit n of the mask is set, then
it is being asserted that GR n is
not being used.
0009 9 Bitstring 2 ASRGGRMK Mask of unused large general
registers: If bit n of the mask
is set, then it is being asserted
that large GR n is not being
used.
0000000B ASRUNUGZ * End of parameter list
When ASRATYPE contains any of the following, there is no more parameter
list data:
ASRCFM - Console-function mode ASRISTRM - Instruction stream ASRCFMIS -
Console-function mode or instruction stream ASRDSPCH - Dispatched
ASRMSTON - Master Only ASRINIT - Initialization ASRGROUP - End of
assertion group ASRCP390 - CP ESA/390 nucleus is running ASRCPME - CP
ESAME nucleus is running ASRAMO31 - CP is running in 31-bit (basic)
addressing mode ASRAMO64 - CP is running in 64-bit (extended)
addressing mode
00000007 ASRNPRMZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRNOLOC, asserting either the beginning or the end
of a block of code that is not permitted to lose control.
00000007 ASRNLOCZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRLSTRN, asserting either the beginning or the end
of a block of code that is depending on the serialization mechanism of
"last translated".
00000007 ASRLTREZ * End of END parameter list
0007 7 Address 1 ASRLTRGR Bits 4-7 are the general register
number of the GR which contains
the result of the last
translation. Present only at the
beginning of a block.
0008 8 Address 2 ASRLTRIA The address of the i-ASIT used
for the last translation. Present
only at the beginning of a block.
0000000A ASRLTRBZ * End of BEGIN parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRVALUE, asserting that a value from storage, from a
general register, or from the condition code, relates to one or more
other values in certain ways. The size of the remainder of this plist
varies, depending on how many values to compare with are specified.
00000007 ASRVLSRC * Start of different mappings for
difference source value types.
The mapping for when the source is a storage location:
0007 7 Address 2 ASRVSLOC Address of source value
0009 9 Address 1 ASRVSLEN Length of source value, in bytes
0000000A ASRVSLCZ * End of mapping for this source
The mapping for when the source is a general register:
0007 7 Address 1 ASRVSGRN Bits 4-7 are the number of the
general register.
00000008 ASRVSGRZ * End of mapping for this source
The mapping for when the source is a large general register:
0007 7 Address 1 ASRVSGGN Bits 4-7 are the number of the
general register.
00000008 ASRVSGGZ * End of mapping for this source
The mapping for when the source is the condition code:
No further parameters exist for the condition code source.
00000007 ASRVSCCZ * End of mapping for this source
00000007 ASRVLOPL * Start of mapping for the
operands
0007 7 Address 1 ASRVLOPR Code indicating what comparitor
is to be used.
0000000F ASRVLCMP X'0F' Bits of ASRVLOPR containing
comparitor code.
00000000 ASRVLCEQ 0 EQ - equality
00000001 ASRVLCNE 1 NE - inequality
00000002 ASRVLCLT 2 LT - less-than
00000003 ASRVLCLE 3 LE - less-than-or-equal
00000004 ASRVLCGT 4 GT - greater-than
00000005 ASRVLCGE 5 GE - greater-than-or-equal
00000006 ASRVLCON 6 ON - selected bits are set
00000007 ASRVLCOF 7 OFF - selected bits are not set
00000000 *
000000F0 ASRVLOPS X'F0' Bits of ASRVLOPR containing
operand source code.
00000000 ASRVLEND 0*X'10' End of operand list
00000010 ASRVLOLC 1*X'10' Operand is in storage
00000020 ASRVLOGR 2*X'10' Operand is in a general
register
00000030 ASRVLOGG 3*X'10' Operand is in a large
general register
00000040 ASRVLOXP 4*X'10' Operand is an absolute
expression
00000000 *
00000004 ASRCLOSH 4 Bits to shift ASRVLOPR right to
get an index representing the
operand location.
00000000 *
00000008 ASRVLOPD * Start of different mappings for
difference operand value types.
The mapping for when the operand is a storage location:
0008 8 Address 2 ASRVOLOC Address of operand value
0000000A ASRVOPSZ * End of parameter list
The mapping for when the operand is a general register:
0008 8 Address 1 ASRVOGRN Bits 4-7 are the number of the
general register.
00000009 ASRVOPGZ * End of parameter list
The mapping for when the operand is a large general register:
0008 8 Address 1 ASRVOGGN Bits 4-7 are the number of the
general register.
00000009 ASRVOGGZ * End of parameter list
The mapping for when the operand is an absolute expression:
0008 8 Address 4 ASRVOXVL Value of absolute expression
0000000C ASRVOPXZ * End of parameter list
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRCODE, asserting something which special-case code
has been written to test.
0007 7 Address 2 ASRCDSRT Address of special-case code
00000009 ASRCODEZ * End of parameter list
Define labels to branch to when returning from a CODE block.
000A 10 Signed 2 ASRCDEXT (0) Base value for USING
0000000A ASRSUCCD * Branch here to succeed
000A 10 Bitstring 1 * (8) Separation between CDSUCCES and
CDFAILUR in HCPASR. See code in
HCPASRCK for how this is used.
00000012 ASRFAIL * Branch here to fail
The following area maps the rest of the parameter list for when
ASRATYPE contains ASRCUSTM, asserting something for which a customized
checking routine has been added to the monitor call processing routine,
HCPASR. The TYPE is intended to be the number of the custom check,
permitting several such checks. The BEGIN and END parameters are
accepted in case the custom check is the type declaring a beginning and
an end. The PARM value can pass anything to the checking routine.
0007 7 Address 1 ASRCSTYP Type code. Intended to be
ascending number declaring which
custom check should be performed.
00000008 ASRCSNPZ * End of parameter list if no
parm
0008 8 Address 2 ASRCSPRM Parameter, to be used however the
customized checking code wants to
use it.
0000000A ASRCSHPZ * End of parameter list if parm
ASRBK Storage Layout
*** ASRBK - Assert monitor call parameter mapping
*
* +------+------+-------------+-------------+------+
* 0 |:ATYPE|:GFLGS| ASRVMDBK | ASRFAILR |:TFLGS| 7
* +------+------+-------------+-------------+------+
*
*** ASRBK - Assert monitor call parameter mapping
*** Overlay for ASRVARST in ASRBK
*
* +------+
* ... 7 |(007)-|
* +------+-----------------------------------------+------+
* 8 |-(007)| 9
* +------+
*
*** Overlay for ASRVARST in ASRBK
*** Overlay for ASRVARST in ASRBK
*
* +------+
* ... 7 |//////|
* +------+-------------+---------------------------+------+
* 8 |//////| ASRSQANC | B
* +------+-------------+
*
*** Overlay for ASRVARST in ASRBK
*** Overlay for ASRVARST in ASRBK
*
* +------+
* ... 7 |//////|
* +------+-----------------------------------------+------+
* 8 |//////| 9
* +------+
*
*** Overlay for ASRVARST in ASRBK
*** Overlay for ASRVARST in ASRBK
*
* +------+
* ... 7 |//////|
* +------+-----------------------------------------+------+
* 8 |//////| 9
* +------+
*
*** Overlay for ASRVARST in ASRBK
*** Overlay for ASRTFLGS in ASRBK
*
* +------+------+
* 0 ... 6 |:CBSPC|(007)-|
* +------+------+---------------------------+------+------+
* 8 |-(007)|:CBGR | A
* +------+------+
*
*** Overlay for ASRTFLGS in ASRBK
*** Overlay for ASRVARST in ASRBK
*
* +------+
* ... 7 |(007)-|
* +------+-------------+---------------------------+------+
* 8 |-(007)| ASRGGRMK | B
* +------+-------------+
*
*** Overlay for ASRVARST in ASRBK
*** Overlay for ASRVARST in ASRBK
*
* +------+
* 0 ... 7 |:LTRGR|
* +-------------+----------------------------------+------+
* 8 | ASRLTRIA | A
* +-------------+
*
*** Overlay for ASRVARST in ASRBK
*** Overlay for ASRVLSRC in ASRBK
*
* +------+
* ... 7 |(007)-|
* +------+------+----------------------------------+------+
* 8 |-(007)|:VSLEN| A
* +------+------+
*
*** Overlay for ASRVLSRC in ASRBK
*** Overlay for ASRVLSRC in ASRBK
*
* +------+
* 0 ... 7 |:VSGRN|
* +------+
* 8
*
*** Overlay for ASRVLSRC in ASRBK
*** Overlay for ASRVLSRC in ASRBK
*
* +------+
* 0 ... 7 |:VSGGN|
* +------+
* 8
*
*** Overlay for ASRVLSRC in ASRBK
*** Overlay for ASRVLSRC in ASRBK
*
* +------+
* 0 ... 7 |:VLOPR|
* +------+
* 8
*
*** Overlay for ASRVLSRC in ASRBK
*** Overlay for ASRVLOPD in ASRBK
*
* +-------------+
* 8 | ASRVOLOC | A
* +-------------+
*
*** Overlay for ASRVLOPD in ASRBK
*** Overlay for ASRVLOPD in ASRBK
*
* +------+
* 8 |:VOGRN| 9
* +------+
*
*** Overlay for ASRVLOPD in ASRBK
*** Overlay for ASRVLOPD in ASRBK
*
* +------+
* 8 |:VOGGN| 9
* +------+
*
*** Overlay for ASRVLOPD in ASRBK
*** Overlay for ASRVLOPD in ASRBK
*
* +---------------------------+
* 8 | ASRVOXVL | C
* +---------------------------+
*
*** Overlay for ASRVLOPD in ASRBK
*** Overlay for ASRVARST in ASRBK
*
* +------+
* ... 7 |(007)-|
* +------+------+----------------------------------+------+
* 8 |-(007)|//////|/////////////////////////////////////////|
* +------+------+-----------------------------------------+
* 10 |/////////////| 12
* +-------------+
*
*** Overlay for ASRVARST in ASRBK
*** Overlay for ASRVARST in ASRBK
*
* +------+
* 0 ... 7 |:CSTYP|
* +-------------+----------------------------------+------+
* 8 | ASRCSPRM | A
* +-------------+
*
*** Overlay for ASRVARST in ASRBK
ASRBK Cross Reference
Symbol Dspl Value -------------- ---- ----- * 0000 00000000 * 0006 00000000 * 0007 00000000 * 0007 00000000 * 0007 00000000 ASRAMO31 0000 00000015 ASRAMO64 0000 00000016 ASRATYPE 0000 ASRBKHDR 0000 00000000 ASRBLBEG 0006 80 ASRBLEND 0006 40 ASRCB 0000 00000005 ASRCBCPE 0006 00000002 ASRCBGR 0009 ASRCBNTS 0006 00000000 ASRCBOFF 0007 ASRCBPGM 0006 00000004 ASRCBRDV 0006 00000006 ASRCBSAV 0006 00000003 ASRCBSNT 0006 00000007 ASRCBSPC 0006 ASRCBSYS 0006 00000005 ASRCBVMD 0006 00000001 ASRCBZ 0009 0000000A ASRCDEXT 000A ASRCDSRT 0007 ASRCFM 0000 00000007 ASRCFMIS 0000 00000009 ASRCLOSH 0007 00000004 ASRCODE 0000 00000010 ASRCODEZ 0007 00000009 ASRCPME 0000 00000014 ASRCP390 0000 00000013 ASRCSFPM 0006 01 ASRCSHPZ 0008 0000000A ASRCSNPZ 0007 00000008 ASRCSPRM 0008 ASRCSTYP 0007 ASRCUSTM 0000 00000011 ASRDFRLK 0000 00000001 ASRDFRZ 0007 00000009 ASRDSPCH 0000 0000000A ASRFAIL 000A 00000012 ASRFAILR 0004 ASRGFGRP 0001 80 ASRGFLGS 0001 ASRGFNAB 0001 20 ASRGFSAB 0001 40 ASRGGRMK 0009 ASRGRMSK 0007 ASRGROUP 0000 00000012 ASRINIT 0000 0000000C ASRIOLK 0000 00000004 ASRIOLZ 0007 00000009 ASRISTRM 0000 00000008 ASRLEXCL 0006 80 ASRLKWRD 0007 ASRLSHR 0006 40 ASRLSTRN 0000 0000000E ASRLTRBZ 0008 0000000A ASRLTREZ 0009 00000007 ASRLTRGR 0007 ASRLTRIA 0008 ASRMSTON 0000 0000000B ASRNLOCZ 0009 00000007 ASRNOLOC 0000 0000000D ASRNPRMZ 0009 00000007 ASRSPNLK 0000 00000003 ASRSPNZ 0007 00000009 ASRSQANC 0009 ASRSUCCD 000A 0000000A ASRSYMLK 0000 00000002 ASRSYMZ 0009 0000000B ASRTFLGS 0006 ASRUNUGZ 0009 0000000B ASRUNUSD 0000 00000006 ASRVALUE 0000 0000000F ASRVARST 0006 00000007 ASRVLCEQ 0007 00000000 ASRVLCGE 0007 00000005 ASRVLCGT 0007 00000004 ASRVLCLE 0007 00000003 ASRVLCLT 0007 00000002 ASRVLCMP 0007 0000000F ASRVLCNE 0007 00000001 ASRVLCOF 0007 00000007 ASRVLCON 0007 00000006 ASRVLEND 0007 00000000 ASRVLOGG 0007 00000030 ASRVLOGR 0007 00000020 ASRVLOLC 0007 00000010 ASRVLOPD 0007 00000008 ASRVLOPL 0007 00000007 ASRVLOPR 0007 ASRVLOPS 0007 000000F0 ASRVLOXP 0007 00000040 ASRVLSCC 0006 10 ASRVLSGG 0006 20 ASRVLSGN 0006 01 ASRVLSGR 0006 40 ASRVLSLC 0006 80 ASRVLSRC 0008 00000007 ASRVMDBK 0002 ASRVOGGN 0008 ASRVOGGZ 0008 00000009 ASRVOGRN 0008 ASRVOLOC 0008 ASRVOPGZ 0008 00000009 ASRVOPSZ 0008 0000000A ASRVOPXZ 0008 0000000C ASRVOXVL 0008 ASRVSCCZ 0007 00000007 ASRVSGGN 0007 ASRVSGGZ 0007 00000008 ASRVSGRN 0007 ASRVSGRZ 0007 00000008 ASRVSLCZ 0009 0000000A ASRVSLEN 0009 ASRVSLOC 0007
Last updated on 6 Jun 2001 at 11:11:06 EDT.
Copyright IBM Corporation, 1990, 2001