ASCBK - 32-bit CP - V4R4.0

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

#### ASCBK

Prolog

Control Block Contents
ASCBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### ASCBK Prolog

     NAME       : HCPASCBK
     DESCRIPTION: Address-Space-Control Block
     DSECT      : ASCBK
     FUNCTION   : Contain information about an address space.
                  The ASCBK is essentially CP's software extension
                  to the ASN-second-table entry (ASTE) describing
                  the address space.
     LOCATED BY : ASTASCBK field of the ASTE defining the address space
     CREATED BY : HCPASMCR
     DELETED BY : HCPASMDS
     SERIALIZED : Many fields in the ASCBK are static for the life of
                  the address space.  Most of the rest of them are
                  serialized by the ASCBK lock, the lockword for which
                  is at ASCLOCK.
                  Various fields are serialized by:
                  - ASCBK lock (ASCLOCK)
                  - MP Defer
                  - Console-function mode
                  - XSTSTATL
     COMMENTS   : The ASCBK must reside on a doubleword boundary.

#### ASCBK Control Block Content

#### ASCBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      ASCBK          Address-Space-Control Block
          Address space management area.
          This area contains fields used to manage and locate the
          address space itself.  All fields in this area are
          serialized by the ASCBK lock (the lockword at ASCLOCK)
          unless specifically noted otherwise.
    0000    0 Address      4 ASCOFPNT       Forward pointer to next ASCBK in
                                            chain of ASCBKs anchored from
                                            VMDASCBK of the owner's base
                                            VMDBK. This chain defines what
                                            address spaces are owned by the
                                            VMDBK. SYSTEM-owned spaces are
                                            anchored from the SYSTEM VMDBK.
                                            This field is serialized by the
                                            owner's ASCBK-queue lock
                                            (VMDASCLK). The chain is ended by
                                            a forward pointer of zero.
    0004    4 Address      4 ASCSFPNT       Forward pointer to next ASCBK in
                                            the chain of ASCBKs anchored from
                                            RSASHRSP in HCPRSM. This is the
                                            chain of shareable address
                                            spaces, and is serialized by the
                                            lock at RSASHRLK. The chain is
                                            ended by a forward pointer of
                                            zero.
    0008    8 Address      4 ASCSBPNT       Backward pointer to previous
                                            ASCBK in the chain of ASCBKs
                                            anchored from RSASHRSP in HCPRSM.
                                            The ASCSBPNT field of the first
                                            ASCBK in the chain is zeros.
    000C   12 Signed       4 ASCSEQNO       r-access sequence number,
                                            incremented on address space
                                            reset to match the ASTE sequence
                                            number (ASTSN). r-access i-ASITs
                                            (which use this sequence number)
                                            are sensitive to address space
                                            reset operations.
    0010   16 Character   32 ASCSPCID (0)   Space identification:
    0010   16 Character    8 ASCUSRID       Owning userid, padded on right
                                            with blanks.
    0018   24 Character   24 ASCNAME        Address space name, padded on
                                            right with blanks.
    0030   48 Address      4 ASCSNTBK       Pointer to owning SNTBK
                                            (ASCTSNT=1)
    0034   52 Bitstring    4 *              Reserved for IBM use
    0038   56 Dbl-Word     8 ASCEASIT (0)   ASCBK e-ASIT.
    0038   56 Address      4 ASCASTE        Pointer to ASN-Second-Table Entry
                                            (ASTE) for the address space.
                                            Serialized by task ownership at
                                            creation, thereafter unchanged
                                            until space is destroyed.
    003C   60 Signed       4 ASCSCRSN       Address space creation sequence
                                            number.
    0040   64 Address      4 ASCSPIBK       Pointer to chain of SPIBKs
                                            designating which users are
                                            permitted to attach this space to
                                            their guest-use access list. This
                                            field is serialized by the
                                            space-permission- manager lock
                                            (RSASPMLK in HCPRSMCM).
    0044   68 Address      4 ASCOWNER       Pointer to (base) VMDBK of owning
                                            virtual configuration, or SYSTEM
                                            VMDBK if CP owned.
    0048   72 Dbl-Word     8 ASCLOCK (3)    Lockword for shared/exclusive
                                            defer lock, protecting fields in
                                            the ASCBK and ASTE. For System
                                            Utility address spaces managed by
                                            HCPVAMAP and HCPVAMDP and
                                            HCPASURO, ASCLOCK exclusive is
                                            sufficient to invalidate a SEGTE
                                            without SEGTRANS. A share of
                                            ASCLOCK must be obtained *before*
                                            trying to obtain SEGTRANS when
                                            validating the SEGTE.
         *                         ESA/390 build only code
    0060   96 Dbl-Word     8 * (0)
    0060   96 Signed       4 ASCSSIZE       Size of address space, in bytes.
                                            The highest address available in
                                            the address space is one less
                                            than this value. For guest
                                            primary address spaces, this is
                                            the addressable size, including
                                            any imbedded saved segments
                                            (similar to VMDGMSIZ). Note that
                                            this is similar to VMDSSIZE (the
                                            guest primary address space
                                            defined storage size) in units,
                                            but not necessarily in value.
                                            *NOTE** ASCSSIZE, in ESA/390, is
                                            similar to, but not identical to,
                                            ASCHYBYT in ESAME.
    0064  100 Signed       4 *              Reserved for IBM use
    0068  104 Signed       4 *              Reserved for IBM use
    006C  108 Signed       4 *              Reserved for IBM use
    0070  112 Signed       4 *              Reserved for IBM use
         *                         End of ESA/390 build only code,
    0074  116 Bitstring    1 ASCSTATE       Flags indicating current state
                                            Serialized by holding ASCLOCK
                                            exclusive, the owning VMDBK's
                                            PTIL exclusive, AND by Console
                                            Function mode on the owning user.
              1... ....      ASCSHARE       X'80' At least one configuration
                                            other than the owner has
                                            permission to access this address
                                            space.
              .1.. ....      ASCPUBLC       X'40' Any user may attach this
                                            address space to their guest-use
                                            access list for read/only access.
    0075  117 Bitstring    1 ASCTYPE        Code indicating type of address
                                            space These are assigned as bits,
                                            but only one bit will ever be
                                            set. This is done to allow code
                                            to test for combinations with one
                                            instruction.
              1... ....      ASCTUSER       X'80' A user's base address space
              .1.. ....      ASCTDATA       X'40' A data space created by
                                            user request through diagnose
                                            x'23C'
              ..1. ....      ASCTSYSX       X'20' The system-execution
                                            address space
              ...1 ....      ASCTSYSU       X'10' A system utility address
                                            space
              .... .1..      ASCTSNT        X'04' An SNTBK "address space"
    0076  118 Bitstring    1 ASCFRMCD       Frame use code for this address
                                            space
    0077  119 Bitstring    1 ASCKEY         Bits 0-7 are the key with which
                                            to initialize pages in the
                                            address space.
    0078  120 Signed       4 ASCIACCT       Count of i-access pages in the
                                            address space which are locked or
                                            under (possible loss of control)
                                            translation through this ASCBK.
    007C  124 Signed       4 ASCRACCT       Count of r-access pages in the
                                            address space which are locked or
                                            under (possible loss of control)
                                            translation through this ASCBK.
    0080  128 Address      4 ASCTYPTR       Pointer to address space type
                                            specific control block (PTRMB for
                                            PTRM address spaces). The address
                                            space type specific control block
                                            must itself contain a CP use
                                            Address space Allocation block
                                            (CAABK) at offset zero.
    0084  132 Bitstring    1 ASCFOLST       Flags indicating what Frame Owned
                                            list (Owning VMDBK UFO, or
                                            Shared) frames are to be put on.
              1... ....      ASCOUFO        X'80' Frames for this address
                                            space are to be placed on the
                                            owning VMDBK's UFO list.
              .1.. ....      ASCSFO         X'40' Frames for this address
                                            space are to be placed on the
                                            Shared Frame Owned (SFO) list.
          WARNING: There is code in various places that checks the
          address space sub-type flag value without first checking
          address space type flag, so be very careful to avoid
          duplication when defining new sub-types.
    0085  133 Bitstring    1 ASCSUTYP       Flags indicating address space
                                            sub-type.
              1... ....      ASCUPTRM       X'80' A PTRM address space
                                            (sub-type of type ASCTSYSU).
              .1.. ....      ASCUPREF       X'40' A preferred (V=R or V=F)
                                            address space (sub-type of type
                                            ASCTUSER).
              ..1. ....      ASCUVDSK       X'20' A VDISK address space
                                            (sub-type of type ASCTSYSU).
              ...1 ....      ASCUFTC        X'10' A full track cache address
                                            space (sub-type of ASCTSYSU)
              .... 1...      ASCUCONN       X'08' The Connectivity (aka ISFC)
                                            address space (sub-type of type
                                            ASCTSYSU).
              .... .1..      ASCUIDNT       X'04' The System-Identity address
                                            space, which identity maps all
                                            storage below 2G with DAT tables
                                            (sub-type of ASCTSYSU).
    0086  134 Bitstring    1 ASCSTSIZ       Segment table size in STL units
              00000001       ASCSTS32       X'01' Segment table size = 128
                                            bytes, addressing up to 32M,
                                            maximum virtual address =
                                            x'01FFFFFF'. For guest primary
                                            address space ASCBKs, ASCSTSIZ =
                                            ASCSTS32 indicates that the
                                            segment table resides in the
                                            VMDLSEG field at the beginning of
                                            the guest base VMDBK. Note:
                                            ASCSTS32 == STDSTL01 Notes :
                                            ASCSTSIZ may have values in
                                            between ASCSTS32 (32M) and
                                            ASCSTS1G (1G). In these cases the
                                            value represents the size of the
                                            segment table when a segment
                                            table is allocated from a free
                                            storage frame. The remainder of
                                            the real storage frame is in use
                                            for GUESTPERM type VMDBK free
                                            storage.
              0000003F       ASCSTS1G       X'3F' Segment table size = 4096
                                            bytes, addressing up to 1024M,
                                            maximum virtual address =
                                            x'3FFFFFFF'. Note: ASCSTS1G ==
                                            STDSTL3F Notes : ASCSTSIZ may
                                            have values in between ASCSTS1G
                                            (1G) and ASCSTS2G (2G). In these
                                            cases the value represents the
                                            size of the segment table when
                                            the remainder of the second frame
                                            of the segment table (past the
                                            end of the contiguous segment
                                            table) was allocated from a free
                                            storage frame. The remainder of
                                            the second real storage frame is
                                            in use for GUESTPERM type VMDBK
                                            free storage.
              0000007F       ASCSTS2G       X'7F' Segment table size = 8192
                                            bytes, addressing up to 2048M,
                                            maximum virtual address =
                                            x'7FFFFFFF'. Note: ASCSTS2G ==
                                            STDSTL7F
    0087  135 Bitstring    1 *              Reserved for IBM use
    0088  136 Signed       4 ASCMSO         Main Storage Origin for preferred
                                            guest (V=R or V=F) base address
                                            space. Only valid when ASCTYPE =
                                            ASCTUSER and ASCSUTYP = ASCUPREF.
    008C  140 Signed       4 ASCCTSPI       Count of users permitted to this
                                            address space. Equal to the
                                            number of SPIBKs on the ASCSPIBK
                                            queue. Serialized by the Space
                                            Permission Manager lock (RSASPMLK
                                            in HCPRSAMP).
          End of Address Space management area
          Address space statistics area.
          Current usage information for this address space
    0090  144 Signed       4 ASCCTPRS       Count of resident pages < 2G
    0094  148 Signed       4 ASCCTPLK       Count of locked pages
    0098  152 Signed       4 ASCCTPGS       Count of paging slots.
    009C  156 Signed       4 ASCCTXBK       Count of xstore blocks in this
                                            address space. XSTSTATL must be
                                            held to update this field.
    00A0  160 Signed       4 *              Reserved for ASCCTPRG expansion
    00A4  164 Signed       4 ASCCTPRG       Count of resident pages >= 2G
          Cumulative historical counts, when address space is private
    00A8  168 Signed       4 ASCCPPST       Count of private address space
                                            pages stolen
    00AC  172 Signed       4 ASCCPPGR       Count of private address space
                                            pages read from DASD.
    00B0  176 Signed       4 ASCCPPGW       Count of private address space
                                            pages written to DASD.
    00B4  180 Signed       4 ASCCPXRD       Count of private address space
                                            pages read from XSTORE.
    00B8  184 Signed       4 ASCCPXWT       Count of private address space
                                            pages written to XSTORE.
    00BC  188 Signed       4 ASCCPMIG       Count of private address space
                                            pages migrated by CP from XSTORE
                                            to DASD.
          Cumulative historical counts, when address space is shared
    00C0  192 Signed       4 ASCPTRSH       Cumulative count of page
                                            translations for shared pages.
    00C4  196 Signed       4 ASCCSPST       Count of shared address space
                                            pages stolen
    00C8  200 Signed       4 ASCCSPGR       Count of shared address space
                                            pages read from DASD.
    00CC  204 Signed       4 ASCCSPGW       Count of shared address space
                                            pages written to DASD.
    00D0  208 Signed       4 ASCCSXRD       Count of shared address space
                                            pages read from XSTORE.
    00D4  212 Signed       4 ASCCSXWT       Count of shared address space
                                            pages written to XSTORE.
    00D8  216 Signed       4 ASCCSMIG       Count of shared address space
                                            pages migrated by CP from XSTORE
                                            to DASD.
    00DC  220 Signed       4 *              Reserved for IBM use
          End of address space statistics area.
          The following fields are serialized by the available list
          replenishment demand scan lock.  They are used to sort the
          queue of stolen FRMTEs by address space (for user address
          space frames, VDISK address space frames, and NSS/DCSS
          shared segment frames) and by virtual address megabyte
          (for NSS/DCSS shared segment frames only).
    00E0  224 Address      4 ASCSTLNX       Address of the next ASCBK for an
                                            address space from which pages
                                            were stolen in this iteration of
                                            the steal task. Each iteration
                                            will initialize this field to
                                            x'FFFFFFFF'. When the entire
                                            queue of FRMTEs is sorted (by
                                            address space), the last ASCBK in
                                            this chain will have x'FFFFFFFF'
                                            in this field.
    00E4  228 Address      4 ASC1STFR       Address of the first FRMTE that
                                            was stolen from this address
                                            space in this iteration of the
                                            steal task, and anchor of the
                                            queue of all FRMTEs stolen from
                                            this address space by this
                                            iteration of the steal task
                                            (queued by FRMTE field FRMFPNT).
                                            Each iteration will initialize
                                            this field to x'FFFFFFFF', and a
                                            FRMTE FRMFPNT value of
                                            x'FFFFFFFF' indicates that it is
                                            the last FRMTE on the queue.
    00E8  232 Address      4 ASCLSTFR (0)   Address of the last (processed)
                                            FRMTE that was stolen from this
                                            address space in this iteration
                                            of the steal task. Each iteration
                                            will initialize this field to
                                            x'FFFFFFFF', and a FRMTE FRMFPNT
                                            value of x'FFFFFFFF' indicates
                                            that it is the last FRMTE on the
                                            queue. Only used when sorting
                                            FRMTEs for normal user pages,
                                            which do not neet to be sorted by
                                            segment (virtual address
                                            megabyte). For NSS/DCSS shared
                                            segment page FRMTEs, this field
                                            is redefined as ASC1STPG.
    00E8  232 Address      4 ASC1STPG       Address of the first PGMBK for
                                            this address space from which
                                            pages were stolen in this
                                            iteration of the steal task, and
                                            anchor of the queue of all PGMBKs
                                            for this address space from which
                                            pages were stolen in this
                                            iteration of the steal task
                                            (queued by PGMBK field PGMNXPGM /
                                            PGMGNPGM). Each iteration will
                                            initialize this field to
                                            x'FFFFFFFF', and x'FFFFFFFF' in a
                                            PGMBK's PGMNXPGM / PGMGNPGM field
                                            indicates that it is the last
                                            PGMBK on the list. Only used when
                                            sorting FRMTEs for NSS/DCSS
                                            shared segment pages, which must
                                            be sorted by segment (virtual
                                            address megabyte). For normal
                                            user page FRMTEs, this field is
                                            redefined as ASCLSTFR.
    00EC  236 Address      4 ASCLSTPG       Address of the last PGMBK for
                                            this address space from which
                                            pages were stolen in this
                                            iteration of the steal task. Each
                                            iteration will initialize this
                                            field to x'FFFFFFFF', and
                                            x'FFFFFFFF' in a PGMBK's PGMSTNXT
                                            field indicates that it is the
                                            last PGMBK on the list. Only used
                                            when sorting FRMTEs for NSS/DCSS
                                            shared segment pages, which must
                                            be sorted by segment (virtual
                                            address megabyte).
          The following two fields belong up above with ASCIACCT and
          ASCRACCT, but were placed here to avoid recompiles.  They
          should be moved (and this block comment deleted) when this
          control block is next restructured.
    00F0  240 Signed       4 ASCITRCT       Count of in-process i-access
                                            manual translations in the
                                            address space.
    00F4  244 Signed       4 ASCRTRCT       Count of in-process r-access
                                            manual translations in the
                                            address space.
          End of ASCBK
    00F8  248 Signed       4 ASC$END (0)    End of control block
              000000F8       ASCLEN         *-ASCBK Length of ASCBK in bytes
              0000001F       ASCSIZE        (ASCLEN+7)/8 Size of ASCBK in
                                            doublewords

