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

CPEBK

Prolog  

Control Block Contents  
   CPEBK DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


CPEBK Prolog

 NAME       : HCPCPEBK
 DESCRIPTION: CP TASK EXECUTION BLOCK
 DSECT      : CPEBK
 FUNCTION   : HCPCPEBK MAINTAINS REGISTER VALUES AND ADDRESSING
              INFORMATION (MODULE ADDRESS OR ENTRY POINT ADDRESS)
              TO ALLOW CODE TO BE EXECUTED ASYNCHRONOUSLY.  NOTE:
              A CPEBK IS IDENTICAL TO A SAVBK.
 LOCATED BY : CPEXFPNT  DOUBLY CHAINED
              CPEXBPNT  DOUBLY CHAINED
              CACXRCPX  FIELD OF HCPCACBK   (X-SIDE CHANNEL RECONNECT)
              CACYRCPX  FIELD OF HCPCACBK   (Y-SIDE CHANNEL RECONNECT)
              DIOQUEUE  FIELD OF HCPDIOBK   (PENDING CRW TASKS FOR
              THE CORRESPONDING RDEV)
              GSDCPEX   FIELD OF HCPGSDBK
              LCKQUE    FIELD OF HCPLCKBK   (OBTAIN LOCK QUEUE)
              PIOCPEX   FIELD OF HCPPIOBK   (PAGING I/O)
              RDEVWTDV  FIELD OF HCPRDEV    (WAIT-DEVICE)
              SYSDCPEX  FIELD OF HCPSYSCM   (DIRECTORY SWAP CONTROL BLOCK)
              VDSDSTK   FIELD OF HCPVDSBK   (DEFERRED STACK FOR DEVICE)
              VMDQURCP  FIELD OF HCPVMDBK   (URGENT CPEBK STACK)
              VMDQCPEF  FIELD OF HCPVMDBK   (NORMAL CPEBK STACK)
              HCPPAGQ   FIELD OF HCPPAG     (TASKS IN TRANSIT - ACTIVE I/O)
              HCPPTRKQ  FIELD OF HCPPTR     (TASKS IN PAGE WAIT FROM A
              STEAL TASK WRITE)
              HCPPTRRQ  FIELD OF HCPPTR     (PAGING READ REQUEST QUEUE)
              HCPPTRWQ  FIELD OF HCPPTR     (PAGING WRITE REQUEST QUEUE)
              FREEQ     FIELD OF HCPPTR     (TASKS WAITING FOR FREE FRAME)
              STACKQ    FIELD OF HCPPTR     (RELATED TASKS WAITING FOR A
              PAGE)
              WAITQ     FIELD OF HCPPTR     (TASKS WAITING FOR USERS IN
              PAGE WAIT)
 CREATED BY : HCPABN   SWITCH BACK TO ORIGINAL USER DURING SOFT ABEND
              HCPCSP   SWITCH TO BASE VMDBK DURING CLOSE OR SPOOL COMMAND
              HCPCTC   SUSPEND COMMANDS DURING CTCA PROCESSING
              HCPFRE   SWITCH TO MASTER PROCESSOR DURING FREE STORAGE
              EXTEND
              HCPGDS   SIMULATE DASD UNSOLICITED INTERRUPT
              HCPGFS   SWITCH TO RDEVUSER FOR FULLSCREEN PROCESSING
              HCPGMC   STACKED GOTO ENDOP TO REFLECT MACHINE CHECK
              HCPGRF   TRANSFER CONTROL DURING LOGON, SWITCH TO BASE VMDBK
              IF NEEDED AFTER CALL TO HCPIOSRQ
              HCPGRS   DEFERRED WRITE TO PRINTER FOR PF COPY
              HCPIOS   DEFERRED DEVICE INTERVENTION-REQUIRED TASK
              HCPLOC   WAIT FOR LOCK TO BECOME UNLOCKED
              HCPLOG   DEFERRED RECONNECT, AUTOLOG, LOGON OF V=R USER
              HCPMCH   CALL HCPGMC ASYNCHRONOUSLY TO REFLECT MACHINE
              CHECK, ARRANGE FOR MACHINE CHECK SLIH TO RUN
              ASYNCHRONOUSLY
              HCPMCW   CALL HCPGMC ASYNCHRONOUSLY TO REFLECT MACHINE
              HCPMPF   DEFERRED UNDEDICATE PROCESSOR TASK DURING SWITCH
              MASTER PROCESSOR
              HCPPAG   DEFERRED PAGING I/O ERROR MESSAGE
              HCPPGT   DEFERRED PAGING/SPOOLING SPACE FULL MESSAGE
              HCPPTR   DEFERRED TASKS (STEAL TASK, PAGING DURING FREE
              STORAGE EXTEND, PUT USER IN PAGE I/O WAIT)
              HCPQCO   DEFERRED COMPLETION RESPONSE TO COMBK ORIGINATOR
              HCPRES   DEFERRED COMPLETION RESPONSE (PATH-MANAGEMENT
              CONTROL)
              HCPRFC   (RFCNT)  PENDING CRW TASK -OR- CRW TASK
              STACKED ON THE SYSTEM.
              HCPRSP   DEFERRED SPOOL DEVICE REQUEST
              HCPSFR   DEFERRED SPOOL FILE DELETION
              HCPSTK   DEFERRED RELEASE OF VMDBK STORAGE DURING LOGOFF
              HCPUDR   DEFERRED DIRECTORY SWAP TASK
              HCPUSO   DEFERRED LOGOFF OF FORCED-OFF USER
              HCPVSP   DEFERRED VIRTUAL SPOOLING REQUEST
              HCPVUR   DEFERRED VIRTUAL UNIT RECORD DEVICE REQUEST
 DELETED BY : HCPSVC   CPEBKS ARE DELETED AS SAVBKS
 SERIALIZED : SERIALIZATION IS PROVIDED BY THE DISPATCH LOCK EXCEPT
              FOR CPEXCPRQ WHICH IS SERIALIZED BY TRQBK AND BY THE
              MP DEFER FUNCTION.
 COMMENTS   : CPEXFPNT AND CPEXBPNT ARE USED TO MAINTAIN VARIOUS
              CPEBK QUEUES AND STACKS.  ROUTINES MAY USE THESE
              FIELDS IF THE CPEBK IS NOT CURRENTLY ON A QUEUE OR
              STACK.  AN EXAMPLE IS THE SAVBK (A CPEBK SYNONYM)
              USED ON A DYNAMIC CALL.
              IF A ROUTINE CALLS ANOTHER ROUTINE TO STACK A CPEBK
              ONTO A QUEUE, THE CALLING ROUTINE SHOULD BE AWARE
              THAT THE CPEXFPNT AND CPEXBPNT FIELDS MAY HAVE BEEN
              CHANGED AS A RESULT OF THE CALL.  THE CALLING
              ROUTINES SHOULD REFRAIN FROM USING THESE FIELDS.
 NOTES      : THE CPEXFPNT, CPEXBPNT AND CPEXSFQP ARE ASSUMED
              TO BE THE FIRST THREE WORDS IN THIS CONTROL
              BLOCK BY PROCESSING IN HCPFTH.  THUS, IF YOU
              CHANGE THE LOCATION OF THESE FIELDS THEN YOU MUST
              ALSO UPDATE HCPFTH

 

