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

#### SZVHB

Prolog

Control Block Contents
SZVHB DSECT
SZVSB DSECT
SZVMA DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### SZVHB Prolog

     NAME       : HCPSZVBK
     DESCRIPTION: Save area header and linkage used for CP C assembler
                  prolog/eplilog macros.
                  Also added "dummy" dsect for C malloc storage.
     DSECT      : SZVHB
     FUNCTION   : This copy file describes the stack header and savearea
                  used by the CP C code and Dignus compiler.
                  There is also a dummy dsect for C mallocs. This
                  is so that we can put an id on the storage.
     LOCATED BY : R13 points to the header when running C code in the
                  SCSI container.
     CREATED BY : C code that specifies #pragma prolkey(VMSIC,"YES") .
                  This #pragma is required for the first C module that
                  is called by assembler CP modules.
     DELETED BY : This control block is only deleted by the stack epilog
                  code in the C module with #pragma epilkey(VMSIC,"YES")
     REFERENCES : N/A
     SERIALIZED : N/A
     NOTES      : Changes will probably require
                  a recompile of all C modules using this copy file.
     NOTES      : N/A

#### SZVHB Control Block Content

#### SZVHB DSECT

####

####

####

####

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZVHB          Save area header and linkage used
                                            for CP C assembler
     ----------------------------------------------------------
     Stack header layout for a stack extension area           |
          Note ! Any changes to the stack header which modify the  |
                 available size must update HCPDCCPL MACRO contant.|
           offset|                                                 |
           x'00' |x'00DCCDCC'      | flags  |reserved (3 bytes)    |
           x'08' | ptr->previous stack extension                   |
           x'10' | ptr->next stack extension area                  |
           x'18' | address of last byte of this stack extension    |
           x'20' | VMDBK ptr                                       |
           x'28' | Container thread context ptr                    |
           x'30' | next available save area ptr                    |
           x'38' | reserved                                        |
           x'40'-end     function saveareas                        |
          ----------------------------------------------------------
    0000    0 Bitstring    1 SZVHEAD (0)    Stack area header
    0000    0 Character    4 SZVHEYE        Eyecatcher
    0004    4 Bitstring    1 SZVHFLG        Flags
              00000001       SZVHTOP        X'01' First stack area
              00000002       SZVHBIG        X'02' Large stack area(not GETST)
    0005    5 Bitstring    3 *              reserved
    0008    8 Dbl-Word     8 SZVHPRE        Previous stack area ptr
    0010   16 Dbl-Word     8 SZVHNXT        Next stack area ptr
    0018   24 Dbl-Word     8 SZVHEND        Address of last byte of stack
                                            area
    0020   32 Dbl-Word     8 SZVHVMD        Ptr to VMDBK
    0028   40 Dbl-Word     8 SZVHTX         Container thead context pointer
    0030   48 Dbl-Word     8 SZVHSNA        Next available save area pointer
    0038   56 Dbl-Word     8 *              Reserved
    0040   64 Dbl-Word     8 SZVHSV1 (0)    First save area
         SZVHSIZ=4095 If storage obtained by HCPSZU01 is a full page
         SZVHSIZ=4071 If storage obtained is FREMX
              00000FE7       SZVHSIZ        4071 Current stack area end size

    SZVSB DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZVSB          Save area header and linkage used
                                            for CP C assembler
     ----------------------------------------------------------
     Individual save area layout                              |
      offset|                                                 |
      x'00' | ptr->stack extension (see above)                |
      x'08' | ptr->previous save area                         |
      x'10' | ptr->next save area                             |
      x'18' | registers 14-12                                 |
      x'90' | 3 double words extra                            |
      x'A8' | dynamic storage start                           |
     ----------------------------------------------------------
    0000    0 Dbl-Word     8 SZVSHDR        Ptr->stack area header
    0008    8 Dbl-Word     8 SZVSPREV       Ptr->previous save area
    0010   16 Dbl-Word     8 SZVSNEXT       Ptr->next save area or 0
    0018   24 Dbl-Word     8 SZVSREGS (0)   Callers registers
    0018   24 Dbl-Word     8 SZVSR14        Callers reg 14
    0020   32 Dbl-Word     8 SZVSR15        Callers reg 15
    0028   40 Dbl-Word     8 SZVSR0         Callers reg 0
    0030   48 Dbl-Word     8 SZVSR1         Callers reg 1
    0038   56 Dbl-Word     8 SZVSR2         Callers reg 2
    0040   64 Dbl-Word     8 SZVSR3         Callers reg 3
    0048   72 Dbl-Word     8 SZVSR4         Callers reg 4
    0050   80 Dbl-Word     8 SZVSR5         Callers reg 5
    0058   88 Dbl-Word     8 SZVSR6         Callers reg 6
    0060   96 Dbl-Word     8 SZVSR7         Callers reg 7
    0068  104 Dbl-Word     8 SZVSR8         Callers reg 8
    0070  112 Dbl-Word     8 SZVSR9         Callers reg 9
    0078  120 Dbl-Word     8 SZVSR10        Callers reg 10
    0080  128 Dbl-Word     8 SZVSR11        Callers reg 11
    0088  136 Dbl-Word     8 SZVSR12        Callers reg 12
    0090  144 Character   24 SZVSXTRA       Open area by compiler
    0090  144 Signed       4 SZVSRRET       Move RC to here before trace
    0094  148 Signed       4 SZVSRRSN       Move RSN to here before trace
    0098  152 Signed       4 SZVSREID       Move EID to here before trace
    009C  156 Signed       4 *              reserved
    00A0  160 Dbl-Word     8 SZVSFNCH       Function header address
    00A8  168 Dbl-Word     8 SZVSDYN (0)    Dynamic storage start
     ----------------------------------------------------------
     This DSECT is just a dummy placeholder so that we can    |
     have storage management put an id in the trailer.        |
     This ID will be used by SZX when it does the malloc and  |
     free's.                                                  |
     ----------------------------------------------------------

    SZVMA DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SZVMA          Save area header and linkage used
                                            for CP C assembler
    0000    0 Dbl-Word     8 SZVMALLO

    SZVHB Storage Layout

    *** SZVHB - Save area header and linkage used for CP C assembler
    *
    *     +---------------------------+------+--------------------+
    *   0 |         SZVHEYE           |:HFLG |////////////////////|
    *     +---------------------------+------+--------------------+
    *   8 |                       SZVHPRE                         |
    *     +-------------------------------------------------------+
    *  10 |                       SZVHNXT                         |
    *     +-------------------------------------------------------+
    *  18 |                       SZVHEND                         |
    *     +-------------------------------------------------------+
    *  20 |                       SZVHVMD                         |
    *     +-------------------------------------------------------+
    *  28 |                        SZVHTX                         |
    *     +-------------------------------------------------------+
    *  30 |                       SZVHSNA                         |
    *     +-------------------------------------------------------+
    *  38 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *
    *** SZVHB - Save area header and linkage used for CP C assembler

    *** SZVSB - Save area header and linkage used for CP C assembler
    *
    *     +-------------------------------------------------------+
    *   0 |                       SZVSHDR                         |
    *     +-------------------------------------------------------+
    *   8 |                       SZVSPREV                        |
    *     +-------------------------------------------------------+
    *  10 |                       SZVSNEXT                        |
    *     +-------------------------------------------------------+
    *  18 |                       SZVSR14                         |
    *     +-------------------------------------------------------+
    *  20 |                       SZVSR15                         |
    *     +-------------------------------------------------------+
    *  28 |                        SZVSR0                         |
    *     +-------------------------------------------------------+
    *  30 |                        SZVSR1                         |
    *     +-------------------------------------------------------+
    *  38 |                        SZVSR2                         |
    *     +-------------------------------------------------------+
    *  40 |                        SZVSR3                         |
    *     +-------------------------------------------------------+
    *  48 |                        SZVSR4                         |
    *     +-------------------------------------------------------+
    *  50 |                        SZVSR5                         |
    *     +-------------------------------------------------------+
    *  58 |                        SZVSR6                         |
    *     +-------------------------------------------------------+
    *  60 |                        SZVSR7                         |
    *     +-------------------------------------------------------+
    *  68 |                        SZVSR8                         |
    *     +-------------------------------------------------------+
    *  70 |                        SZVSR9                         |
    *     +-------------------------------------------------------+
    *  78 |                       SZVSR10                         |
    *     +-------------------------------------------------------+
    *  80 |                       SZVSR11                         |
    *     +-------------------------------------------------------+
    *  88 |                       SZVSR12                         |
    *     +-------------------------------------------------------+
    *  90 |                                                       |
    *     =                       SZVSXTRA                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *  A8
    *
    *** SZVSB - Save area header and linkage used for CP C assembler

    *** Overlay for SZVSXTRA in SZVSB
    *
    *     +---------------------------+---------------------------+
    *  90 |         SZVSRRET          |         SZVSRRSN          |
    *     +---------------------------+---------------------------+
    *  98 |         SZVSREID          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  A0 |                       SZVSFNCH                        |
    *     +-------------------------------------------------------+
    *
    *** Overlay for SZVSXTRA in SZVSB

    *** SZVMA - Save area header and linkage used for CP C assembler
    *
    *     +-------------------------------------------------------+
    *   0 |                       SZVMALLO                        |
    *     +-------------------------------------------------------+
    *   8
    *
    *** SZVMA - Save area header and linkage used for CP C assembler

    SZVHB Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    SZVHBIG        0004 00000002
    SZVHEAD        0000
    SZVHEND        0018
    SZVHEYE        0000
    SZVHFLG        0004
    SZVHNXT        0010
    SZVHPRE        0008
    SZVHSIZ        0040 00000FE7
    SZVHSNA        0030
    SZVHSV1        0040
    SZVHTOP        0004 00000001
    SZVHTX         0028
    SZVHVMD        0020
    SZVMALLO       0000
    SZVSDYN        00A8
    SZVSFNCH       00A0
    SZVSHDR        0000
    SZVSNEXT       0010
    SZVSPREV       0008
    SZVSREGS       0018
    SZVSREID       0098
    SZVSRRET       0090
    SZVSRRSN       0094
    SZVSR0         0028
    SZVSR1         0030
    SZVSR10        0078
    SZVSR11        0080
    SZVSR12        0088
    SZVSR14        0018
    SZVSR15        0020
    SZVSR2         0038
    SZVSR3         0040
    SZVSR4         0048
    SZVSR5         0050
    SZVSR6         0058
    SZVSR7         0060
    SZVSR8         0068
    SZVSR9         0070
    SZVSXTRA       0090

    This information is
    based on z/VM V5R2.0.
    Last updated on 12 Apr 2006 at 17:32:13 EDT.

    Copyright IBM Corporation, 1990, 2005