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
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
Last updated on 3 Aug 1999 at 11:41:10 EDT.
Copyright IBM Corporation, 1990, 1999