CPEBK Control Block Content


CPEBK DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      CPEBK          CP TASK EXECUTION BLOCK
             NOTES      : THIS CONTROL BLOCK IS IDENTICAL TO
                   SAVBK.  CPEBK IS DEFINED AS A SAVBK WITH
                   DIFFERENT NAMES TO ALLOW ADDRESSABILITY
                   TO BOTH SAVBK AND CPEBK WITHIN ONE MODULE.
      The header of the CPEBK includes queue pointers, status
      flags, and a type code.  This header must be laid out
      the same in the SAVBK, CPEBK, and SVGBK, since a single
      queue or savearea chain may contain a mix of such blocks.
      This mapping is defined as the SVHBK; equivalent symbols
      are included here.
0000    0 Bitstring    1 CPEXHEAD (0)   Savearea header common to all
                                        formats
      The header of the savearea includes queue pointers, status
      flags, and a type code.  This header must be laid out
      the same in all savearea formats, since a single queue
      or savearea chain may contain a mix of both blocks.
0000    0 Signed       4 CPEXFPNT       General forward pointer
0004    4 Signed       4 CPEXBPNT       General backward pointer
                                        (backward pointer not used for
                                        single-thread lists)
0008    8 Address      4 CPEXSFQP       Savearea frame queue pointer
000C   12 Address      4 CPEXCPRQ       Cross processor return queue addr
0010   16 Bitstring    1 CPEXSCHC       Savearea dispatching controls
          1... ....      CPEXNOFR       X'80' Do not fret savearea on
                                        dispatch
          .1.. ....      CPEXSKCR       X'40' This is a stacked return
          ..1. ....      CPEXSKCL       X'20' This is a stacked call
          ...1 ....      CPEXRTNF       X'10' "Return" with no fret
          .... 1...      CPEXUCFM       X'08' Stack as console function
                                        work
          .... .1..      CPEXURGT       X'04' Stack as urgent work
          .... ...1      CPEXDMCO       X'01' Dispatch on the master CPU
                                        only
