CPEBK - 64-bit CP - V4R4.0

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
    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
    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 V4R4.0. Last updated on 30 Jul 2003 at 12:34:54 EDT.
Copyright IBM Corporation, 1990, 2003