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

#### SPMBK

Prolog

Control Block Contents
SPMBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### SPMBK Prolog

     NAME       : HCPSPMBK
     DESCRIPTION: SPOOL FILE MAP PAGE BLOCK
     DSECT      : SPMBK
     FUNCTION   : TO CONTAIN ASA'S FOR EVERY SPOOL FILE DATA
                  PAGE (SPDBK) IN A SPOOL FILE.  THE SPMBK ALSO
                  CONTAINS A COPY OF THE SPFBK, SO THAT IT CAN
                  BE RECREATED WHEN THE SYSTEM IS WARM STARTED.
                  SPMBK'S ARE FILLED WITH ASA'S WHILE IN SYSTEM
                  VIRTUAL STORAGE, AND ARE PERIODICALLY CHECK-
                  POINTED TO DASD.
     LOCATED BY :
                  (1) LOCATED IN SYSTEM VIRTUAL STORAGE BY:
                  SPAVSPM  - SPABK ANCHOR FOR THE CURRENT SPMBK
                  IN A SYSTEM VIRTUAL PAGE.
                  (2) LOCATED ON DASD BY:
                  SPADSPM  - SPABK ASA FOR THE SPMBK CURRENTLY
                  IN SYSTEM VIRTUAL STORAGE.
                  SPFSTART - SPFBK ASA FOR THE FIRST SPMBK OF A
                  SPOOL FILE.  SPMNEXT CHAINS THE
                  ASA'S OF SUBSEQUENT SPMBK'S, IF
                  NECESSARY.
                  SFNASA   - SFNASA IS A TABLE OF ASA'S.  EACH
                  ASA IS FOR THE FIRST SPMBK OF A
                  SPOOL FILE.  THE TABLE IS USED BY
                  HCPWRMST TO RECREATE THE FILES
                  WHEN THE SYSTEM IS WARM STARTED.
     CREATED BY :
                  (1) CREATED IN SYSTEM VIRTUAL STORAGE BY:
                  HCPSFSON - ALLOCATES A PAGE OF SYSTEM VIRTUAL
                  STORAGE FOR THE SPMBK WHEN A
                  SPOOL FILE IS OPENED FOR CREATION.
                  HCPSFSOP - ALLOCATES A PAGE OF SYSTEM VIRTUAL
                  STORAGE FOR THE SPMBK WHEN A
                  SPOOL FILE IS PROCESSED ON A REAL
                  OUTPUT DEVICE.
                  HCPSFVOP - ALLOCATES A PAGE OF SYSTEM VIRTUAL
                  STORAGE FOR THE SPMBK WHEN A
                  SPOOL FILE IS PROCESSED ON A
                  VIRTUAL CARD READER.
                  (2) CREATED ON DASD BY:
                  HCPVSPPW - CHECKPOINTS THE SPMBK BY REWRITING
                  IT TO DASD EACH TIME A NEW DATA
                  PAGE (SPDBK) IS WRITTEN FOR CON-
                  SOLE FILES.  FOR ALL OTHER SPOOL
                  FILES, THE SPMBK IS REWRITTEN
                  EACH TIME THE SPABK IS FULL.
                  WHEN THE SPMBK IS FULL, HCPVSPPW
                  WILL WRITE THE SPMBK TO DASD, AND
                  ALLOCATE A DASD SLOT FOR ANOTHER
                  SPMBK.
                  HCPSFRCL - WRITES OUT THE LAST SPMBK WHEN A
                  FILE CREATED BY A REAL READER IS
                  CLOSED.  IT ALSO REWRITES THE
                  FIRST SPMBK WITH THE SPFBK.
                  HCPSFVCL - WRITES OUT THE LAST SPMBK WHEN
                  VIRTUAL OUTPUT FILES ARE CLOSED.
                  IT ALSO REWRITES THE FIRST SPMBK
                  WITH THE SPFBK AS IT IS WHEN THE
                  FILE IS CLOSED.
     DELETED BY :
                  (1) DELETED IN SYSTEM VIRTUAL STORAGE BY:
                  HCPSFRCL - RELEASES THE SYSTEM VIRTUAL PAGE
                  ALLOCATED FOR THE SPMBK WHEN A
                  SPOOL FILE CREATED ON A REAL
                  READER IS CLOSED.
                  HCPSFVCL - RELEASES THE SYSTEM VIRTUAL PAGE
                  ALLOCATED FOR THE SPMBK WHEN A
                  VIRTUAL OUTPUT FILE IS CLOSED.
                  HCPSFROP - IF A PAGING ERROR OCCURS WHILE
                  PROCESSING AN SPDBK, THE SYSTEM
                  VIRTUAL PAGE FOR THE SPMBK IS
                  RELEASED.
                  HCPSFVOP - FOR THE SAME REASON AS HCPSFROP.
                  HCPSFSON - FOR THE SAME REASON AS HCPSFROP.
                  (2) DELETED ON DASD BY:
                  HCPSFRDL - WHENEVER A SPOOL FILE IS DELETED
                  FROM THE SYSTEM.
                  HCPWRSST - WHENEVER THERE IS A PROBLEM
                  RE-CREATING A SPOOL FILE DURING A
                  "FORCE" START.  ALSO, IT WILL
                  DELETE THE SPMBK IF IT DETECTS
                  THAT THE FIRST ASA IS ZERO, WHICH
                  MEANS THERE ARE NO DATA PAGES
                  MAPPED BY THIS SPMBK.

