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

#### DGNBK

Prolog

Control Block Contents
DGNBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### DGNBK Prolog

     NAME       : HCPDGNBK
     DESCRIPTION: Diagnose Table Entry Block
     DSECT      : DGNBK
     FUNCTION   : The Diagnose Table Entry Blocks are used to control and
                  to locate the modules that are called when a virtual
                  machine has executed a diagnose instruction.
     LOCATED BY : Diagnose radix tree, anchored in the Diagnose Control
                  Header, which is pointed to by SYSDIAGS in SYSCM.
                  DGNOVRDE if an MODIFY operation has been done but
                  no MODIFY RESET has been done.
     CREATED BY : HCPDDG   as a result of DEFINE DIAGNOSE command or
                  configuration statement.
                  HCPHVB   assembly during SYSGEN.
                  HCPHVAAD adds a new DGNBK (created by someone else)
                  to the DGNBK radix tree
                  HCPDDGOV as a result of MODIFY processing
     DELETED BY : None
     REFERENCES : HCPCLASS - Privilege class definitions
                  The DGNBK begins with storage that is mapped by the
                  ICRBK DSECT.  This storage is followed by the real
                  DGNBK fields that define and control the diagnose code.
     SERIALIZED : Changes to the contents of DGNBKs are typically done
                  by diagnose A0 and by User Class Restructure, and
                  under the SYSLCKC4 lock.

#### DGNBK Control Block Content

#### DGNBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      DGNBK          Diagnose Table Entry Block
          These fields map the Indirect Call Request Block.
          These fields must match the analogous fields in the
          ICRBK.  The fields are defined explicitly here in order
          that BLOCKDEF and BLOCKMAP can correctly describe them.
    0000    0 Character    8 DGNEPNAM       Name of the entry routine
    0008    8 Address      4 DGNADDRL       Address of the ICLBK, or 0.
                                            MODIFY RESET will need to clear
                                            this field to zero.
    000C   12 Bitstring    1 DGNATTR        Attributes for HCPCALL
    000D   13 Bitstring    1 *              Reserved
    000E   14 Bitstring    1 *              Reserved
    000F   15 Bitstring    1 *              Reserved
          Thus ends the Indirect Call Request Block fields
           The user fields should remain at the front of the block
    0010   16 Dbl-Word     8 DGNUSRD1       Reserved for non-IBM use
    0018   24 Dbl-Word     8 DGNUSRD2       Reserved for non-IBM use
    0020   32 Signed       4 DGNUSRF1       Reserved for non-IBM use
    0024   36 Signed       4 DGNUSRF2       Reserved for non-IBM use
    0028   40 Signed       2 DGNUSRH1       Reserved for non-IBM use
    002A   42 Signed       2 DGNUSRH2       Reserved for non-IBM use
    002C   44 Bitstring    1 DGNUSRX1       Reserved for non-IBM use
    002D   45 Bitstring    1 DGNUSRX2       Reserved for non-IBM use
    002E   46 Bitstring    1 DGNUSRX3       Reserved for non-IBM use
    002F   47 Bitstring    1 DGNUSRX4       Reserved for non-IBM use
    0030   48 Dbl-Word     8 DGNLOCK (3)    Lock to control updates to this
                                            DGNBK.
    0048   72 Character    8 DGNNAME        Diagnose name: DIAGxxxx
    0050   80 Address      4 DGNADDR        Address of routine. If zero, then
                                            call DGNEPNAM indirectly
    0054   84 Signed       4 DGNCOUNT       Diagnose issued this many times
    0058   88 Signed       8 *              Reserved
    0060   96 Address      4 DGNPUSHD       Address of pushed DGNBK
    0064  100 Address      4 DGNOVRDE       For use by MODIFY and OVERRIDE
    0068  104 Signed       4 DGNCLASS       Diagnose privilege class(es)
    006C  108 Bitstring    1 DGNRATTR       Register number attributes
              1... ....      DGNRXN15       X'80' DGNRXN15 R15 may not be
                                            specified for Rx
              .1.. ....      DGNRYN15       X'40' DGNRYN15 R15 may not be
                                            specified for Ry
              ..1. ....      DGNRNOVL       X'20' DGNRNOVL Rx/Rx+1 may not
                                            overlap Ry/Ry+1
              ...1 ....      DGNRXEVN       X'10' DGNRXEVN Rx must be an even
                                            register
              .... 1...      DGNRYEVN       X'08' DGNRYEVN Ry must be an even
                                            register
              .... .1..      DGNRXNRY       X'04' DGNRXNRY Rx and Ry must be
                                            different
              .... ..1.      DGNRXNY1       X'02' DGNRXNY1 Rx and Ry+1 must
                                            be different
              .... ...1      DGNRYNX1       X'01' DGNRYNX1 Ry and Rx+1 must
                                            be different
    006D  109 Bitstring    1 DGNCATTR       Register content attributes
              1... ....      DGNCRXFW       X'80' DGNCRXFW Rx must be
                                            fullword-aligned
              .1.. ....      DGNCRXDW       X'40' DGNCRXDW Rx must be
                                            doubleword-aligned
    006E  110 Bitstring    1 DGNPATTR       Diagnose parameter attributes
              1... ....      DGNPAR64       X'80' DGNPAR64 Valid in 64-bit
                                            addressing mode. This flag also
                                            causes the handler routine to
                                            receive pointers to longreg
                                            rather than shortreg guest Rx/Ry
                                            register fields.
              .1.. ....      DGNPNO64       X'40' DGNPNO64 Not valid for a
                                            guest in z/Architecture mode
                                            (regardless of addressing mode)
    006F  111 Bitstring    1 *              Reserved
    0070  112 Bitstring    2 DGNCODE        Diagnose code in binary
    0072  114 Signed       2 *              Reserved
    0074  116 Bitstring    1 DGNFLAG        Diagnose flags
              1... ....      DGNANY         X'80' DGNANY Diag has privilege
                                            class 'ANY'
              ..1. ....      DGNVPROT       X'20' DGNVPROT This flag means
                                            that the protect setting
                                            (DGNPROT) of this diag may be
                                            dynamically altered by the
                                            External Security Manager (ESM).
              ...1 ....      DGNPROC        X'10' DGNPROC Indicates that no
                                            call to the ESM will be made in
                                            the diagnose router. This means
                                            that all required security calls
                                            to the ESM must be made by the
                                            diagnose processor. If DGNPROC is
                                            set for one version, then it must
                                            be set for all versions.
              .... 1...      DGNCKRET       X'08' DGNCKRET Check rc from
                                            diagnose processor
              .... .1..      DGNINVXC       X'04' DGNINVXC This diagnose is
                                            prohibited in ESA/XC mode
              .... ..1.      DGNVMAC        X'02' DGNVMAC The MAC setting
                                            (DGNMAC) for this diag may be
                                            dynamically altered by the ESM.
              .... ...1      DGNBYIBM       X'01' DGNBYIBM This is an IBM
                                            diagnose.
    0075  117 Bitstring    1 DGNTCALL       Type of call to diag processor
              1... ....      DGNCALL        X'80' DGNCALL Transfer control
                                            via HCPCALL
              .1.. ....      DGNGOTO        X'40' DGNGOTO Transfer control
                                            via HCPGOTO
              ..1. ....      DGNSTACK       X'20' DGNSTACK Transfer control
                                            via HCPSTKCF
              ...1 ....      DGNLABEL       X'10' DGNLABEL Transfer control
                                            to a label
              .... 1...      DGNICALL       X'08' DGNICALL Transfer via
                                            internal HCPCALL
              .... .1..      DGNFCALL       X'04' DGNFCALL Transfer via
                                            HCPCALL FASTDYN
    0076  118 Bitstring    1 DGNSECUR       Diagnose security flags
              1... ....      DGNAUDIT       X'80' DGNAUDIT Audit diagnose
              .1.. ....      DGNPROT        X'40' DGNPROT Protect diagnose
              ..1. ....      DGNMAC         X'20' DGNMAC Diagnose is to be
                                            Mandatory Access Controlled
    0077  119 Bitstring    1 DGNFLAG1       Diag flags - DGNFLAG extended
              1... ....      DGNINVAR       X'80' DGNINVAR This diagnose is
                                            not allowed in host-Access
                                            Register mode
              .1.. ....      DGNLONGR       X'40' DGNLONGR Callee is LONGREG
              ...1 ....      DGNOVRNO       X'10' DGNOVRNO This diagnose may
                                            not be overridden by the MODIFY
                                            command.
              .... ..1.      DGNENABL       X'02' DGNENABL This diagnose is
                                            ENABLED: if off, guest diag
                                            should get SPECERR
              00000078       DGNBSIZE       *-DGNBK Size of DGNBK in bytes
              0000000F       DGNSIZE        (*-DGNBK+7)/8 Size in double
                                            words
    0068  104 Bitstring    1 DGNCLB0
              1... ....      CLASSA         X'80' CLASSA CLASS A FUNCTIONS
              .1.. ....      CLASSB         X'40' CLASSB CLASS B FUNCTIONS
              ..1. ....      CLASSC         X'20' CLASSC CLASS C FUNCTIONS
              ...1 ....      CLASSD         X'10' CLASSD CLASS D FUNCTIONS
              .... 1...      CLASSE         X'08' CLASSE CLASS E FUNCTIONS
              .... .1..      CLASSF         X'04' CLASSF CLASS F FUNCTIONS
              .... ..1.      CLASSG         X'02' CLASSG CLASS G FUNCTIONS
              .... ...1      CLASSH         X'01' CLASSH CLASS H FUNCTIONS
    0069  105 Bitstring    1 DGNCLB1
              1... ....      CLASSI         X'80' CLASSI CLASS I FUNCTIONS
              .1.. ....      CLASSJ         X'40' CLASSJ CLASS J FUNCTIONS
              ..1. ....      CLASSK         X'20' CLASSK CLASS K FUNCTIONS
              ...1 ....      CLASSL         X'10' CLASSL CLASS L FUNCTIONS
              .... 1...      CLASSM         X'08' CLASSM CLASS M FUNCTIONS
              .... .1..      CLASSN         X'04' CLASSN CLASS N FUNCTIONS
              .... ..1.      CLASSO         X'02' CLASSO CLASS O FUNCTIONS
              .... ...1      CLASSP         X'01' CLASSP CLASS P FUNCTIONS
    006A  106 Bitstring    1 DGNCLB2
              1... ....      CLASSQ         X'80' CLASSQ CLASS Q FUNCTIONS
              .1.. ....      CLASSR         X'40' CLASSR CLASS R FUNCTIONS
              ..1. ....      CLASSS         X'20' CLASSS CLASS S FUNCTIONS
              ...1 ....      CLASST         X'10' CLASST CLASS T FUNCTIONS
              .... 1...      CLASSU         X'08' CLASSU CLASS U FUNCTIONS
              .... .1..      CLASSV         X'04' CLASSV CLASS V FUNCTIONS
              .... ..1.      CLASSW         X'02' CLASSW CLASS W FUNCTIONS
              .... ...1      CLASSX         X'01' CLASSX CLASS X FUNCTIONS
    006B  107 Bitstring    1 DGNCLB3
              1... ....      CLASSY         X'80' CLASSY CLASS Y FUNCTIONS
              .1.. ....      CLASSZ         X'40' CLASSZ CLASS Z FUNCTIONS
              ..1. ....      CLASS1         X'20' CLASS1 CLASS 1 FUNCTIONS
              ...1 ....      CLASS2         X'10' CLASS2 CLASS 2 FUNCTIONS
              .... 1...      CLASS3         X'08' CLASS3 CLASS 3 FUNCTIONS
              .... .1..      CLASS4         X'04' CLASS4 CLASS 4 FUNCTIONS
              .... ..1.      CLASS5         X'02' CLASS5 CLASS 5 FUNCTIONS
              .... ...1      CLASS6         X'01' CLASS6 CLASS 6 FUNCTIONS
                                            CLASSALL DEFINITION
              0DGNCLB3       CLASSALL       X'FFFFFFFF' CLASSALL ALL
                                            FUNCTIONS ALLOWED

