Programming Interface Information:
This information is NOT
intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only. |
ASCBK
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
Last updated on 3 Aug 1999 at 11:40:43 EDT.
Copyright IBM Corporation, 1990, 1999