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

ASRBK

Prolog  

Control Block Contents  
   ASRBK DSECT

Storage Layout  

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
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
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
          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
          00000004       ASRCLOSH       4 Bits to shift ASRVLOPR right to
                                        get an index representing the
                                        operand location.
          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
-------------- ---- -----
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

This information is based on z/VM V4R2.0. Last updated on 30 Oct 2001 at 15:38:02 EDT.
Copyright IBM Corporation, 1990, 2001