#### DGNBK Storage Layout

    *** DGNBK - Diagnose Table Entry Block
    *
    *     +-------------------------------------------------------+
    *   0 |                       DGNEPNAM                        |
    *     +---------------------------+------+------+------+------+
    *   8 |         DGNADDRL          |:ATTR |//////|//////|//////|
    *     +---------------------------+------+------+------+------+
    *  10 |                       DGNUSRD1                        |
    *     +-------------------------------------------------------+
    *  18 |                       DGNUSRD2                        |
    *     +---------------------------+---------------------------+
    *  20 |         DGNUSRF1          |         DGNUSRF2          |
    *     +-------------+-------------+------+------+------+------+
    *  28 |  DGNUSRH1   |  DGNUSRH2   |:USRX1|:USRX2|:USRX3|:USRX4|
    *     +-------------+-------------+------+------+------+------+
    *  30 |                                                       |
    *     =                       DGNLOCK                         =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *  48 |                       DGNNAME                         |
    *     +---------------------------+---------------------------+
    *  50 |         DGNADDR           |         DGNCOUNT          |
    *     +---------------------------+---------------------------+
    *  58 |///////////////////////////////////////////////////////|
    *     +---------------------------+---------------------------+
    *  60 |         DGNPUSHD          |         DGNOVRDE          |
    *     +---------------------------+------+------+------+------+
    *  68 |         DGNCLASS          |:RATTR|:CATTR|:PATTR|//////|
    *     +-------------+-------------+------+------+------+------+
    *  70 |  DGNCODE    |/////////////|:FLAG |:TCALL|:SECUR|:FLAG1|
    *     +-------------+-------------+------+------+------+------+
    *  78
    *
    *** DGNBK - Diagnose Table Entry Block

    *** Overlay for DGNCLASS in DGNBK
    *
    *     +------+------+------+------+
    *  68 |:CLB0 |:CLB1 |:CLB2 |:CLB3 | 6C
    *     +------+------+------+------+
    *
    *** Overlay for DGNCLASS in DGNBK

#### DGNBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    CLASSA         0068 80
    CLASSALL       006B 0DGNCLB3
    CLASSB         0068 40
    CLASSC         0068 20
    CLASSD         0068 10
    CLASSE         0068 08
    CLASSF         0068 04
    CLASSG         0068 02
    CLASSH         0068 01
    CLASSI         0069 80
    CLASSJ         0069 40
    CLASSK         0069 20
    CLASSL         0069 10
    CLASSM         0069 08
    CLASSN         0069 04
    CLASSO         0069 02
    CLASSP         0069 01
    CLASSQ         006A 80
    CLASSR         006A 40
    CLASSS         006A 20
    CLASST         006A 10
    CLASSU         006A 08
    CLASSV         006A 04
    CLASSW         006A 02
    CLASSX         006A 01
    CLASSY         006B 80
    CLASSZ         006B 40
    CLASS1         006B 20
    CLASS2         006B 10
    CLASS3         006B 08
    CLASS4         006B 04
    CLASS5         006B 02
    CLASS6         006B 01
    DGNADDR        0050
    DGNADDRL       0008
    DGNANY         0074 80
    DGNATTR        000C
    DGNAUDIT       0076 80
    DGNBSIZE       0077 00000078
    DGNBYIBM       0074 01
    DGNCALL        0075 80
    DGNCATTR       006D
    DGNCKRET       0074 08
    DGNCLASS       0068
    DGNCLB0        0068
    DGNCLB1        0069
    DGNCLB2        006A
    DGNCLB3        006B
    DGNCODE        0070
    DGNCOUNT       0054
    DGNCRXDW       006D 40
    DGNCRXFW       006D 80
    DGNENABL       0077 02
    DGNEPNAM       0000
    DGNFCALL       0075 04
    DGNFLAG        0074
    DGNFLAG1       0077
    DGNGOTO        0075 40
    DGNICALL       0075 08
    DGNINVAR       0077 80
    DGNINVXC       0074 04
    DGNLABEL       0075 10
    DGNLOCK        0030
    DGNLONGR       0077 40
    DGNMAC         0076 20
    DGNNAME        0048
    DGNOVRDE       0064
    DGNOVRNO       0077 10
    DGNPAR64       006E 80
    DGNPATTR       006E
    DGNPNO64       006E 40
    DGNPROC        0074 10
    DGNPROT        0076 40
    DGNPUSHD       0060
    DGNRATTR       006C
    DGNRNOVL       006C 20
    DGNRXEVN       006C 10
    DGNRXNRY       006C 04
    DGNRXNY1       006C 02
    DGNRXN15       006C 80
    DGNRYEVN       006C 08
    DGNRYNX1       006C 01
    DGNRYN15       006C 40
    DGNSECUR       0076
    DGNSIZE        0077 0000000F
    DGNSTACK       0075 20
    DGNTCALL       0075
    DGNUSRD1       0010
    DGNUSRD2       0018
    DGNUSRF1       0020
    DGNUSRF2       0024
    DGNUSRH1       0028
    DGNUSRH2       002A
    DGNUSRX1       002C
    DGNUSRX2       002D
    DGNUSRX3       002E
    DGNUSRX4       002F
    DGNVMAC        0074 02
    DGNVPROT       0074 20

This information is based on z/VM V6R1.0. Last updated on 18 Feb 2010 at 08:34:56 EDT.
Copyright IBM Corporation, 1990, 2008