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 Character 8 * 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.
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.
0064 100 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.
0065 101 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' A system execution address
space
...1 .... ASCTSYSU X'10' A system utility address
space
.... .1.. ASCTSNT X'04' An SNTBK "address space"
0066 102 Bitstring 1 ASCFRMCD Frame use code for this address
space
0067 103 Bitstring 1 ASCKEY Bits 0-7 are the key with which
to initialize pages in the
address space.
0068 104 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.
006C 108 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.
0070 112 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.
0074 116 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.
0075 117 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).
0076 118 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.
..11 1111 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.
.111 1111 ASCSTS2G X'7F' Segment table size = 8192
bytes, addressing up to 2048M,
maximum virtual address =
x'7FFFFFFF'. Note: ASCSTS2G ==
STDSTL7F
0077 119 Bitstring 1 * Reserved for IBM use
0078 120 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.
007C 124 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
0080 128 Signed 4 ASCCTPRS Count of resident pages
0084 132 Signed 4 ASCCTPLK Count of locked pages
0088 136 Signed 4 ASCCTPGS Count of paging slots.
008C 140 Signed 4 ASCCTXBK Count of xstore blocks in this
address space. XSTSTATL must be
held to update this field.
Cumulative historical counts, when address space is private
0090 144 Signed 4 ASCCPPST Count of private address space
pages stolen
0094 148 Signed 4 ASCCPPGR Count of private address space
pages read from DASD.
0098 152 Signed 4 ASCCPPGW Count of private address space
pages written to DASD.
009C 156 Signed 4 ASCCPXRD Count of private address space
pages read from XSTORE.
00A0 160 Signed 4 ASCCPXWT Count of private address space
pages written to XSTORE.
00A4 164 Signed 4 ASCCPMIG Count of private address space
pages migrated by CP from XSTORE
to DASD.
Cumulative historical counts, when address space is shared
00A8 168 Signed 4 ASCPTRSH Cumulative count of page
translations for shared pages.
00AC 172 Signed 4 ASCCSPST Count of shared address space
pages stolen
00B0 176 Signed 4 ASCCSPGR Count of shared address space
pages read from DASD.
00B4 180 Signed 4 ASCCSPGW Count of shared address space
pages written to DASD.
00B8 184 Signed 4 ASCCSXRD Count of shared address space
pages read from XSTORE.
00BC 188 Signed 4 ASCCSXWT Count of shared address space
pages written to XSTORE.
00C0 192 Signed 4 ASCCSMIG Count of shared address space
pages migrated by CP from XSTORE
to DASD.
00C4 196 Signed 4 * Reserved for IBM use
End of address space statistics area.
The following 4 fields are serialized by the available list
replenishment demand scan test and set lock.
00C8 200 Address 4 ASC1STFR Address of the first FRMTE that
was stolen from this address
space in this iteration of the
steal task. Each iteration will
initialize this field to FF's and
the FF's in a FRMTE's FRMFPNT
indicates that it is the last
FRMTE on the list.
00CC 204 Address 4 ASCSTLNX Address of the next ASCBK for a
space stolen from in this
iteration of the steal task. Each
iteration will initialize this
field to FF's. When the FRMTE's
are all sorted (by address
space), the last ASCBK in this
chain will have FF's in this
field.
00D0 208 Address 4 ASC1STPG Address of the first PGMBK that
was stolen from this address
space in this iteration of the
steal task. Each iteration will
initialize this field to FF's and
the FF's in a PGMBK's PGMSTNXT
indicates that it is the last
PGMBK on the list.
00D4 212 Address 4 ASCLSTPG Address of the last PGMBK that
was stolen from this address
space in this iteration of the
steal task. Each iteration will
initialize this field to FF's and
the FF's in a PGMBK's PGMSTNXT
indicates that it is the last
PGMBK on the list.
00D8 216 Signed 4 ASCITRCT Count of in-process i-access
manual translations in the
address space.
00DC 220 Signed 4 ASCRTRCT Count of in-process r-access
manual translations in the
address space.
00E0 224 Signed 4 ASC$END (0) End of control block
000000E0 ASCLEN *-ASCBK Length of ASCBK in bytes
0000001C 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 |///////////////////////////////////////////////////////|
* +---------------------------+---------------------------+
* 38 | ASCASTE | ASCSCRSN |
* +---------------------------+---------------------------+
* 40 | ASCSPIBK | ASCOWNER |
* +---------------------------+---------------------------+
* 48 | |
* = ASCLOCK =
* | |
* +---------------------------+------+------+------+------+
* 60 | ASCSSIZE |:STATE|:TYPE |:FRMCD|ASCKEY|
* +---------------------------+------+------+------+------+
* 68 | ASCIACCT | ASCRACCT |
* +---------------------------+------+------+------+------+
* 70 | ASCTYPTR |:FOLST|:SUTYP|:STSIZ|//////|
* +---------------------------+------+------+------+------+
* 78 | ASCMSO | ASCCTSPI |
* +---------------------------+---------------------------+
* 80 | ASCCTPRS | ASCCTPLK |
* +---------------------------+---------------------------+
* 88 | ASCCTPGS | ASCCTXBK |
* +---------------------------+---------------------------+
* 90 | ASCCPPST | ASCCPPGR |
* +---------------------------+---------------------------+
* 98 | ASCCPPGW | ASCCPXRD |
* +---------------------------+---------------------------+
* A0 | ASCCPXWT | ASCCPMIG |
* +---------------------------+---------------------------+
* A8 | ASCPTRSH | ASCCSPST |
* +---------------------------+---------------------------+
* B0 | ASCCSPGR | ASCCSPGW |
* +---------------------------+---------------------------+
* B8 | ASCCSXRD | ASCCSXWT |
* +---------------------------+---------------------------+
* C0 | ASCCSMIG |///////////////////////////|
* +---------------------------+---------------------------+
* C8 | ASC1STFR | ASCSTLNX |
* +---------------------------+---------------------------+
* D0 | ASC1STPG | ASCLSTPG |
* +---------------------------+---------------------------+
* D8 | ASCITRCT | ASCRTRCT |
* +---------------------------+---------------------------+
* E0 | |
* = ASC$END =
* | |
* +-------------------------------------------------------+
*
*** ASCBK - Address-Space-Control Block
ASCBK Cross Reference
(contains links to field and bit definitions)
Symbol Dspl Value
-------------- ---- -----
ASC$END 00E0
ASCASTE 0038
ASCCPMIG 00A4
ASCCPPGR 0094
ASCCPPGW 0098
ASCCPPST 0090
ASCCPXRD 009C
ASCCPXWT 00A0
ASCCSMIG 00C0
ASCCSPGR 00B0
ASCCSPGW 00B4
ASCCSPST 00AC
ASCCSXRD 00B8
ASCCSXWT 00BC
ASCCTPGS 0088
ASCCTPLK 0084
ASCCTPRS 0080
ASCCTSPI 007C
ASCCTXBK 008C
ASCEASIT 0038
ASCFOLST 0074
ASCFRMCD 0066
ASCIACCT 0068
ASCITRCT 00D8
ASCKEY 0067
ASCLEN 00E0 000000E0
ASCLOCK 0048
ASCLSTPG 00D4
ASCMSO 0078
ASCNAME 0018
ASCOFPNT 0000
ASCOUFO 0074 80
ASCOWNER 0044
ASCPTRSH 00A8
ASCPUBLC 0064 40
ASCRACCT 006C
ASCRTRCT 00DC
ASCSBPNT 0008
ASCSCRSN 003C
ASCSEQNO 000C
ASCSFO 0074 40
ASCSFPNT 0004
ASCSHARE 0064 80
ASCSIZE 00E0 0000001C
ASCSPCID 0010
ASCSPIBK 0040
ASCSSIZE 0060
ASCSTATE 0064
ASCSTLNX 00CC
ASCSTSIZ 0076
ASCSTS1G 0076 3F
ASCSTS2G 0076 7F
ASCSTS32 0076 00000001
ASCSUTYP 0075
ASCTDATA 0065 40
ASCTSNT 0065 04
ASCTSYSU 0065 10
ASCTSYSX 0065 20
ASCTUSER 0065 80
ASCTYPE 0065
ASCTYPTR 0070
ASCUCONN 0075 08
ASCUFTC 0075 10
ASCUPREF 0075 40
ASCUPTRM 0075 80
ASCUSRID 0010
ASCUVDSK 0075 20
ASC1STFR 00C8
ASC1STPG 00D0
This information is
based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 11:40:43 EDT.
Copyright IBM Corporation, 1990, 1999