Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
TSKBK
Control Block Contents
TSKBK DSECT
Cross Reference (Contains links to field and bit definitions)
TSKBK Prolog
Name : HCPTSKBK Description: Task Control Block DSECT : TSKBK Function : The TSKBK contains certain types of status information for an active or suspended task. At present, the TSKBK is only used in a few selected cases: to record HCPSPIE traps, HCPSAC error exits, claims for entries on the CP-use access list, and the status of a CP task suspended to resolve a page, segment, or region fault. The dispatcher itself does not operate on TSKBKs. In general, a task with state information in a TSKBK is not permitted to lose control. However, certain losses of control -- those which "formally suspend" the task -- are permitted. The events which formally suspend a task across losses of control are: -- The HCPACCES ATTACH and DETACH services. -- The handling of translation exceptions (region, segment, and page faults) in DAT-on CP code. In these special cases, the task state is preserved and restored across the loss of control. When a task is formally suspended, a new TSKBK is allocated and hung off the prefix page, so that it will be available for use by the next task dispatched. When a task is formally resumed, its TSKBK replaces the one currently hung off the prefix page, and the latter is returned to free storage. Located by : PFXTSKBK points to the TSKBK for the currently dispatched task, or one which is eligible for use by the current task. A routine which formally suspends its task must preserve the TSKBK pointer for use on resumption. Created by : HCPMPSON when a processor is brought on-line. HCPTKMSU when a task is formally suspended. Deleted by : HCPTKMRS when a task is formally resumed. Serialized : The TSKBK which is designated by PFXTSKBK is only manipulated while running on the owning processor. Any other TSKBK is owned by the single task which holds its address (e.g., the task itself, about to be suspended or resumed), and is inaccessible to other tasks.
TSKBK Control Block Content
TSKBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure TSKBK Task Control Block State of suspended task 0000 0 Bitstring 128 TSKGRS General registers 0080 128 Bitstring 64 TSKARS Access registers 00C0 192 Bitstring 16 TSKGPSW Large PSW of suspended task Resource ownership and related conditions 00D0 208 Signed 2 TSKCPDSP Count of the number of address spaces owned by the dispatched configuration which have been attached by this task to the CP-use access list. When this count is non-zero, the purge-request timestamp of the dispatched user must be examined when resuming a suspended task. 00D2 210 Signed 2 TSKCPOTR Count of the number of address spaces not owned by the dispatched configuration which have been attached to the CP-use access list. 00D4 212 Address 4 TSKRNUSR Address of VMDBK of user that was dispatched when the task was suspended. These next fields are saved into the save block during HCPCALL. 00D8 216 Bitstring 44 TSKSAV (0) Here through TSKEVENT 00D8 216 Bitstring 1 TSKFLAGS Flags describing state of task 1... .... TSKLONGR X'80' Register values saved in the TSKBK are in LongReg format (TSKGGRS used). Must be set by any code saving LongReg register values in TSKGGRS, and must be reset (set to zero) by any code saving ShortReg register values in TSKGRS. .1.. .... TSKSPILR X'40' An HCPSPIE trap is active and the task is LongReg, save and restore 64 bit registers when suspending and driving exits (use TSKGGRS) ..1. .... TSKSACLR X'20' An HCPSAC trap is active and the task is LongReg, save and restore 64 bit registers when suspending and driving exits (use TSKGGRS) 00D9 217 Bitstring 1 * (3) Reserved for IBM use 00DC 220 Signed 4 TSKCR0SV Preserved bits from host CR0 HCPSPIE trap settings 00E0 224 Address 4 TSKSPIEA Program-interruption exit address 00E4 228 Bitstring 4 TSKSPIEM Program-interruption exit mask 00E8 232 Dbl-Word 8 * reserved for IBM use HCPSAC error exit routines 00F0 240 Address 4 TSKEXPIR Expired-internal-ASIT exit 00F4 244 Address 4 TSKSTERR Virtual-storage-error exit 00F8 248 Address 4 TSKINVAD Invalid-virtual-address exit 00FC 252 Address 4 TSKBLVOL Block-volatility exception exit Error event data: Details of a particular error condition, to be passed to an error exit routine (defined by HCPSPIE or HCPSAC). 0100 256 Bitstring 1 TSKEVENT Type of event 00000004 TSKEPROG 4 Program check in CP 00000008 TSKEEXPI 8 AR-mode ref to space via CP-use ALE with expired i-ASIT 0000000C TSKEINVA 12 AR-mode ref to invalid address (not within space) 00000010 TSKESTER 16 Paging or storage error on AR-mode reference 00000014 TSKEBVOL 20 AR-mode ref to volatile page with z-bit set 0101 257 Bitstring 3 * reserved for IBM use 0104 260 Address 4 TSKEVNTA Address of failing instruction 0108 264 Dbl-Word 8 TSKTGTIA Target i-ASIT (for event types TSKEEXPI, -BVOL, -INVA, and -STER) 0110 272 Signed 4 * Reserved 0114 276 Signed 4 TSKPRGCF (0) Program Interruption Code fields (for event type TSKEPROG) 0114 276 Signed 2 TSKPRGIL Program Interruption Instruction Length Code 0116 278 Signed 2 TSKPRGIN (0) Program Interruption Code (halfwd) 0116 278 Bitstring 1 TSKPRGEE Exception extension code 0117 279 Bitstring 1 TSKPRGIC Program Interruption Code (low byte) 00000119 PRGICROP X'0119' Crypto Operation Exception 00000136 PRGIADCP X'0136' Addressing capability 00008000 PRGIARPC X'8000' ARITHMETIC PARTIAL COMPLETION BIT OF THE EXCEPTION EXTENSION CODE (BIT 0 OF THE PROGRAM CHECK INTERRUPT CODE) 0118 280 Dbl-Word 8 TSKGTGTA Host 64-bit virtual address of target page (for event types TSKESTER -BVOL, and -INVA) 011C 284 Signed 4 TSKTGTAD Host 31-bit virtual address of target page for types TSKESTER -BVOL and -INVA Scratch area for suspended tasks: This area may be used by the routine which requests formal suspension of the task, to preserve task status. 0120 288 Bitstring 64 TSKWORKA Work area Redefine the General Purpose Register save area Short (32 bit) general purpose register values. Register values may be (but are not required to be) saved here across formal task suspension of ShortReg tasks. Register values are saved here during host interrupt processing for conditions which CP automatically resolves (region, segment, and page faults which occur while CP is running in AR mode) or which can be trapped via HCPSPIE, if the faulting task is ShortReg. If the task (suspended or faulting) is LongReg, TSKGGR* definition below is used instead. If the TSKGR* ShortReg register layout is used, TSKLONGR must be set to 0 to indicate ShortReg layout. 0000 0 Signed 4 TSKGR0 0004 4 Signed 4 TSKGR1 0008 8 Signed 4 TSKGR2 000C 12 Signed 4 TSKGR3 0010 16 Signed 4 TSKGR4 0014 20 Signed 4 TSKGR5 0018 24 Signed 4 TSKGR6 001C 28 Signed 4 TSKGR7 0020 32 Signed 4 TSKGR8 0024 36 Signed 4 TSKGR9 0028 40 Signed 4 TSKGR10 002C 44 Signed 4 TSKGR11 0030 48 Signed 4 TSKGR12 0034 52 Signed 4 TSKGR13 0038 56 Signed 4 TSKGR14 003C 60 Signed 4 TSKGR15 0040 64 Bitstring 64 TSKHGRS (0) High halves of large general registers. For internal use by HCPPRG, HCPHTT, and HCPTKM only. 0040 64 Signed 4 TSKHGR0 0044 68 Signed 4 TSKHGR1 0048 72 Signed 4 TSKHGR2 004C 76 Signed 4 TSKHGR3 0050 80 Signed 4 TSKHGR4 0054 84 Signed 4 TSKHGR5 0058 88 Signed 4 TSKHGR6 005C 92 Signed 4 TSKHGR7 0060 96 Signed 4 TSKHGR8 0064 100 Signed 4 TSKHGR9 0068 104 Signed 4 TSKHGR10 006C 108 Signed 4 TSKHGR11 0070 112 Signed 4 TSKHGR12 0074 116 Signed 4 TSKHGR13 0078 120 Signed 4 TSKHGR14 007C 124 Signed 4 TSKHGR15 Long (64 bit) general purpose register values. Register values may be (but are not required to be) saved here across formal task suspension of LongReg tasks. Register values are saved here during host interrupt processing for conditions which CP automatically resolves (region, segment, and page faults which occur while CP is running in AR mode) or which can be trapped via HCPSPIE, if the faulting task is LongReg. If the task (suspended or faulting) is ShortReg, TSKGGR* definition above is used instead. If the TSKGGR* long register layout is used, TSKLONGR should be set on to indicate LongReg layout. 0000 0 Bitstring 128 TSKGGRS (0) Large general registers 0000 0 Dbl-Word 8 TSKGGR0 0008 8 Dbl-Word 8 TSKGGR1 0010 16 Dbl-Word 8 TSKGGR2 0018 24 Dbl-Word 8 TSKGGR3 0020 32 Dbl-Word 8 TSKGGR4 0028 40 Dbl-Word 8 TSKGGR5 0030 48 Dbl-Word 8 TSKGGR6 0038 56 Dbl-Word 8 TSKGGR7 0040 64 Dbl-Word 8 TSKGGR8 0048 72 Dbl-Word 8 TSKGGR9 0050 80 Dbl-Word 8 TSKGGR10 0058 88 Dbl-Word 8 TSKGGR11 0060 96 Dbl-Word 8 TSKGGR12 0068 104 Dbl-Word 8 TSKGGR13 0070 112 Dbl-Word 8 TSKGGR14 0078 120 Dbl-Word 8 TSKGGR15 Redefine the Access Register save area 0080 128 Signed 4 TSKAR0 0084 132 Signed 4 TSKAR1 0088 136 Signed 4 TSKAR2 008C 140 Signed 4 TSKAR3 0090 144 Signed 4 TSKAR4 0094 148 Signed 4 TSKAR5 0098 152 Signed 4 TSKAR6 009C 156 Signed 4 TSKAR7 00A0 160 Signed 4 TSKAR8 00A4 164 Signed 4 TSKAR9 00A8 168 Signed 4 TSKAR10 00AC 172 Signed 4 TSKAR11 00B0 176 Signed 4 TSKAR12 00B4 180 Signed 4 TSKAR13 00B8 184 Signed 4 TSKAR14 00BC 188 Signed 4 TSKAR15 Redefine the PSW save area 00C0 192 Dbl-Word 8 TSKPSW (0) PSW of suspended task 00C0 192 Signed 4 TSKPSW0F 00C4 196 Signed 4 TSKPSW4F Addr mode and instruction addr 00C8 200 Signed 4 * (2) Rest of large PSW 00C0 192 Signed 4 TSKGPSW0 Flags 00C4 196 Signed 4 TSKGPSW4 Flags 00C8 200 Signed 4 TSKGPSW8 High-order instruction address 00CC 204 Signed 4 TSKGPSWC Low-order instruction address Finished 00000160 TSKLEN *-TSKBK Length in bytes of a TSKBK 0000002C TSKSIZE (TSKLEN+7)/8 Size in doublewords of a TSKBK
TSKBK Storage Layout
*** TSKBK - Task Control Block * * +-------------------------------------------------------+ * 0 | | * = TSKGRS = * | | * +-------------------------------------------------------+ * 80 | | * = TSKARS = * | | * +-------------------------------------------------------+ * C0 | TSKGPSW | * | | * +-------------+-------------+---------------------------+ * D0 | TSKCPDSP | TSKCPOTR | TSKRNUSR | * +------+------+-------------+---------------------------+ * D8 |:FLAGS|////////////////////| TSKCR0SV | * +------+--------------------+---------------------------+ * E0 | TSKSPIEA | TSKSPIEM | * +---------------------------+---------------------------+ * E8 |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * F0 | TSKEXPIR | TSKSTERR | * +---------------------------+---------------------------+ * F8 | TSKINVAD | TSKBLVOL | * +------+--------------------+---------------------------+ * 100 |:EVENT|////////////////////| TSKEVNTA | * +------+--------------------+---------------------------+ * 108 | TSKTGTIA | * +---------------------------+-------------+------+------+ * 110 |///////////////////////////| TSKPRGIL |:PRGEE|:PRGIC| * +---------------------------+-------------+------+------+ * 118 | TSKGTGTA | * +-------------------------------------------------------+ * 120 |///////////////////////////////////////////////////////| * =///////////////////////////////////////////////////////= * |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 160 * *** TSKBK - Task Control Block *** Overlay for TSKGTGTA+4 in TSKBK * * +---------------------------+ * 118 ... 11C | TSKTGTAD | * +---------------------------+---------------------------+ * 120 | | * = TSKWORKA = * | | * +-------------------------------------------------------+ * 160 * *** Overlay for TSKGTGTA+4 in TSKBK *** Overlay for TSKGRS in TSKBK * * +---------------------------+---------------------------+ * 0 | TSKGR0 | TSKGR1 | * +---------------------------+---------------------------+ * 8 | TSKGR2 | TSKGR3 | * +---------------------------+---------------------------+ * 10 | TSKGR4 | TSKGR5 | * +---------------------------+---------------------------+ * 18 | TSKGR6 | TSKGR7 | * +---------------------------+---------------------------+ * 20 | TSKGR8 | TSKGR9 | * +---------------------------+---------------------------+ * 28 | TSKGR10 | TSKGR11 | * +---------------------------+---------------------------+ * 30 | TSKGR12 | TSKGR13 | * +---------------------------+---------------------------+ * 38 | TSKGR14 | TSKGR15 | * +---------------------------+---------------------------+ * 40 | TSKHGR0 | TSKHGR1 | * +---------------------------+---------------------------+ * 48 | TSKHGR2 | TSKHGR3 | * +---------------------------+---------------------------+ * 50 | TSKHGR4 | TSKHGR5 | * +---------------------------+---------------------------+ * 58 | TSKHGR6 | TSKHGR7 | * +---------------------------+---------------------------+ * 60 | TSKHGR8 | TSKHGR9 | * +---------------------------+---------------------------+ * 68 | TSKHGR10 | TSKHGR11 | * +---------------------------+---------------------------+ * 70 | TSKHGR12 | TSKHGR13 | * +---------------------------+---------------------------+ * 78 | TSKHGR14 | TSKHGR15 | * +---------------------------+---------------------------+ * 80 * *** Overlay for TSKGRS in TSKBK *** Overlay for TSKGRS in TSKBK * * +-------------------------------------------------------+ * 0 | TSKGGR0 | * +-------------------------------------------------------+ * 8 | TSKGGR1 | * +-------------------------------------------------------+ * 10 | TSKGGR2 | * +-------------------------------------------------------+ * 18 | TSKGGR3 | * +-------------------------------------------------------+ * 20 | TSKGGR4 | * +-------------------------------------------------------+ * 28 | TSKGGR5 | * +-------------------------------------------------------+ * 30 | TSKGGR6 | * +-------------------------------------------------------+ * 38 | TSKGGR7 | * +-------------------------------------------------------+ * 40 | TSKGGR8 | * +-------------------------------------------------------+ * 48 | TSKGGR9 | * +-------------------------------------------------------+ * 50 | TSKGGR10 | * +-------------------------------------------------------+ * 58 | TSKGGR11 | * +-------------------------------------------------------+ * 60 | TSKGGR12 | * +-------------------------------------------------------+ * 68 | TSKGGR13 | * +-------------------------------------------------------+ * 70 | TSKGGR14 | * +-------------------------------------------------------+ * 78 | TSKGGR15 | * +-------------------------------------------------------+ * 80 * *** Overlay for TSKGRS in TSKBK *** Overlay for TSKARS in TSKBK * * +---------------------------+---------------------------+ * 80 | TSKAR0 | TSKAR1 | * +---------------------------+---------------------------+ * 88 | TSKAR2 | TSKAR3 | * +---------------------------+---------------------------+ * 90 | TSKAR4 | TSKAR5 | * +---------------------------+---------------------------+ * 98 | TSKAR6 | TSKAR7 | * +---------------------------+---------------------------+ * A0 | TSKAR8 | TSKAR9 | * +---------------------------+---------------------------+ * A8 | TSKAR10 | TSKAR11 | * +---------------------------+---------------------------+ * B0 | TSKAR12 | TSKAR13 | * +---------------------------+---------------------------+ * B8 | TSKAR14 | TSKAR15 | * +---------------------------+---------------------------+ * C0 * *** Overlay for TSKARS in TSKBK *** Overlay for TSKGPSW in TSKBK * * +---------------------------+---------------------------+ * C0 | TSKPSW0F | TSKPSW4F | * +---------------------------+---------------------------+ * C8 |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * D0 * *** Overlay for TSKGPSW in TSKBK *** Overlay for TSKGPSW in TSKBK * * +---------------------------+---------------------------+ * C0 | TSKGPSW0 | TSKGPSW4 | * +---------------------------+---------------------------+ * C8 | TSKGPSW8 | TSKGPSWC | * +---------------------------+---------------------------+ * D0 * *** Overlay for TSKGPSW in TSKBK
TSKBK Cross Reference
Symbol Dspl Value -------------- ---- ----- PRGIADCP 0117 00000136 PRGIARPC 0117 00008000 PRGICROP 0117 00000119 TSKARS 0080 TSKAR0 0080 TSKAR1 0084 TSKAR10 00A8 TSKAR11 00AC TSKAR12 00B0 TSKAR13 00B4 TSKAR14 00B8 TSKAR15 00BC TSKAR2 0088 TSKAR3 008C TSKAR4 0090 TSKAR5 0094 TSKAR6 0098 TSKAR7 009C TSKAR8 00A0 TSKAR9 00A4 TSKBLVOL 00FC TSKCPDSP 00D0 TSKCPOTR 00D2 TSKCR0SV 00DC TSKEBVOL 0100 00000014 TSKEEXPI 0100 00000008 TSKEINVA 0100 0000000C TSKEPROG 0100 00000004 TSKESTER 0100 00000010 TSKEVENT 0100 TSKEVNTA 0104 TSKEXPIR 00F0 TSKFLAGS 00D8 TSKGGRS 0000 TSKGGR0 0000 TSKGGR1 0008 TSKGGR10 0050 TSKGGR11 0058 TSKGGR12 0060 TSKGGR13 0068 TSKGGR14 0070 TSKGGR15 0078 TSKGGR2 0010 TSKGGR3 0018 TSKGGR4 0020 TSKGGR5 0028 TSKGGR6 0030 TSKGGR7 0038 TSKGGR8 0040 TSKGGR9 0048 TSKGPSW 00C0 TSKGPSWC 00CC TSKGPSW0 00C0 TSKGPSW4 00C4 TSKGPSW8 00C8 TSKGRS 0000 TSKGR0 0000 TSKGR1 0004 TSKGR10 0028 TSKGR11 002C TSKGR12 0030 TSKGR13 0034 TSKGR14 0038 TSKGR15 003C TSKGR2 0008 TSKGR3 000C TSKGR4 0010 TSKGR5 0014 TSKGR6 0018 TSKGR7 001C TSKGR8 0020 TSKGR9 0024 TSKGTGTA 0118 TSKHGRS 0040 TSKHGR0 0040 TSKHGR1 0044 TSKHGR10 0068 TSKHGR11 006C TSKHGR12 0070 TSKHGR13 0074 TSKHGR14 0078 TSKHGR15 007C TSKHGR2 0048 TSKHGR3 004C TSKHGR4 0050 TSKHGR5 0054 TSKHGR6 0058 TSKHGR7 005C TSKHGR8 0060 TSKHGR9 0064 TSKINVAD 00F8 TSKLEN 00CC 00000160 TSKLONGR 00D8 80 TSKPRGCF 0114 TSKPRGEE 0116 TSKPRGIC 0117 TSKPRGIL 0114 TSKPRGIN 0116 TSKPSW 00C0 TSKPSW0F 00C0 TSKPSW4F 00C4 TSKRNUSR 00D4 TSKSACLR 00D8 20 TSKSAV 00D8 TSKSIZE 00CC 0000002C TSKSPIEA 00E0 TSKSPIEM 00E4 TSKSPILR 00D8 40 TSKSTERR 00F4 TSKTGTAD 011C TSKTGTIA 0108 TSKWORKA 0120
Copyright IBM Corporation, 1990, 2005