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

#### TSKBK

Prolog

Control Block Contents
TSKBK DSECT

Storage Layout

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
         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 Bitstring   64 TSKGRS (0)     General registers
    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       ..
    0080  128 Bitstring   64 TSKARS (0)     Access registers
    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        ..
    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 Bitstring   16 TSKGPSW (0)    Large PSW of suspended task
    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
         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.
    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. (ESAME build of CP
                                            only)
              .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) (ESAME build of CP only)
              ..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) (ESAME build of CP only)
    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 Signed       4 *              reserved for IBM use
         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
    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, -INVA, and -STER)
    0110  272 Signed       4 TSKTGTAD       Host virtual address of target
                                            page (for event types TSKESTER
                                            and -INVA)
    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
                                            TSKEXTER 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
              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 |          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 |          TSKAR0           |          TSKAR1           |
    *     +---------------------------+---------------------------+
    *  88 |          TSKAR2           |          TSKAR3           |
    *     +---------------------------+---------------------------+
    *  90 |          TSKAR4           |          TSKAR5           |
    *     +---------------------------+---------------------------+
    *  98 |          TSKAR6           |          TSKAR7           |
    *     +---------------------------+---------------------------+
    *  A0 |          TSKAR8           |          TSKAR9           |
    *     +---------------------------+---------------------------+
    *  A8 |         TSKAR10           |         TSKAR11           |
    *     +---------------------------+---------------------------+
    *  B0 |         TSKAR12           |         TSKAR13           |
    *     +---------------------------+---------------------------+
    *  B8 |         TSKAR14           |         TSKAR15           |
    *     +---------------------------+---------------------------+
    *  C0 |         TSKPSW0F          |         TSKPSW4F          |
    *     +---------------------------+---------------------------+
    *  C8 |///////////////////////////////////////////////////////|
    *     +-------------+-------------+---------------------------+
    *  D0 |  TSKCPDSP   |  TSKCPOTR   |         TSKRNUSR          |
    *     +------+------+-------------+---------------------------+
    *  D8 |:FLAGS|////////////////////|         TSKCR0SV          |
    *     +------+--------------------+---------------------------+
    *  E0 |         TSKSPIEA          |         TSKSPIEM          |
    *     +---------------------------+---------------------------+
    *  E8 |///////////////////////////////////////////////////////|
    *     +---------------------------+---------------------------+
    *  F0 |         TSKEXPIR          |         TSKSTERR          |
    *     +---------------------------+---------------------------+
    *  F8 |         TSKINVAD          |///////////////////////////|
    *     +------+--------------------+---------------------------+
    * 100 |:EVENT|////////////////////|         TSKEVNTA          |
    *     +------+--------------------+---------------------------+
    * 108 |                       TSKTGTIA                        |
    *     +---------------------------+-------------+------+------+
    * 110 |         TSKTGTAD          |  TSKPRGIL   |:PRGEE|:PRGIC|
    *     +---------------------------+-------------+------+------+
    * 118 |                       TSKGTGTA                        |
    *     +-------------------------------------------------------+
    * 120 |                                                       |
    *     =                       TSKWORKA                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    * 160
    *
    *** TSKBK - Task Control Block

    *** 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 TSKPSW in TSKBK
    *
    *     +---------------------------+---------------------------+
    *  C0 |         TSKGPSW0          |         TSKGPSW4          |
    *     +---------------------------+---------------------------+
    *  C8 |         TSKGPSW8          |         TSKGPSWC          |
    *     +---------------------------+---------------------------+
    *  D0
    *
    *** Overlay for TSKPSW 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
    TSKCPDSP       00D0
    TSKCPOTR       00D2
    TSKCR0SV       00DC
    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         0120 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
    TSKSIZE        0120 0000002C
    TSKSPIEA       00E0
    TSKSPIEM       00E4
    TSKSPILR       00D8 40
    TSKSTERR       00F4
    TSKTGTAD       0110
    TSKTGTIA       0108
    TSKWORKA       0120

This information is based on z/VM V4R3.0. Last updated on 1 May 2002 at 10:46:49 EDT.
Copyright IBM Corporation, 1990, 2002