0011   17 Bitstring    1 CPEXCALC       Block usage status
          1... ....      CPEXOPEN       X'80' Savearea in use for a call
          .1.. ....      CPEXGET        X'40' Savearea obtained via GET
          ..1. ....      CPEXPGLK       X'20' Callee module is pageable,
                                        and was locked
          ...1 ....      CPEXPGWT       X'10' Call waiting on pageable
                                        module to be paged in
          .... 1...      CPEXSPAR       X'08' Savearea is not active
          .... .1..      CPEXCSAV       X'04' FPNT is ptr to C savearea
                                        chain
0012   18 Bitstring    1 *              Reserved
0013   19 Bitstring    1 CPEXFORM       Savearea format/content
          1... ....      CPEXLARG       X'80' Savearea is large
                                        allocation size
          .1.. ....      CPEXCREG       X'40' Savearea has contiguous
                                        64-bit register fields (SVGBK)
          ..1. ....      CPEXRG64       X'20' Savearea accommodates 64
                                        bits per register (SVGBK or SAVBK
                                        with SAVEHIRG extension)
          .11. ....      CPEXREGF       CPEXCREG+CPEXRG64 Mask for
                                        register-layout bits above; has
                                        value: noformat 00 for SAVBK 01
                                        for SAVBK with SAVEHIRG 11 for
                                        SVGBK enoformat
0014   20 Address      4 CPEXRETN       Return linkage routine address
0018   24 Bitstring   64 CPEXREGS (0)   CALLERS REGISTERS - R0 TO R15
0018   24 Signed       4 CPEXR0         REGISTER 0
001C   28 Signed       4 CPEXR1         REGISTER 1
0020   32 Signed       4 CPEXR2 (0)     REGISTER 2 THE FOLLOWING BYTE
                                        DEFINITIONS FOR CPEXR2 ARE FOR
                                        TESTING OF PARAMETERS PASSED
                                        BETWEEN MODULES.
0020   32 Bitstring    1 CPEXR2B0       REGISTER 2 BYTE 0
0021   33 Bitstring    1 CPEXR2B1       REGISTER 2 BYTE 1
0022   34 Bitstring    1 CPEXR2B2       REGISTER 2 BYTE 2
0023   35 Bitstring    1 CPEXR2B3       REGISTER 2 BYTE 3
0024   36 Signed       4 CPEXR3         REGISTER 3
0028   40 Signed       4 CPEXR4         REGISTER 4
002C   44 Signed       4 CPEXR5         REGISTER 5
0030   48 Signed       4 CPEXR6         REGISTER 6
0034   52 Signed       4 CPEXR7         REGISTER 7
0038   56 Signed       4 CPEXR8         REGISTER 8
003C   60 Signed       4 CPEXR9         REGISTER 9
0040   64 Signed       4 CPEXR10        REGISTER 10
0044   68 Signed       4 CPEXR11        REGISTER 11; ALSO VMDBK ADDRESS
                                        OF USER ON WHICH CPEBK IS
                                        SCHEDULED
0048   72 Signed       4 CPEXR12        REGISTER 12
004C   76 Signed       4 CPEXR13        REGISTER 13; ALSO PREVIOUS SAVE
                                        AREA ADDRESS ON CALL
