Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
CPEBK
Control Block Contents
CPEBK DSECT
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) 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 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 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. RELOCATION CONSIDERATIONS : None 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 0000 0 Bitstring 1 CPEXHEAD (0) Savearea header 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. Eventually, all header fields are to be SVHxxxx. 0000 0 Address 4 CPEXFPNT General forward pointer 0004 4 Address 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' CPEXNOFR Do not fret savearea on dispatch .1.. .... CPEXSKCR X'40' CPEXSKCR This is a stacked return ..1. .... CPEXSKCL X'20' CPEXSKCL This is a stacked call ...1 .... CPEXRTNF X'10' CPEXRTNF "Return" with no fret .... 1... CPEXUCFM X'08' CPEXUCFM Stack as console function work .... .1.. CPEXURGT X'04' CPEXURGT Stack as urgent work .... ...1 CPEXDMCO X'01' CPEXDMCO Dispatch on the master CPU only 0011 17 Bitstring 1 CPEXCALC Block usage status 1... .... SVHOPEN X'80' SVHOPEN *!* .1.. .... CPEXGET X'40' CPEXGET Savearea obtained via GET ..1. .... CPEXCSAV X'20' CPEXCSAV FPNT is ptr to C savearea chain .... .1.. SVHSVA X'04' SVHSVA *!* .... ..1. SVHIS2W X'02' SVHIS2W *!* .... ...1 SVHHF2W X'01' SVHHF2W *!* 0012 18 Bitstring 1 CPEXIAC Address mode when we HCPCALL 0013 19 Bitstring 1 CPEXFORM Savearea format/content 1... .... CPEXSTAM X'80' CPEXSTAM For STATIC entry pt, TmodeSTD or TmodeINT: ARs saved by HCPENTER, and should be restored by HCPEXIT. Also, set by HCPSTK and others, tested by HCPDSB, indicating ARs should be restored at CPEBK unstack time. .1.. .... CPEXCREG X'40' CPEXCREG Savearea has contiguous 64-bit register fields (SVGBK) ..1. .... CPEXRG64 X'20' CPEXRG64 Savearea accommodates 64 bits per register (SVGBK, or SAVBK with SAVEHIRG extension) .11. .... CPEXREGF CPEXCREG+CPEXRG64 CPEXREGF Mask for register-layout bits above; has value: 00 for SAVBK 01 for SAVBK with SAVEHIRG 11 for SVGBK 0014 20 Address 4 CPEXRETN Return linkage routine address 0018 24 Bitstring 1 CPEXBODY (0) Savearea body 0018 24 Bitstring 232 CPEXAREA (0) Register and working storage 0018 24 Bitstring 64 CPEXREGS (0) Caller's registers 0018 24 Signed 4 CPEXR0 (0) Caller's saved register 0 0018 24 Bitstring 1 CPEXR0B0 byte 0 0019 25 Bitstring 1 CPEXR0B1 byte 1 001A 26 Bitstring 1 CPEXR0B2 byte 2 001B 27 Bitstring 1 CPEXR0B3 byte 3 001C 28 Signed 4 CPEXR1 (0) Caller's saved register 1 001C 28 Bitstring 1 CPEXR1B0 byte 0 001D 29 Bitstring 1 CPEXR1B1 byte 1 001E 30 Bitstring 1 CPEXR1B2 byte 2 001F 31 Bitstring 1 CPEXR1B3 byte 3 0020 32 Signed 4 CPEXR2 (0) Caller's saved register 2 THE FOLLOWING BYTE DEFINITIONS OF SAVER2 ARE FOR TESTING PARAMETERS PASSED BETWEEN MODULES. 0020 32 Bitstring 1 CPEXR2B0 byte 0 0021 33 Bitstring 1 CPEXR2B1 byte 1 0022 34 Bitstring 1 CPEXR2B2 byte 2 0023 35 Bitstring 1 CPEXR2B3 byte 3 0024 36 Signed 4 CPEXR3 Caller's saved register 3 0028 40 Signed 4 CPEXR4 Caller's saved register 4 002C 44 Signed 4 CPEXR5 Caller's saved register 5 0030 48 Signed 4 CPEXR6 Caller's saved register 6 0034 52 Signed 4 CPEXR7 Caller's saved register 7 0038 56 Signed 4 CPEXR8 Caller's saved register 8 003C 60 Signed 4 CPEXR9 Caller's saved register 9 0040 64 Signed 4 CPEXR10 Caller's saved register 10 0044 68 Signed 4 CPEXR11 Caller's saved register 11; ALSO VMDBK ADDRESS OF USER ON WHICH SAVBK IS SCHEDULED 0048 72 Bitstring 16 CPEXRCF (0) Caller's saved register 12-15 0048 72 Signed 4 CPEXR12 Caller's saved register 12 004C 76 Signed 4 CPEXR13 Caller's saved register 13; ALSO PREVIOUS SAVBK ADDRESS ON CALL 0050 80 Signed 4 CPEXR14 Caller's saved register 14; ALSO RETURN ADDRESS ON CALL OR STACKED SAVBK RETURN 0054 84 Signed 4 CPEXR15 Caller's saved register 15; ALSO GOTO ADDRESS ON SCHEDULED SAVBK EXECUTION; ALSO REGISTER 15 RETURN CODE ON HCPEXIT OR STACKED SAVBK RETURN 0058 88 Bitstring 40 CPEXWRK (0) Workarea for callee 0058 88 Signed 4 CPEXWRK0 005C 92 Signed 4 CPEXWRK1 0060 96 Signed 4 CPEXWRK2 0064 100 Signed 4 CPEXWRK3 0068 104 Signed 4 CPEXWRK4 006C 108 Signed 4 CPEXWRK5 0070 112 Signed 4 CPEXWRK6 0074 116 Signed 4 CPEXWRK7 0078 120 Signed 4 CPEXWRK8 007C 124 Signed 4 CPEXWRK9 SAVBK extension: Saveareas in the SAVBK format *may* have the high halves of registers stored in the tail end. Bit SAVERG64 in the savearea header indicates that these fields are valid. 0080 128 Signed 4 * (4) Reserved for future use 0090 144 Signed 4 * (4) Reserved for future use The SAVBK SAVEAARP and the SVGBK SVGAARP fields must be at the same offset into each control block. The only available area in both that satisfies this requirement is, unfortunately, here in the middle of the control block. 00A0 160 Address 4 CPEXOPNR A(who set SVHOPEN) 00A4 164 Signed 4 * Reserved for IBM use 00A8 168 Address 4 CPEXAARP A(AR sidecar) for PFX saveareas 00AC 172 Bitstring 1 CPEXIACA Caller actual IAC 00AD 173 Bitstring 1 CPEXAMDE Amode of callee at entry. 00AE 174 Bitstring 1 CPEXIACR Caller "should be" IAC 00AF 175 Bitstring 1 CPEXIACE Callee "should be" IAC 00B0 176 Signed 4 * (4) Reserved for future use 00C0 192 Bitstring 64 CPEXHIRG (0) 00C0 192 Signed 4 CPEXH0 High word of zArch general reg 0 00C4 196 Signed 4 CPEXH1 High word of zArch general reg 1 00C8 200 Signed 4 CPEXH2 High word of zArch general reg 2 00CC 204 Signed 4 CPEXH3 High word of zArch general reg 3 00D0 208 Signed 4 CPEXH4 High word of zArch general reg 4 00D4 212 Signed 4 CPEXH5 High word of zArch general reg 5 00D8 216 Signed 4 CPEXH6 High word of zArch general reg 6 00DC 220 Signed 4 CPEXH7 High word of zArch general reg 7 00E0 224 Signed 4 CPEXH8 High word of zArch general reg 8 00E4 228 Signed 4 CPEXH9 High word of zArch general reg 9 00E8 232 Signed 4 CPEXH10 High word of zArch general reg 10 00EC 236 Signed 4 CPEXH11 High word of zArch general reg 11 00F0 240 Signed 4 CPEXH12 High word of zArch general reg 12 00F4 244 Signed 4 CPEXH13 High word of zArch general reg 13 00F8 248 Signed 4 CPEXH14 High word of zArch general reg 14 00FC 252 Signed 4 CPEXH15 High word of zArch general reg 15 0100 256 Bitstring 64 CPEXARS (0) Access Registers 0100 256 Signed 4 CPEXAR0 AR0 0104 260 Signed 4 CPEXAR1 AR1 0108 264 Signed 4 CPEXAR2 AR2 010C 268 Signed 4 CPEXAR3 AR3 0110 272 Signed 4 CPEXAR4 AR4 0114 276 Signed 4 CPEXAR5 AR5 0118 280 Signed 4 CPEXAR6 AR6 011C 284 Signed 4 CPEXAR7 AR7 0120 288 Signed 4 CPEXAR8 AR8 0124 292 Signed 4 CPEXAR9 AR9 0128 296 Signed 4 CPEXAR10 AR10 012C 300 Signed 4 CPEXAR11 AR11 0130 304 Signed 4 CPEXAR12 AR12 0134 308 Signed 4 CPEXAR13 AR13 0138 312 Signed 4 CPEXAR14 AR14 013C 316 Signed 4 CPEXAR15 AR15 0140 320 Signed 4 CPEX2ARS (16) AR storage for TmINT routines 0180 384 Bitstring 44 CPEXTSK (0) Fields copied from TSKBK in 1 MVC 0180 384 Bitstring 1 * - TSKFLAGS 0181 385 Bitstring 1 * (3) - Reserved for IBM use 0184 388 Signed 4 * - TSKCR0SAV 0188 392 Address 4 * - TSKSPIEA 018C 396 Bitstring 4 * - TSKSPIEM 0190 400 Dbl-Word 8 * - Reserved for IBM use 0198 408 Address 4 * - TSKEXPIR 019C 412 Address 4 * - TSKSTERR 01A0 416 Address 4 * - TSKINVAD 01A4 420 Signed 4 * - Reserved for IBM use 01A8 424 Bitstring 1 * - TSKEVENT 01A9 425 Bitstring 1 * (3) - Reserved for IBM use 01AC 428 Bitstring 1 * (84) Reserved for future use 00000040 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|:XIAC |:XFORM| CPEXRETN | * +------+------+------+------+------+------+------+------+ * 18 |:XR0B0|:XR0B1|:XR0B2|:XR0B3|:XR1B0|:XR1B1|:XR1B2|:XR1B3| * +------+------+------+------+------+------+------+------+ * 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 |///////////////////////////////////////////////////////| * |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 90 |///////////////////////////////////////////////////////| * |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * A0 | CPEXOPNR |///////////////////////////| * +---------------------------+------+------+------+------+ * A8 | CPEXAARP |:XIACA|:XAMDE|:XIACR|:XIACE| * +---------------------------+------+------+------+------+ * B0 |///////////////////////////////////////////////////////| * |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * 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 | CPEXAR0 | CPEXAR1 | * +---------------------------+---------------------------+ * 108 | CPEXAR2 | CPEXAR3 | * +---------------------------+---------------------------+ * 110 | CPEXAR4 | CPEXAR5 | * +---------------------------+---------------------------+ * 118 | CPEXAR6 | CPEXAR7 | * +---------------------------+---------------------------+ * 120 | CPEXAR8 | CPEXAR9 | * +---------------------------+---------------------------+ * 128 | CPEXAR10 | CPEXAR11 | * +---------------------------+---------------------------+ * 130 | CPEXAR12 | CPEXAR13 | * +---------------------------+---------------------------+ * 138 | CPEXAR14 | CPEXAR15 | * +---------------------------+---------------------------+ * 140 | | * = CPEX2ARS = * | | * +------+--------------------+---------------------------+ * 180 |//////|////////////////////|///////////////////////////| * +------+--------------------+---------------------------+ * 188 |///////////////////////////|///////////////////////////| * +---------------------------+---------------------------+ * 190 |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * 198 |///////////////////////////|///////////////////////////| * +---------------------------+---------------------------+ * 1A0 |///////////////////////////|///////////////////////////| * +------+--------------------+---------------------------+ * 1A8 |//////|////////////////////|///////////////////////////| * +------+--------------------+///////////////////////////| * 1B0 |///////////////////////////////////////////////////////| * =///////////////////////////////////////////////////////= * |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 200 * *** CPEBK - CP TASK EXECUTION BLOCK
CPEBK Cross Reference
Symbol Dspl Value -------------- ---- ----- CPEXAARP 00A8 CPEXAMDE 00AD CPEXAREA 0018 CPEXARS 0100 CPEXAR0 0100 CPEXAR1 0104 CPEXAR10 0128 CPEXAR11 012C CPEXAR12 0130 CPEXAR13 0134 CPEXAR14 0138 CPEXAR15 013C CPEXAR2 0108 CPEXAR3 010C CPEXAR4 0110 CPEXAR5 0114 CPEXAR6 0118 CPEXAR7 011C CPEXAR8 0120 CPEXAR9 0124 CPEXBODY 0018 CPEXBPNT 0004 CPEXCALC 0011 CPEXCPRQ 000C CPEXCREG 0013 40 CPEXCSAV 0011 20 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 CPEXIAC 0012 CPEXIACA 00AC CPEXIACE 00AF CPEXIACR 00AE CPEXNOFR 0010 80 CPEXOPNR 00A0 CPEXRCF 0048 CPEXREGF 0013 60 CPEXREGS 0018 CPEXRETN 0014 CPEXRG64 0013 20 CPEXRTNF 0010 10 CPEXR0 0018 CPEXR0B0 0018 CPEXR0B1 0019 CPEXR0B2 001A CPEXR0B3 001B CPEXR1 001C CPEXR1B0 001C CPEXR1B1 001D CPEXR1B2 001E CPEXR1B3 001F 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 01AC 00000040 CPEXSKCL 0010 20 CPEXSKCR 0010 40 CPEXSTAM 0013 80 CPEXTSK 0180 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 CPEX2ARS 0140 SVHHF2W 0011 01 SVHIS2W 0011 02 SVHOPEN 0011 80 SVHSVA 0011 04
Copyright IBM Corporation, 1990, 2011