BPXYTHDQ — Mapping of THDQ structure for BPX1PQG

BPXYTHDQ maps the THDQ structure that is supplied to the BPX1PQG callable service.
                                                      
            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