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' R15 may not be specified
                                            for Rx
              .1.. ....      DGNRYN15       X'40' R15 may not be specified
                                            for Ry
              ..1. ....      DGNRNOVL       X'20' Rx/Rx+1 may not overlap
                                            Ry/Ry+1
              ...1 ....      DGNRXEVN       X'10' Rx must be an even register
              .... 1...      DGNRYEVN       X'08' Ry must be an even register
              .... .1..      DGNRXNRY       X'04' Rx and Ry must be different
              .... ..1.      DGNRXNY1       X'02' Rx and Ry+1 must be
                                            different
              .... ...1      DGNRYNX1       X'01' Ry and Rx+1 must be
                                            different
    006D  109 Bitstring    1 DGNCATTR       Register content attributes
              1... ....      DGNCRXFW       X'80' Rx must be fullword-aligned
              .1.. ....      DGNCRXDW       X'40' Rx must be
                                            doubleword-aligned
    006E  110 Bitstring    1 DGNPATTR       Diagnose parameter attributes
              1... ....      DGNPAR64       X'80' 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' 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' Diag has privilege class
                                            'ANY'
              ..1. ....      DGNVPROT       X'20' 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' 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' Check rc from diagnose
                                            processor
              .... .1..      DGNINVXC       X'04' This diagnose is prohibited
                                            in ESA/XC mode
              .... ..1.      DGNVMAC        X'02' The MAC setting (DGNMAC)
                                            for this diag may be dynamically
                                            altered by the ESM.
              .... ...1      DGNBYIBM       X'01' This is an IBM diagnose.
    0075  117 Bitstring    1 DGNTCALL       Type of call to diag processor
              1... ....      DGNCALL        X'80' Transfer control via
                                            HCPCALL
              .1.. ....      DGNGOTO        X'40' Transfer control via
                                            HCPGOTO
              ..1. ....      DGNSTACK       X'20' Transfer control via
                                            HCPSTKCF
              ...1 ....      DGNLABEL       X'10' Transfer control to a label
              .... 1...      DGNICALL       X'08' Transfer via internal
                                            HCPCALL
              .... .1..      DGNFCALL       X'04' Transfer via HCPCALL
                                            FASTDYN
    0076  118 Bitstring    1 DGNSECUR       Diagnose security flags
              1... ....      DGNAUDIT       X'80' Audit diagnose
              .1.. ....      DGNPROT        X'40' Protect diagnose
              ..1. ....      DGNMAC         X'20' Diagnose is to be Mandatory
                                            Access Controlled
    0077  119 Bitstring    1 DGNFLAG1       Diag flags - DGNFLAG extended
              1... ....      DGNINVAR       X'80' This diagnose is not
                                            allowed in host-Access Register
                                            mode
              .1.. ....      DGNLONGR       X'40' Callee is LONGREG
              ...1 ....      DGNOVRNO       X'10' This diagnose may not be
                                            overridden by the MODIFY command.
              .... ..1.      DGNENABL       X'02' 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' CLASS A FUNCTIONS
              .1.. ....      CLASSB         X'40' CLASS B FUNCTIONS
              ..1. ....      CLASSC         X'20' CLASS C FUNCTIONS
              ...1 ....      CLASSD         X'10' CLASS D FUNCTIONS
              .... 1...      CLASSE         X'08' CLASS E FUNCTIONS
              .... .1..      CLASSF         X'04' CLASS F FUNCTIONS
              .... ..1.      CLASSG         X'02' CLASS G FUNCTIONS
              .... ...1      CLASSH         X'01' CLASS H FUNCTIONS
    0069  105 Bitstring    1 DGNCLB1
              1... ....      CLASSI         X'80' CLASS I FUNCTIONS
              .1.. ....      CLASSJ         X'40' CLASS J FUNCTIONS
              ..1. ....      CLASSK         X'20' CLASS K FUNCTIONS
              ...1 ....      CLASSL         X'10' CLASS L FUNCTIONS
              .... 1...      CLASSM         X'08' CLASS M FUNCTIONS
              .... .1..      CLASSN         X'04' CLASS N FUNCTIONS
              .... ..1.      CLASSO         X'02' CLASS O FUNCTIONS
              .... ...1      CLASSP         X'01' CLASS P FUNCTIONS
    006A  106 Bitstring    1 DGNCLB2
              1... ....      CLASSQ         X'80' CLASS Q FUNCTIONS
              .1.. ....      CLASSR         X'40' CLASS R FUNCTIONS
              ..1. ....      CLASSS         X'20' CLASS S FUNCTIONS
              ...1 ....      CLASST         X'10' CLASS T FUNCTIONS
              .... 1...      CLASSU         X'08' CLASS U FUNCTIONS
              .... .1..      CLASSV         X'04' CLASS V FUNCTIONS
              .... ..1.      CLASSW         X'02' CLASS W FUNCTIONS
              .... ...1      CLASSX         X'01' CLASS X FUNCTIONS
    006B  107 Bitstring    1 DGNCLB3
              1... ....      CLASSY         X'80' CLASS Y FUNCTIONS
              .1.. ....      CLASSZ         X'40' CLASS Z FUNCTIONS
              ..1. ....      CLASS1         X'20' CLASS 1 FUNCTIONS
              ...1 ....      CLASS2         X'10' CLASS 2 FUNCTIONS
              .... 1...      CLASS3         X'08' CLASS 3 FUNCTIONS
              .... .1..      CLASS4         X'04' CLASS 4 FUNCTIONS
              .... ..1.      CLASS5         X'02' CLASS 5 FUNCTIONS
              .... ...1      CLASS6         X'01' CLASS 6 FUNCTIONS CLASSALL
                                            DEFINITION
              0DGNCLB3       CLASSALL       X'FFFFFFFF' 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 V5R2.0. Last updated on 12 Apr 2006 at 16:50:35 EDT.
Copyright IBM Corporation, 1990, 2005