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 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
Copyright IBM Corporation, 1990, 2001