#### SPMBK Control Block Content

#### SPMBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SPMBK          SPOOL FILE MAP PAGE BLOCK
    0000    0 Dbl-Word     8 SPMOPNTM       TOD (FULL) WHEN FILE WAS OPENED
    0008    8 Signed       4 SPMSPID        System spool id for this file
    000C   12 Signed       4 SPMNEXT        ASA OF NEXT SPMBK FOR THIS FILE
    0010   16 Dbl-Word     8 SPMSPFBK (24)  Copy of the SPFBK
    00D0  208 Character    8 SPMSRCND       Diagnose X'F8' original node
    00D8  216 Character    8 SPMSRCUS       Diagnose X'F8' original userid
    00E0  224 Signed       4 SPMXABS (8)    Slots for XAB ASA's (up to 32K-1)
              00000020       SPMXABLN       *-SPMXABS Length of XAB ASA area
              00000004       SPMXABEL       4 Length of an entry
              00000008       SPMXABCT       8 Number of entries
    0100  256 Signed       4 SPMASA (960)   ROOM FOR 60 SETS OF 16 ASA GROUPS
              00000F00       SPMASALN       *-SPMASA To locate end of SPMASA
         SPMCCNT MUST ALWAYS BE AN INTEGER MULTIPLE OF 16
              000003C0       SPMCCNT        (((*-SPMASA)/4)/16)*16
         THE EMBEDDED SPFBK MAY NOT EXCEED 24 DOUBLE-WORDS.
              00000200       SPMSIZE        (*-SPMBK+7)/8 BLOCK SIZE IN
                                            DOUBLEWORDS
         SPXTAPE field for chaining SPM in system virtual storage
    0010   16 Address      4 SPMNXTVA       Virtual address of next SPM in
                                            SYSTEM address space. Uses
                                            SPFFPNT as chain field (which
                                            isn't used while on DASD).

#### SPMBK Storage Layout

    *** SPMBK - SPOOL FILE MAP PAGE BLOCK
    *
    *     +-------------------------------------------------------+
    *   0 |                       SPMOPNTM                        |
    *     +---------------------------+---------------------------+
    *   8 |         SPMSPID           |         SPMNEXT           |
    *     +---------------------------+---------------------------+
    *  10 |                                                       |
    *     =                       SPMSPFBK                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *  D0 |                       SPMSRCND                        |
    *     +-------------------------------------------------------+
    *  D8 |                       SPMSRCUS                        |
    *     +-------------------------------------------------------+
    *  E0 |                                                       |
    *     =                       SPMXABS                         =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * 100 |                                                       |
    *     =                        SPMASA                         =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *1000
    *
    *** SPMBK - SPOOL FILE MAP PAGE BLOCK

    *** Overlay for SPMSPFBK+SPFFPNT-SPFBK in SPMBK
    *
    *     +---------------------------+
    *  10 |         SPMNXTVA          | 14
    *     +---------------------------+
    *
    *** Overlay for SPMSPFBK+SPFFPNT-SPFBK in SPMBK

#### SPMBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    SPMASA         0100
    SPMASALN       0100 00000F00
    SPMCCNT        0100 000003C0
    SPMNEXT        000C
    SPMNXTVA       0010
    SPMOPNTM       0000
    SPMSIZE        0100 00000200
    SPMSPFBK       0010
    SPMSPID        0008
    SPMSRCND       00D0
    SPMSRCUS       00D8
    SPMXABCT       00E0 00000008
    SPMXABEL       00E0 00000004
    SPMXABLN       00E0 00000020
    SPMXABS        00E0

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