0050   80 Signed       4 CPEXR14        REGISTER 14; ALSO RETURN ADDRESS
                                        ON CALL OR STACKED SAVBK RETURN
0054   84 Signed       4 CPEXR15        GOTO ADDRESS ON SCHEDULED CPEBK
                                        EXECUTION
0058   88 Bitstring   40 CPEXWRK (0)    WORK AREA
0058   88 Signed       4 CPEXWRK0       WORK AREA
005C   92 Signed       4 CPEXWRK1       WORK AREA
0060   96 Signed       4 CPEXWRK2       WORK AREA
0064  100 Signed       4 CPEXWRK3       WORK AREA
0068  104 Signed       4 CPEXWRK4       WORK AREA
006C  108 Signed       4 CPEXWRK5       WORK AREA
0070  112 Signed       4 CPEXWRK6       WORK AREA
0074  116 Signed       4 CPEXWRK7       WORK AREA
0078  120 Signed       4 CPEXWRK8       WORK AREA
007C  124 Signed       4 CPEXWRK9       WORK AREA
      CPEBK extension for ESAME:  In the ESAME gen of CP, all
      saveareas (and hence CPEBKs) are 256 bytes.  Blocks in
      the CPEBK (as opposed to SVGBK) format *may* have the high
      halves of registers stored in the tail end.  Bit CPEXRG64
      in the header indicates that these fields are valid.
0080  128 Signed       4 * (16)         Reserved for future use
00C0  192 Bitstring   64 CPEXHIRG (0)
00C0  192 Signed       4 CPEXH0         High word of ESAME general reg 0
00C4  196 Signed       4 CPEXH1         High word of ESAME general reg 1
00C8  200 Signed       4 CPEXH2         High word of ESAME general reg 2
00CC  204 Signed       4 CPEXH3         High word of ESAME general reg 3
00D0  208 Signed       4 CPEXH4         High word of ESAME general reg 4
00D4  212 Signed       4 CPEXH5         High word of ESAME general reg 5
00D8  216 Signed       4 CPEXH6         High word of ESAME general reg 6
00DC  220 Signed       4 CPEXH7         High word of ESAME general reg 7
00E0  224 Signed       4 CPEXH8         High word of ESAME general reg 8
00E4  228 Signed       4 CPEXH9         High word of ESAME general reg 9
00E8  232 Signed       4 CPEXH10        High word of ESAME general reg 10
00EC  236 Signed       4 CPEXH11        High word of ESAME general reg 11
00F0  240 Signed       4 CPEXH12        High word of ESAME general reg 12
00F4  244 Signed       4 CPEXH13        High word of ESAME general reg 13
00F8  248 Signed       4 CPEXH14        High word of ESAME general reg 14
00FC  252 Signed       4 CPEXH15        High word of ESAME general reg 15
          00000020       CPEXSIZE       (*-CPEBK+7)/8 SIZE IN DOUBLE
                                        WORDS

 

