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

#### DHDR

Prolog

Control Block Contents
DHDR DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### DHDR Prolog

     Name       : HCPDHDR
     Description: Directory header block
     DSECT      : DHDR
     Function   : This control block points to all of the parts
                  that make up the object directory.
     Located by : SYSDHDR
     Created by : HCPDIR
                  HCPUDTBH
     Deleted by : HCPUDS

#### DHDR Control Block Content

#### DHDR DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      DHDR           Directory header block
    0000    0 Bitstring  512 DHDRHDR (0)    Fixed-length header portion
    0000    0 Signed       4 DHDRSIZE       The length of the DHDR block in
                                            bytes
         The version code for the currently online object directory has been
         created to distinguish between the different styles of the object
         directory. The "old" style directory is for VM/ESA 1.2.2 and earlier
         releases. This is Version 0. The Version 1 is the initial "new" style
         object directory for VM/ESA 2.1.0 release.
    0004    4 Bitstring    1 DHDRODVR       Version code of object directory
              00000000       DHDRODV0       X'00' VM/ESA 1.2.2 and prior
                                            version of object directory
              00000001       DHDRODV1       X'01' VM/ESA 2.1.0 version of
                                            object directory
    0005    5 Bitstring    1 * (2)          Reserved for IBM use
    0007    7 Bitstring    1 DHDRVERS       Version code for this block
              00000000       DHDRVER0       X'00' Initial version
    0008    8 Character   16 DHDRLABL       Eye catcher - (CL16'DIRECTORY
                                            HEADER')
         Note that each of the following fields sometimes contains storage
         addresses, not DASD addresses. DHDRUSER DHDRUID DHDRGID
    0018   24 Signed       4 DHDRUSER       CCPV/PPPV of userid index start
    001C   28 Signed       4 DHDRUID        CCPV/PPPV of uid index start
    0020   32 Signed       4 DHDRGID        CCPV/PPPV of gid index start
    0024   36 Signed       4 * (5)          Reserved for IBM use (good place
                                            for additional index ptrs)
    0038   56 Signed       4 DHDRNCBE       Count of dir cntrl blck entries
    003C   60 Signed       4 * (111)        Reserved for IBM use
    01F8  504 Character    6 DHDRSRES       &SYSRES substitution value
    01FE  510 Bitstring    2 *              Reserved for IBM use
              00000200       DHDRLEN        (*-DHDR) Size of fixed-length
                                            portion of the DHDR, in bytes
              00000040       DHDRSZ         (*-DHDR+7)/8 Size of fixed-length
                                            portion of the DHDR, in
                                            doublewords
         The directory control block table (DHDRDCBT) contains the DHDRDCBE
         entries for each control block in the object directory. The order of
         the DHDRDCBE entries in the table must be the same as the order of the
         directory control block IDs defined in DHDRDCBI.
    0200  512 Dbl-Word     8 DHDRDATA (0)   Variable-length portion of DHDR
    0200  512 Dbl-Word     8 DHDRDCBT (0)   Directory control block table
                                            (starts at offset X'200')
    0200  512 Character   16 DHDRDCBE (0)   Dir control block table entry
    0200  512 Signed       4 DHDRDCBS       Size (in bytes) of the cntrl blck
    0204  516 Bitstring    1 DHDRDCBV       Version code for this cntrl blck
              00000000       DHDRCBV0       X'00' Initial version
    0205  517 Bitstring    1 DHDRDCBF       Directory control block flag
              00000000       DHDRINIT       X'00' Init flag of this dir CB
              00000080       DHDRIDGD       X'80' The block is contained in
                                            DGDBK
    0206  518 Signed       2 DHDRDCBI       Directory contrl block IDs
              00000001       DHDRDHDR       1 DHDR ID
              00000002       DHDRDNX1       2 DNXBK ID for USER 1st level
                                            index
              00000003       DHDRDNX2       3 DNXBK ID for USER 2nd level
                                            index
              00000004       DHDRDNX3       4 DNXBK ID for UID 1st level
                                            index
              00000005       DHDRDNX4       5 DNXBK ID for UID 2nd level
                                            index
              00000006       DHDRDNX5       6 DNXBK ID for GID index
              00000007       DHDRDUND       7 DUNDX ID
              00000008       DHDRDVMD       8 DVMD ID
              00000009       DHDRDDEV       9 DDEV ID
              0000000A       DHDRDCPU       10 DCPU ID
              0000000B       DHDRDNSA       11 DNSA ID
              0000000C       DHDRDAPP       12 DAPPC ID
              0000000D       DHDRDIUC       13 DIUCV ID
              0000000E       DHDRDGDB       14 DGDBK ID
              0000000F       DHDRDGRP       15 DGRPM ID
              00000010       DHDRDGSB       16 DGSBK ID
              00000011       DHDRDSGR       17 DSGR ID
         Notes : In order to avoid changing the existing directory control block
         IDs in DHDRCBI, the new ID should be added at the end with the number
         of the last directory control block ID in DHDRDCBI plus one.
    0208  520 Dbl-Word     8 *              Reserved field
    0210  528 Character   16 DHDRNXTE (0)   Next dir cntrl blck table entry
         **** THE VALUE OF FSMAXB FOR DATAMAP IS 4072
              000000DE       DHDRMXTE       (FSMAXB-DHDRLEN)/L'DHDRDCBE
                                            Maximum number of dir control
                                            block table entries
              00000DE0       DHDRMXLN       (DHDRMXTE*L'DHDRDCBE) Maximum
                                            length of DHDRDCBT
              00000FE0       DHDRMXBS       (DHDRLEN+DHDRMXLN) Maximum DHDR
                                            size in bytes
              000001FC       DHDRMXDS       (DHDRMXBS+7)/8 Maximum DHDR size
                                            in DBs
              00000000       DHDRVLEN       0 Length zero for variable len CB

#### DHDR Storage Layout

    *** DHDR - Directory header block
    *
    *     +---------------------------+------+-------------+------+
    *   0 |         DHDRSIZE          |:RODVR|/////////////|:RVERS|
    *     +---------------------------+------+-------------+------+
    *   8 |                       DHDRLABL                        |
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  18 |         DHDRUSER          |         DHDRUID           |
    *     +---------------------------+---------------------------+
    *  20 |         DHDRGID           |///////////////////////////|
    *     +---------------------------+///////////////////////////|
    *     |///////////////////////////////////////////////////////|
    *     |///////////////////////////////////////////////////////|
    *     +---------------------------+---------------------------+
    *  38 |         DHDRNCBE          |///////////////////////////|
    *     +---------------------------+///////////////////////////|
    *  40 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////////////////////////////////|
    *     +-----------------------------------------+-------------+
    * 1F8 |                DHDRSRES                 |/////////////|
    *     +---------------------------+------+------+-------------+
    * 200 |         DHDRDCBS          |:RDCBV|:RDCBF|  DHDRDCBI   |
    *     +---------------------------+------+------+-------------+
    * 208 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *
    *** DHDR - Directory header block

#### DHDR Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    DHDRCBV0       0204 00000000
    DHDRDAPP       0206 0000000C
    DHDRDATA       0200
    DHDRDCBE       0200
    DHDRDCBF       0205
    DHDRDCBI       0206
    DHDRDCBS       0200
    DHDRDCBT       0200
    DHDRDCBV       0204
    DHDRDCPU       0206 0000000A
    DHDRDDEV       0206 00000009
    DHDRDGDB       0206 0000000E
    DHDRDGRP       0206 0000000F
    DHDRDGSB       0206 00000010
    DHDRDHDR       0206 00000001
    DHDRDIUC       0206 0000000D
    DHDRDNSA       0206 0000000B
    DHDRDNX1       0206 00000002
    DHDRDNX2       0206 00000003
    DHDRDNX3       0206 00000004
    DHDRDNX4       0206 00000005
    DHDRDNX5       0206 00000006
    DHDRDSGR       0206 00000011
    DHDRDUND       0206 00000007
    DHDRDVMD       0206 00000008
    DHDRGID        0020
    DHDRHDR        0000
    DHDRIDGD       0205 00000080
    DHDRINIT       0205 00000000
    DHDRLABL       0008
    DHDRLEN        01FE 00000200
    DHDRMXBS       0210 00000FE0
    DHDRMXDS       0210 000001FC
    DHDRMXLN       0210 00000DE0
    DHDRMXTE       0210 000000DE
    DHDRNCBE       0038
    DHDRNXTE       0210
    DHDRODVR       0004
    DHDRODV0       0004 00000000
    DHDRODV1       0004 00000001
    DHDRSIZE       0000
    DHDRSRES       01F8
    DHDRSZ         01FE 00000040
    DHDRUID        001C
    DHDRUSER       0018
    DHDRVERS       0007
    DHDRVER0       0007 00000000
    DHDRVLEN       0210 00000000

This information is based on z/VM V4R3.0. Last updated on 1 May 2002 at 08:34:50 EDT.
Copyright IBM Corporation, 1990, 2002