Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only.

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 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 Is 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. 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. 00000009 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 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 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 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 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)| 9
*     +------+
*
*** 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 |: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 |         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

(contains links to field and bit definitions)
Symbol         Dspl Value
-------------- ---- -----

ASRATYPE 0000

ASRBKHDR 0000 00000000

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

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

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 0007 00000007

ASRLTRGR 0007

ASRLTRIA 0008

ASRMSTON 0000 0000000B

ASRNLOCZ 0007 00000007

ASRNOLOC 0000 0000000D

ASRNPRMZ 0007 00000007

ASRSPNLK 0000 00000003

ASRSPNZ 0007 00000009

ASRSQANC 0009

ASRSUCCD 000A 0000000A

ASRSYMLK 0000 00000002

ASRSYMZ 0009 0000000B

ASRTFLGS 0006

ASRUNUGZ 0007 00000009

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

ASRVLOPD 0007 00000008

ASRVLOPL 0007 00000007

ASRVLOPR 0007

ASRVLSRC 0008 00000007

ASRVMDBK 0002

ASRVOGRN 0008

ASRVOLOC 0008

ASRVOPGZ 0008 00000009

ASRVOPSZ 0008 0000000A

ASRVOPXZ 0008 0000000C

ASRVOXVL 0008

ASRVSCCZ 0007 00000007

ASRVSGRN 0007

ASRVSGRZ 0007 00000008

ASRVSLCZ 0009 0000000A

ASRVSLEN 0009

ASRVSLOC 0007


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 11:41:10 EDT.
Copyright IBM Corporation, 1990, 1999