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

#### CMDBK

Prolog

Control Block Contents
CMDBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### CMDBK Prolog

     NAME       : HCPCMDBK
     DESCRIPTION: Command Table Entry Block
     DSECT      : CMDBK
     FUNCTION   : The Command Table Entry Blocks are used to control
                  and to locate the modules that are called when a
                  CP command is issued.
     LOCATED BY : HCPCOMEA for 'CP'               commands
                  HCPSETEA for 'CP SET'           commands
                  HCPQUYEA for 'CP QUERY'         commands
                  HCPQUYEL for 'CP QUERY VIRTUAL' commands
     CREATED BY : Assembly of HCPCOM
                  Assembly of HCPQUY
                  Assembly of HCPSET
                  HCPDCM   - Processing the command DEFINE COMMAND
                  HCPCMU   - Processing the command DEFINE COMMAND
     DELETED BY : HCPDCM   - Processing the command DEFINE COMMAND
                  HCPCMU   - Processing the command DEFINE COMMAND
     REFERENCES : HCPCLASS - Privilege class definitions
                  The CMDBK begins with storage that is mapped by the
                  ICRBK DSECT.  This storage is followed by the real
                  CMDBK fields that define and control the diagnose code.
     SERIALIZED : Changes to the contents of CMDBKs are typically done
                  by diagnose A0 and by User Class Restructure, and
                  under the SYSLCKC4 lock.
     NOTES      :

#### CMDBK Control Block Content

#### CMDBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      CMDBK          Command 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 CMDEPNAM       Name of the entry routine
    0008    8 Address      4 CMDADDRL       Address of the ICLBK, or 0.
                                            MODIFY RESET will need to clear
                                            this field to zero.
    000C   12 Bitstring    1 CMDATTR        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 CMDUSRD1       Reserved for non-IBM use
    0018   24 Dbl-Word     8 CMDUSRD2       Reserved for non-IBM use
    0020   32 Signed       4 CMDUSRF1       Reserved for non-IBM use
    0024   36 Signed       4 CMDUSRF2       Reserved for non-IBM use
    0028   40 Signed       2 CMDUSRH1       Reserved for non-IBM use
    002A   42 Signed       2 CMDUSRH2       Reserved for non-IBM use
    002C   44 Bitstring    1 CMDUSRX1       Reserved for non-IBM use
    002D   45 Bitstring    1 CMDUSRX2       Reserved for non-IBM use
    002E   46 Bitstring    1 CMDUSRX3       Reserved for non-IBM use
    002F   47 Bitstring    1 CMDUSRX4       Reserved for non-IBM use
    0030   48 Character   12 CMDNAME        Command name
    003C   60 Address      4 CMDFWD         Addr of another CMDBK on chain
    0040   64 Address      4 CMDADDR        Address of routine. If non-zero,
                                            then call CMDEPNAM indirectly
    0044   68 Signed       4 CMDCOUNT       Command issued this many times.
                                            There is no relationship between
                                            this field and any particular
                                            CMDBK. This means that this field
                                            in a CMDBK for a command with IBM
                                            class A does not mean that the
                                            command was executed for the
                                            class A command and not the class
                                            B or the class G command. Only
                                            the sums of the CMDCOUNT fields
                                            and the CMDMSECS fields for a
                                            command name are meaningful.
    0048   72 Signed       8 CMDMSECS       Time (in micro-seconds) that the
                                            routines that comprise this
                                            command were active. There is no
                                            relationship between this field
                                            and any particular CMDBK. This
                                            means that this field in a CMDBK
                                            for a command with IBM class A
                                            does not mean that the time was
                                            spent executing for the class A
                                            command and not the class B or
                                            the class G command. Only the
                                            sums of the CMDCOUNT fields and
                                            the CMDMSECS fields for a command
                                            name are meaningful.
    0050   80 Address      4 CMDPUSHD       Address of pushed CMDBK
    0054   84 Signed       4 CMDOVRDE       For use by MODIFY and OVERRIDE
    0058   88 Signed       4 CMDCLASS       Class mask
    005C   92 Signed       4 CMDCNTER       Creation counter, for HCPDA0
    0060   96 Address      4 CMDALIAP       If an alias, then this is the
                                            address of the alias CMDBK.
    0064  100 Bitstring    1 CMDIBMCL       IBM class
    0065  101 Bitstring    1 CMDTRUNC       Minimum truncation
    0066  102 Bitstring    1 CMDFLAG        Command flags
              1... ....      CMDALOG        X'80' Command allowed before
                                            LOGON
              .1.. ....      CMDOLOG        X'40' Command allowed only at
                                            LOGON
              ..1. ....      CMDALIAS       X'20' Entry is an 'ALIAS'
              ...1 ....      CMDENABL       X'10' This CMDBK is enabled
              .... 1...      CMDSILNT       X'08' Command may be silenced
              .... ..1.      CMDONLY        X'02' Only one version (IBMCLASS)
              .... ...1      CMDNOCL        X'01' Command is class 'ANY'
             Security bits defined for CMDFLAG1:
             CMDPROC   - Indicates that no call to the ESM
                         will be made in the command router.
                         This means that all required security
                         calls to the ESM must be made by the
                         command processor.  If CMDPROC is set
                         for one version, then it must be set
                         for all versions.
             CMDVPROT  - This flag indicates that the 'PROTECT'
                         setting (CMDPROT) of this command may
                         be dynamically altered by the
                         External Security Manager (ESM).
             CMDXLOG   - Indicates that the command may be disabled
                         prior to logon.  This bit can only be
                         dynamically altered by the ESM.
             CMDVMAC   - Indicates that the 'MAC' setting (CMDMAC)
                         for this command may be dynamically
                         altered by the ESM.
    0067  103 Bitstring    1 CMDFLAG1       Command flags
              1... ....      CMDPROC        X'80' Command processor performs
                                            further privilege class checks
              .1.. ....      CMDXLOG        X'40' Command can be turned off
                                            prior to logon
              ..1. ....      CMDVPROT       X'20' Command can be protected
              ...1 ....      CMDVMAC        X'10' Command may be Mandatory
                                            Access Controlled
             Security bits defined for CMDSECUR:
             CMDAUDIT  - Indicates that the command will be
                         'AUDITED' by the ESM.  This bit can
                         be initialized when the table entry
                         is created and can be dynamically
                         altered by the ESM.
             CMDPROT   - Indicates that the command will be
                         'PROTECTED' by the ESM.  This bit can
                         be initialized when the table entry
                         is created.
             CMDMAC    - Indicates that the command will be
                         Mandatory Access Controlled.  This
                         bit can only be dynamically altered
                         by the ESM.
    0068  104 Bitstring    1 CMDSECUR       Command security flags
              1... ....      CMDAUDIT       X'80' Command is to be audited
              .1.. ....      CMDPROT        X'40' Command is to be protected
              ..1. ....      CMDMAC         X'20' Command is to be Mandatory
                                            Access Controlled
    0069  105 Character    1 * (3)          Reserved
    006C  108 Signed       4 *              Reserved
    0070  112 Dbl-Word     8 CMD$END (0)    The end
              00000070       CMDBSIZE       *-CMDBK Size of CMDBK in bytes
              0000000E       CMDSIZE        (*-CMDBK+7)/8 Size in double
                                            words
    0058   88 Bitstring    1 CMDCLB0
    0059   89 Bitstring    1 CMDCLB1
    005A   90 Bitstring    1 CMDCLB2
    005B   91 Bitstring    1 CMDCLB3

