|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
DGNBK
Control Block Contents
DGNBK DSECT
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
Copyright IBM Corporation, 1990, 2007