#### ASCBK Storage Layout

    *** ASCBK - Address-Space-Control Block
    *
    *     +---------------------------+---------------------------+
    *   0 |         ASCOFPNT          |         ASCSFPNT          |
    *     +---------------------------+---------------------------+
    *   8 |         ASCSBPNT          |         ASCSEQNO          |
    *     +---------------------------+---------------------------+
    *  10 |                       ASCUSRID                        |
    *     +-------------------------------------------------------+
    *  18 |                                                       |
    *     =                       ASCNAME                         =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  30 |         ASCSNTBK          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  38 |         ASCASTE           |         ASCSCRSN          |
    *     +---------------------------+---------------------------+
    *  40 |         ASCSPIBK          |         ASCOWNER          |
    *     +---------------------------+---------------------------+
    *  48 |                                                       |
    *     =                       ASCLOCK                         =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  60 |         ASCSSIZE          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  68 |///////////////////////////|///////////////////////////|
    *     +---------------------------+------+------+------+------+
    *  70 |///////////////////////////|:STATE|:TYPE |:FRMCD|ASCKEY|
    *     +---------------------------+------+------+------+------+
    *  78 |         ASCIACCT          |         ASCRACCT          |
    *     +---------------------------+------+------+------+------+
    *  80 |         ASCTYPTR          |:FOLST|:SUTYP|:STSIZ|//////|
    *     +---------------------------+------+------+------+------+
    *  88 |          ASCMSO           |         ASCCTSPI          |
    *     +---------------------------+---------------------------+
    *  90 |         ASCCTPRS          |         ASCCTPLK          |
    *     +---------------------------+---------------------------+
    *  98 |         ASCCTPGS          |         ASCCTXBK          |
    *     +---------------------------+---------------------------+
    *  A0 |///////////////////////////|         ASCCTPRG          |
    *     +---------------------------+---------------------------+
    *  A8 |         ASCCPPST          |         ASCCPPGR          |
    *     +---------------------------+---------------------------+
    *  B0 |         ASCCPPGW          |         ASCCPXRD          |
    *     +---------------------------+---------------------------+
    *  B8 |         ASCCPXWT          |         ASCCPMIG          |
    *     +---------------------------+---------------------------+
    *  C0 |         ASCPTRSH          |         ASCCSPST          |
    *     +---------------------------+---------------------------+
    *  C8 |         ASCCSPGR          |         ASCCSPGW          |
    *     +---------------------------+---------------------------+
    *  D0 |         ASCCSXRD          |         ASCCSXWT          |
    *     +---------------------------+---------------------------+
    *  D8 |         ASCCSMIG          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  E0 |         ASCSTLNX          |         ASC1STFR          |
    *     +---------------------------+---------------------------+
    *  E8 |         ASC1STPG          |         ASCLSTPG          |
    *     +---------------------------+---------------------------+
    *  F0 |         ASCITRCT          |         ASCRTRCT          |
    *     +---------------------------+---------------------------+
    *
    *** ASCBK - Address-Space-Control Block

#### ASCBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    ASC$END        00F8
    ASCASTE        0038
    ASCCPMIG       00BC
    ASCCPPGR       00AC
    ASCCPPGW       00B0
    ASCCPPST       00A8
    ASCCPXRD       00B4
    ASCCPXWT       00B8
    ASCCSMIG       00D8
    ASCCSPGR       00C8
    ASCCSPGW       00CC
    ASCCSPST       00C4
    ASCCSXRD       00D0
    ASCCSXWT       00D4
    ASCCTPGS       0098
    ASCCTPLK       0094
    ASCCTPRG       00A4
    ASCCTPRS       0090
    ASCCTSPI       008C
    ASCCTXBK       009C
    ASCEASIT       0038
    ASCFOLST       0084
    ASCFRMCD       0076
    ASCIACCT       0078
    ASCITRCT       00F0
    ASCKEY         0077
    ASCLEN         00F8 000000F8
    ASCLOCK        0048
    ASCLSTFR       00E8
    ASCLSTPG       00EC
    ASCMSO         0088
    ASCNAME        0018
    ASCOFPNT       0000
    ASCOUFO        0084 80
    ASCOWNER       0044
    ASCPTRSH       00C0
    ASCPUBLC       0074 40
    ASCRACCT       007C
    ASCRTRCT       00F4
    ASCSBPNT       0008
    ASCSCRSN       003C
    ASCSEQNO       000C
    ASCSFO         0084 40
    ASCSFPNT       0004
    ASCSHARE       0074 80
    ASCSIZE        00F8 0000001F
    ASCSNTBK       0030
    ASCSPCID       0010
    ASCSPIBK       0040
    ASCSSIZE       0060
    ASCSTATE       0074
    ASCSTLNX       00E0
    ASCSTSIZ       0086
    ASCSTS1G       0086 0000003F
    ASCSTS2G       0086 0000007F
    ASCSTS32       0086 00000001
    ASCSUTYP       0085
    ASCTDATA       0075 40
    ASCTSNT        0075 04
    ASCTSYSU       0075 10
    ASCTSYSX       0075 20
    ASCTUSER       0075 80
    ASCTYPE        0075
    ASCTYPTR       0080
    ASCUCONN       0085 08
    ASCUFTC        0085 10
    ASCUIDNT       0085 04
    ASCUPREF       0085 40
    ASCUPTRM       0085 80
    ASCUSRID       0010
    ASCUVDSK       0085 20
    ASC1STFR       00E4
    ASC1STPG       00E8

This information is based on z/VM V4R4.0. Last updated on 11 Aug 2003 at 13:42:14 EDT.
Copyright IBM Corporation, 1990, 2003