#### CMDBK Storage Layout

    *** CMDBK - Command Table Entry Block
    *
    *     +-------------------------------------------------------+
    *   0 |                       CMDEPNAM                        |
    *     +---------------------------+------+------+------+------+
    *   8 |         CMDADDRL          |:ATTR |//////|//////|//////|
    *     +---------------------------+------+------+------+------+
    *  10 |                       CMDUSRD1                        |
    *     +-------------------------------------------------------+
    *  18 |                       CMDUSRD2                        |
    *     +---------------------------+---------------------------+
    *  20 |         CMDUSRF1          |         CMDUSRF2          |
    *     +-------------+-------------+------+------+------+------+
    *  28 |  CMDUSRH1   |  CMDUSRH2   |:USRX1|:USRX2|:USRX3|:USRX4|
    *     +-------------+-------------+------+------+------+------+
    *  30 |                       CMDNAME                         |
    *     |                           +---------------------------+
    *  38 |                           |          CMDFWD           |
    *     +---------------------------+---------------------------+
    *  40 |         CMDADDR           |         CMDCOUNT          |
    *     +---------------------------+---------------------------+
    *  48 |                       CMDMSECS                        |
    *     +---------------------------+---------------------------+
    *  50 |         CMDPUSHD          |         CMDOVRDE          |
    *     +---------------------------+---------------------------+
    *  58 |         CMDCLASS          |         CMDCNTER          |
    *     +---------------------------+------+------+------+------+
    *  60 |         CMDALIAP          |:IBMCL|:TRUNC|:FLAG |:FLAG1|
    *     +------+--------------------+------+------+------+------+
    *  68 |:SECUR|////////////////////|///////////////////////////|
    *     +------+--------------------+---------------------------+
    *
    *** CMDBK - Command Table Entry Block

    *** Overlay for CMDCLASS in CMDBK
    *
    *     +------+------+------+------+
    *  58 |:CLB0 |:CLB1 |:CLB2 |:CLB3 | 5C
    *     +------+------+------+------+
    *
    *** Overlay for CMDCLASS in CMDBK

#### CMDBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    CMD$END        0070
    CMDADDR        0040
    CMDADDRL       0008
    CMDALIAP       0060
    CMDALIAS       0066 20
    CMDALOG        0066 80
    CMDATTR        000C
    CMDAUDIT       0068 80
    CMDBSIZE       0070 00000070
    CMDCLASS       0058
    CMDCLB0        0058
    CMDCLB1        0059
    CMDCLB2        005A
    CMDCLB3        005B
    CMDCNTER       005C
    CMDCOUNT       0044
    CMDENABL       0066 10
    CMDEPNAM       0000
    CMDFLAG        0066
    CMDFLAG1       0067
    CMDFWD         003C
    CMDIBMCL       0064
    CMDMAC         0068 20
    CMDMSECS       0048
    CMDNAME        0030
    CMDNOCL        0066 01
    CMDOLOG        0066 40
    CMDONLY        0066 02
    CMDOVRDE       0054
    CMDPROC        0067 80
    CMDPROT        0068 40
    CMDPUSHD       0050
    CMDSECUR       0068
    CMDSILNT       0066 08
    CMDSIZE        0070 0000000E
    CMDTRUNC       0065
    CMDUSRD1       0010
    CMDUSRD2       0018
    CMDUSRF1       0020
    CMDUSRF2       0024
    CMDUSRH1       0028
    CMDUSRH2       002A
    CMDUSRX1       002C
    CMDUSRX2       002D
    CMDUSRX3       002E
    CMDUSRX4       002F
    CMDVMAC        0067 10
    CMDVPROT       0067 20
    CMDXLOG        0067 40

This information is based on z/VM V5R2.0. Last updated on 12 Apr 2006 at 17:03:08 EDT.
Copyright IBM Corporation, 1990, 2005