BPXYTHDQ ,
THDQ DSECT THDQ - THDQ structure for BPX1PQG callable X
service
THDQHDR DS 1CL0048 +0 Header section
ORG THDQHDR
THDQEYE DS 1CL0004 +0 eye catcher - 'THDQ'
THDQLENGTH DS 1FL2 +4 Length of THDQ structure
THDQVERSION DS 1FL2 +6 Version number
THDQNUMENTS DS 1FL4 +8 Number of entries in thread array X
ThdqArray
THDQFLAGS DS 1FL4 +C Flags relating to contents of structure
ORG THDQFLAGS
THDQFLAGS1 DS 1FL1 +C 1st flag byte
ORG THDQFLAGS1
THDQALLSAFE EQU X'80' All threads are frozen in a safe state
ORG THDQFLAGS1+X'00000001'
THDQFLAGS2 DS 1FL1 +D 2nd flag byte
THDQFLAGS3 DS 1FL1 +E 3rd flag byte (used by exit). Cleared on X
initial call to LE exit
THDQFLAGS4 DS 1FL1 +F 4th flag byte
ORG THDQFLAGS4
THDQGETSTATE EQU X'80' Get State Data requested by caller (input to X
exit)
ORG THDQFLAGS+X'00000004'
THDQEXITWKA DS 1CL0016 +10 Reserved for registered LE exit
DS 1CL0016 +20 Reserved
THDQDYN DS 0C +30 Dynamic section
*
* ***************************************************************
* * *
* * Declare array of thread areas *
* * *
* ***************************************************************
*
*
THDQARRAY DS 1CL0256 Array of Thread Areas
ORG THDQARRAY
THDQATHID DS 1CL0008 Thread ID of target thread
THDQAFLAGS DS 1FL4 Flags returned for target thread
ORG THDQAFLAGS
THDQAFLAGS1 DS 1FL1 Flag1 returned for target thread
ORG THDQAFLAGS1
THDQANOTFOUND EQU X'80' Thread was not found, no data was returned
THDQAQFRZSAFE EQU X'40' Thread is now frozen in a safe state X
determined by Language Env Exit
THDQAOTHERLE EQU X'20' Thread is part of other language environment X
process
THDQANODATA EQU X'10' Status data is not available for this thread X
(if Get State is requested). The PSW/Regs and X
other status info are not valid. The thread X
may be in the process of being created.
THDQACONDWAIT EQU X'08' Task is in Condition Wait. X
If this bit is set, only the DSA ptr -- X
Reg13 or Reg4 -- is returned. ThdQAPswIA X
and all the other regs in ThdQARegs are set X
to 0. (Caller should already have properly X
saved the PSW and registers information.)
ORG THDQAFLAGS1+X'00000001'
THDQAFLAGS2 DS 1FL1 Flag2 returned for target thread
THDQAFLAGS3 DS 1FL1 Flag3 returned for target thread
THDQAFLAGS4 DS 1FL1 Flag4 -- internal flags used by system
ORG THDQAFLAGS4
THDQAQUICKFRZ EQU X'80' Thread was frozen without going through the X
RTL SIR or the slow freeze exit routine. X
1=quick freeze (Status stopped) 0=traditional X
freeze
THDQAREGSOK EQU X'40' Registers and PSW retrieved OK
THDQASKIP EQU X'20' 1 = LE exit should not look at this thread.
ORG THDQAFLAGS+X'00000004'
THDQAREGSSRC DS 1FL2 (Internal) Source from which the regs are X
retrieved. Valid if ThdqARegsOK set.
DS 1CL0002 Reserved
THDQAREGS DS 1CL0128 Registers of target thread
ORG THDQAREGS
THDQAREGSH DS 1CL0064 High registers 0-15
THDQAREGSL DS 1CL0064 Low registers 0-15
THDQADOWNSTACKPTR DS 1CL0008 Down Stack start address of target thread X
(For XPLINK)
ORG THDQADOWNSTACKPTR
THDQADSTACKPTRH DS 1AL4 High part of Stack address
THDQADSTACKPTRL DS 1AL4 Low part of Stack address
THDQAUPSTACKPTR DS 1CL0008 Up Stack start address of target thread
ORG THDQAUPSTACKPTR
THDQAUSTACKPTRH DS 1AL4 High part of Stack address
THDQAUSTACKPTRL DS 1AL4 Low part of Stack address
THDQAPSWIA DS 1CL0008 Instruction address of target thread
ORG THDQAPSWIA
THDQAPSWIAH DS 1AL4 High part of instruction addr
THDQAPSWIAL DS 1AL4 Low part of instruction addr
THDQACAAPTR DS 1CL0008 LE CAA pointer for thread
ORG THDQACAAPTR
THDQACAAPTRH DS 1AL4 High part of CAA pointer
THDQACAAPTRL DS 1AL4 Low part of CAA pointer
DS 1CL0004 Reserved
THDQATCBPTR DS 1AL4 TCB Pointer for target thread
THDQAEXITWKA DS 1CL0008 Thread work area used by LE exit (for PD)
DS 1CL0064 Reserved
*
* Declare constants
*
*
THDQ#REGSPPSD EQU 1 Regs from PPSD
THDQ#REGSIRB EQU 2 Regs from IRB
THDQ#REGSUSTA EQU 3 Regs from USTA
THDQ#REGSLS EQU 4 Regs from link stack
THDQ#REGSTCB EQU 5 Regs from TCB/STCB
THDQ#REGSRB EQU 6 Regs from RB/XSB
THDQ#REGSCW EQU 7 Regs for CondWait. Status returned as zeroes
THDQ#ID EQU C'THDQ' Eye catcher
THDQ#VER EQU 1 Current version of control block
THDQ#VER01 EQU 1 Version 1 of control block
THDQ_LEN EQU *-THDQ