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.
 RELOCATION CONSIDERATIONS : None

 

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)
          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
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

This information is based on z/VM V6R2.0. Last updated on 21 Nov 2011 at 11:28:25 EDT.
Copyright IBM Corporation, 1990, 2011