CPEBK Storage Layout

          
*** CPEBK - CP TASK EXECUTION BLOCK
*
*     +---------------------------+---------------------------+
*   0 |         CPEXFPNT          |         CPEXBPNT          |
*     +---------------------------+---------------------------+
*   8 |         CPEXSFQP          |         CPEXCPRQ          |
*     +------+------+------+------+---------------------------+
*  10 |:XSCHC|:XCALC|//////|:XFORM|         CPEXRETN          |
*     +------+------+------+------+---------------------------+
*  18 |          CPEXR0           |          CPEXR1           |
*     +------+------+------+------+---------------------------+
*  20 |:XR2B0|:XR2B1|:XR2B2|:XR2B3|          CPEXR3           |
*     +------+------+------+------+---------------------------+
*  28 |          CPEXR4           |          CPEXR5           |
*     +---------------------------+---------------------------+
*  30 |          CPEXR6           |          CPEXR7           |
*     +---------------------------+---------------------------+
*  38 |          CPEXR8           |          CPEXR9           |
*     +---------------------------+---------------------------+
*  40 |         CPEXR10           |         CPEXR11           |
*     +---------------------------+---------------------------+
*  48 |         CPEXR12           |         CPEXR13           |
*     +---------------------------+---------------------------+
*  50 |         CPEXR14           |         CPEXR15           |
*     +---------------------------+---------------------------+
*  58 |         CPEXWRK0          |         CPEXWRK1          |
*     +---------------------------+---------------------------+
*  60 |         CPEXWRK2          |         CPEXWRK3          |
*     +---------------------------+---------------------------+
*  68 |         CPEXWRK4          |         CPEXWRK5          |
*     +---------------------------+---------------------------+
*  70 |         CPEXWRK6          |         CPEXWRK7          |
*     +---------------------------+---------------------------+
*  78 |         CPEXWRK8          |         CPEXWRK9          |
*     +---------------------------+---------------------------+
*  80 |///////////////////////////////////////////////////////|
*     =///////////////////////////////////////////////////////=
*     |///////////////////////////////////////////////////////|
*     +---------------------------+---------------------------+
*  C0 |          CPEXH0           |          CPEXH1           |
*     +---------------------------+---------------------------+
*  C8 |          CPEXH2           |          CPEXH3           |
*     +---------------------------+---------------------------+
*  D0 |          CPEXH4           |          CPEXH5           |
*     +---------------------------+---------------------------+
*  D8 |          CPEXH6           |          CPEXH7           |
*     +---------------------------+---------------------------+
*  E0 |          CPEXH8           |          CPEXH9           |
*     +---------------------------+---------------------------+
*  E8 |         CPEXH10           |         CPEXH11           |
*     +---------------------------+---------------------------+
*  F0 |         CPEXH12           |         CPEXH13           |
*     +---------------------------+---------------------------+
*  F8 |         CPEXH14           |         CPEXH15           |
*     +---------------------------+---------------------------+
* 100
*
*** CPEBK - CP TASK EXECUTION BLOCK

 

CPEBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
CPEXBPNT       0004
CPEXCALC       0011
CPEXCPRQ       000C
CPEXCREG       0013 40
CPEXCSAV       0011 04
CPEXDMCO       0010 01
CPEXFORM       0013
CPEXFPNT       0000
CPEXGET        0011 40
CPEXHEAD       0000
CPEXHIRG       00C0
CPEXH0         00C0
CPEXH1         00C4
CPEXH10        00E8
CPEXH11        00EC
CPEXH12        00F0
CPEXH13        00F4
CPEXH14        00F8
CPEXH15        00FC
CPEXH2         00C8
CPEXH3         00CC
CPEXH4         00D0
CPEXH5         00D4
CPEXH6         00D8
CPEXH7         00DC
CPEXH8         00E0
CPEXH9         00E4
CPEXLARG       0013 80
CPEXNOFR       0010 80
CPEXOPEN       0011 80
CPEXPGLK       0011 20
CPEXPGWT       0011 10
CPEXREGF       0013 60
CPEXREGS       0018
CPEXRETN       0014
CPEXRG64       0013 20
CPEXRTNF       0010 10
CPEXR0         0018
CPEXR1         001C
CPEXR10        0040
CPEXR11        0044
CPEXR12        0048
CPEXR13        004C
CPEXR14        0050
CPEXR15        0054
CPEXR2         0020
CPEXR2B0       0020
CPEXR2B1       0021
CPEXR2B2       0022
CPEXR2B3       0023
CPEXR3         0024
CPEXR4         0028
CPEXR5         002C
CPEXR6         0030
CPEXR7         0034
CPEXR8         0038
CPEXR9         003C
CPEXSCHC       0010
CPEXSFQP       0008
CPEXSIZE       00FC 00000020
CPEXSKCL       0010 20
CPEXSKCR       0010 40
CPEXSPAR       0011 08
CPEXUCFM       0010 08
CPEXURGT       0010 04
CPEXWRK        0058
CPEXWRK0       0058
CPEXWRK1       005C
CPEXWRK2       0060
CPEXWRK3       0064
CPEXWRK4       0068
CPEXWRK5       006C
CPEXWRK6       0070
CPEXWRK7       0074
CPEXWRK8       0078
CPEXWRK9       007C

This information is based on z/VM V5R1.0. Last updated on 8 Sep 2004 at 13:09:00 EDT.
Copyright IBM Corporation, 1990, 2004