DGNBK - 32-bit CP - V4R4.0
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 fullreg 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 V4R4.0. Last updated on 29 Jul 2003 at 15:27:05 EDT.
Copyright IBM Corporation, 1990, 2003