|
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 Dbl-Word 8 TSKPSW (0) Short-form PSW of suspended task
00C0 192 Signed 4 TSKPSW0F
00C4 196 Signed 4 TSKPSW4F Addr mode and instruction addr
00C8 200 Dbl-Word 8 * Reserved for IBM use
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' TSKLONGR 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' TSKSPILR 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' TSKSACLR 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 TSKEPROG Program check in CP
00000008 TSKEEXPI 8 TSKEEXPI AR-mode ref to space
via CP-use ALE with expired
i-ASIT
0000000C TSKEINVA 12 TSKEINVA AR-mode ref to
invalid address (not within
space)
00000010 TSKESTER 16 TSKESTER Paging or storage
error on AR-mode reference
00000014 TSKEBVOL 20 TSKEBVOL 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' PRGICROP Crypto Operation
Exception
00000136 PRGIADCP X'0136' PRGIADCP Addressing
capability
00008000 PRGIARPC X'8000' PRGIARPC 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
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 | TSKPSW0F | TSKPSW4F |
* +---------------------------+---------------------------+
* C8 |///////////////////////////////////////////////////////|
* +-------------+-------------+---------------------------+
* 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
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 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 00BC 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 00BC 0000002C TSKSPIEA 00E0 TSKSPIEM 00E4 TSKSPILR 00D8 40 TSKSTERR 00F4 TSKTGTAD 011C TSKTGTIA 0108 TSKWORKA 0120
Copyright IBM Corporation, 1990, 2007