Introduction to Data Areas and Control Blocks

The data areas and control blocks available here primarily provide information that is NOT intended to be used as Programming Interfaces of z/VM.

These data areas and control blocks also provide intended Programming Interfaces that allow the customer to write programs to obtain the services of z/VM. Programming Interfaces information is identified where it occurs by an introductory statement.

These web pages contain descriptions of the major data areas and control blocks used by CMS and CP for communication between components and program modules of z/VM Version 3 Release 1.0. The CP data areas and control blocks are provided in two distinct groups: the 32-bit CP image and the 64-bit CP image.

The data areas, or scratch areas that exist only during the execution of a particular module are not included with this information.

Intended Audience

This information is intended for use by people responsible for interpreting CMS and CP storage dumps and for determining the status of the program or system at the time of a problem.

Prerequisite Knowledge

Persons using this information are expected to be knowledgeable with the CMS and CP components of z/VM and with assembled code.

The following is a list of suggested prerequisite reading:

  • IBM Enterprise Systems Architecture/370 Principles of Operation
  • IBM Enterprise Systems Architecture/390 Principles of Operation
  • IBM Enterprise Systems Architecture/Extended Configuration Principles of Operation
  • IBM OS/VS, DOS/VSE and VM/370 Assembler Language
  • IBM System/370 Extended Architecture Principles of Operation
  • IBM System/370 Architecture Principles of Operation

How this Information is Organized

This information is arranged in alphabetic order by the DSECT name. If the DSECT is part of a larger control block, the larger will be displayed. Most data areas or control blocks include a brief description at the beginning which is called a Prolog. If such a Prolog exists, it is followed by the Control Block Content, which describes the fields of the data area or control block in the following manner:

  • The displacement in both hexadecimal and decimal

  • The type/value

  • Its length in decimal bytes (An asterisk in this column indicates there is no symbol name. This usually means that the field is reserved.) If there is a duplication factor, it will be enclosed in parentheses after the name of the field.

  • The name of the field

  • A brief description

The control block content is followed by a graphic representation of the Storage Layout. And finally, an alphabetic Cross Reference is included which lists the labels in the data area. For general equates, the hexadecimal value is listed along with a displacement that refers to the position in the main Control Block Content for which the full information for that label can be found.

Understanding the Storage Layout: 

  The Storage Layout provides an aid in locating fields within a control block. These graphic representations become valuable to those who can read and understand them. They display the hexadecimal displacements and field names in the respective locations. However, there are a few special elements that you need to know about. Let's take a look at them.
    ****       XMPBK - Example Block
    *     +------+------+-------------+------+------+------+------+
    * 190 |:FSYNC|:FTPNL|                                         |
    *     +------+------+                                         |
    *     |                                                       |
    *     =                        XMPFTPN                        =
    *     |                                                       |
    *     |             +-----------------------------------------+
    * 1D0 |             |/////////////////////////////////////////|
    *     +-------------+/////////////////////////////////////////|
    *     |///////////////////////////////////////////////////////|
    *     |////////////////////////////////////////////////+------+
    * 1E0 |////////////////////////////////////////////////|:FLUWL|
    *     +------------------------------------------------+------+
    * 1E8 |                                                       |
    *     =                        XMPFLUWI                       =
    *     |                                                       |
    *     |             +------+----------------------------------+
    * 200 |             |:FCCL |             XMPFCC-              |
    *     +-------------+------+------+-------------+------+------+
    * 208 |      -XMPFCC       |:CFLAG|   XMPCPLEN  |//////|(20F)-|
    *     +--------------------+------+-------------+------+------+
    * 210 |     -XMPCPADR      | 213
    *     +--------------------+
    *

In order to read this more accurately, you should understand the following field aids:

:
The colon represents the first three letters of the control block's name. In this example, you would replace the colon with XMP and the field names are XMPFSYNC and XMPFTPNL.
    * 190 |:FSYNC|:FTPNL|                                         |
    *     +------+------+                                         |

=
The equals shows the field spans several lines and not all of the lines are displayed. For example:
    *     +------+------+                                         |
    *     |                                                       |
    *     =                        XMPFTPN                        =
    *     |                                                       |
    *     |             +-----------------------------------------+
    * 1D0 |             |/////////////////////////////////////////|

////
The repeated slash shows that the area is reserved or not used. For example:
    *     |             +-----------------------------------------+
    * 1D0 |             |/////////////////////////////////////////|

-
The hyphen is used to extend a field onto an additional line. When a field spans multiple lines and space is limited, the field position is shown in parentheses followed by a hyphen to show that the field extends onto the next line (20F)-. For example:
    *     |             +------+----------------------------------+
    * 200 |             |:FCCL |             XMPFCC-              |
    *     +-------------+------+------+-------------+------+------+
    * 208 |      -XMPFCC       |:CFLAG|   XMPCPLEN  |//////|(20F)-|
    *     +--------------------+------+-------------+------+------+
    * 210 |     -XMPCPADR      | 213
    *     +--------------------+