Per-Task Data Area for OS/2 Warp V4.0 RETAIL kernel

┌────────────────────┬──────┬──────┬────┬────────────────────────────────────────┐
│Field NameOffsetLengthTypeDescription                             │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPTDAParent         │+0    │4     │D   │Parent PTDA                             │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPTDASelf           │+4    │4     │D   │This PTDA                               │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPTDAFirstChild     │+8    │4     │D   │Head of child chain PTDA                │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPTDAExecChild      │+c    │4     │D   │New Child PTDA (Child being exec'ed)    │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPTDANextSibling    │+10   │4     │D   │Next sibling's PTDA                     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPTDAPrevSibling    │+14   │4     │D   │Previous sibling's PTDA                 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pszproc        │+18   │4     │D   │Pointer to the EXE file this process is │
│                    │      │      │    │executing. Used by PerfView             │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pTCBHole       │+1c   │4     │D   │some TCB before first Tid 'hole'        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pTCBHead       │+20   │4     │D   │Head of list of active TCBs owned by    │
│                    │      │      │    │this process                            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_cTCB           │+24   │2     │W   │Number of TCBs in use                   │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ctib           │+26   │2     │W   │Count of TIBs allocated                 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_avatib         │+28   │10    │D   │Pointers to TIB arrays                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pdcb           │+38   │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_flDbg          │+3c   │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ah             │+40   │40    │S   │Private arena header                    │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pgdata         │+80   │26    │S   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_environ        │+a6   │2     │W   │handle to process's envt seg            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pBeginLIBPATH  │+a8   │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pEndLIBPATH    │+ac   │4     │D   │D75220- support dynamic libpath         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pgpc           │+b0   │240   │S   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pPVDBPrc       │+2f0  │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pSGSList       │+2f4  │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pexllist       │+2f8  │4     │D   │Flat pointer to exit list data          │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_cdllterm       │+2fc  │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CDS_Handle          │+300  │34    │W   │array of current directory handles      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│OEMPtr              │+334  │2     │W   │Offset to OEM-Added fields              │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│VerFlg              │+336  │1     │B   │Initialize with verify off              │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│LCurDrv             │+337  │1     │B   │Logical current drive - Default A:      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│PCurDrv             │+338  │1     │B   │physical drive after assign mapping     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│LIS_Fgnd            │+339  │1     │B   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│FgndOnly            │+33a  │1     │B   │foreground only flag                    │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad1           │+33b  │1     │B   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pTCBCritSec    │+33c  │4     │D   │TCB that did enter CritSec              │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pTCBPriQCritSec│+340  │4     │D   │TCBs awaiting CritSec wakeup            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_cCritSec       │+344  │2     │W   │Critical Section Count                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CurrentPDB          │+346  │2     │W   │Currently active PDB (V86 segment)      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│seltss              │+348  │2     │W   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ProcFlag            │+34a  │2     │W   │if == 1 then this is a special process  │
│                    │      │      │    │(swapper or screen switch); NO removable│
│                    │      │      │    │media buffer will be allocated to this  │
│                    │      │      │    │process.                                │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ForcedActions  │+34c  │4     │D   │pending action bits                     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ulExitCode     │+350  │4     │D   │Exit code of last task                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ulExitType     │+354  │4     │D   │Type of exit                            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ulExitTID      │+358  │4     │D   │Exit Thread ID (32-bit exceptions)      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ThisCDS             │+35c  │4     │D   │Address of current CDS *REDIR* 3.10     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pCDS           │+360  │2     │W   │SS relative pointer to a curdir struct  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CDSsize             │+362  │2     │W   │Size of CDS pointed to by ThisCDS ONLY  │
│                    │      │      │    │used for CDS entries in RMP seg         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sattrib             │+364  │2     │W   │Storage for search attrs *REDIR* 3.10   │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│sPCB                │+366  │2     │W   │Selector of Profile Control Block       │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pPCB           │+368  │4     │D   │Pointer to Profile Control Block        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Max             │+36c  │2     │W   │highest JFN used so far                 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│NextSrchH           │+36e  │2     │W   │Next value to use for search handle     │
│                    │      │      │    │First value used will be 2.             │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SrchRmp             │+370  │4     │D   │Handle & Selector for RMP segment we    │
│                    │      │      │    │keep search handles in.                 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│FNotifyLocal_First  │+374  │2     │W   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│FNotifyLocal_Count  │+376  │2     │W   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_ignf            │+378  │2     │W   │bit vector of ignored signals           │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_hndf            │+37a  │2     │W   │bit vector of handled signals           │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_errf            │+37c  │2     │W   │bit vector of error generating signals  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_attempted       │+37e  │2     │W   │bit vector of signals we've tried to    │
│                    │      │      │    │handle with 32-bit exceptions           │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_arg             │+380  │10    │W   │byte vector of signal arguments         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_termtid         │+390  │2     │W   │'Terminator' TID for APTERM.            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│HoldSigCnt          │+392  │2     │W   │DOSHOLDSIGNAL counter                   │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SigFocusCnt         │+394  │2     │W   │PUBLIB DOS32SETSIGNALEXCEPTIONFOCUS     │
│                    │      │      │    │count                                   │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Table           │+396  │28    │W   │default handle table                    │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Flags           │+3be  │14    │B   │default JFN flags table                 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_rasflag        │+3d2  │2     │W   │RAS trace indicator                     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SysSemPTDATbl       │+3d4  │100   │S   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SavedHardErr        │+4d4  │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ptdasem        │+4d8  │8     │S   │PTDA semaphore that is, inter-thread    │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_DLMsem         │+4e0  │8     │S   │b732954 Edd PTDA semaphore that is,     │
│                    │      │      │    │inter-thread                            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_lidt           │+4e8  │6     │W   │current IDT limit/base                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Csid                │+4ee  │2     │W   │Command Subtree ID                      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Behav_bit           │+4f0  │2     │W   │program behavior bits                   │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│MSW                 │+4f2  │2     │W   │CPU matching status word                │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_rsrclist       │+4f4  │4     │D   │far pointer to local resource list      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pldrdldHead    │+4f8  │4     │D   │loader demand load data list            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPrSemTbl           │+4fc  │4     │D   │(void * => PSEM) pointer to private     │
│                    │      │      │    │semaphore table                         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulPrTblSize         │+500  │4     │D   │size of pPrSemTbl in dwords             │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulPrTotUsed         │+504  │4     │D   │number of entries in pPrSemTbl          │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulPrNextFree        │+508  │4     │D   │next free slot in pPrSemTbl             │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│hksPrTbl            │+50c  │4     │D   │kernel semaphore handle for private     │
│                    │      │      │    │semaphore table                         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pShSemBmp           │+510  │4     │D   │pointer to private bitmap for the shared│
│                    │      │      │    │semaphore table                         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulShBmpSize         │+514  │4     │D   │size of pShSemBmp in bits               │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│hksShBmp            │+518  │4     │D   │kernel semaphore handle for private     │
│                    │      │      │    │semaphore table                         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulMtxOwned          │+51c  │4     │D   │number of mutex owned by this process in│
│                    │      │      │    │the two sem tables                      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_TLMA           │+520  │4     │D   │in use flag and dword copy count        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_TLMABM         │+524  │4     │B   │thread local memory                     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_TLMASizeMap    │+528  │20    │B   │thread local memory                     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Cons_Loc            │+548  │A     │S   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SysCallSfcn         │+552  │1     │B   │Value of AL on system entry             │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SysCall             │+553  │1     │B   │Last system call processed              │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│KBD_Mode            │+554  │1     │B   │Keyboard input mode                     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_NewFiles       │+555  │1     │B   │If bit one is set, process supports //  │
│                    │      │      │    │54400 new files (long names)            │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│AutoFail            │+556  │1     │B   │Non-zero if I 24 FAILed magically       │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CP_Flgs             │+557  │1     │B   │Default is no codepage in system.       │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_vec             │+558  │20    │D   │signal handlers                         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Exc_vec             │+578  │1C    │D   │OSOLETE exception vectors               │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_timerhead      │+594  │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_extsig         │+598  │1     │B   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad6           │+59b  │3     │B   │alignment                               │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPvwDataBlk         │+59c  │4     │D   │Used by perfview                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_lanman_sec     │+5a0  │4     │D   │Used by LANMAN & HPFS for security.     │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SigFTerm            │+5a4  │2     │W   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ppgdata        │+5a6  │2     │W   │offset ptda_pgdata                      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_child          │+5a8  │2     │W   │New child PTDA handle (Child being      │
│                    │      │      │    │Exec'ed)                                │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_childalias     │+5aa  │2     │W   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_handle         │+5ac  │2     │W   │handle to this segment                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_module         │+5ae  │2     │W   │program module handle for process       │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ldthandle      │+5b0  │2     │W   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ldtpgmap       │+5b2  │2     │W   │Bitmap of valid LDT pages               │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ldtaddr        │+5b4  │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CP_CaseMapTbl       │+5b8  │4     │D   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│codepage_tag        │+5bc  │2     │W   │the current code page                   │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Length          │+5be  │2     │W   │Size of JFN table in bytes              │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_pTable          │+5c0  │4     │D   │PM pointer to JFN table                 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Flg_Ptr         │+5c4  │4     │D   │pointer to JFN flags                    │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad            │+5c8  │1     │B   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr_Locus        │+5c9  │1     │B   │Extended Error Locus *REDIR* 3.10       │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr              │+5ca  │2     │W   │Extended Error code *REDIR* 3.10        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr_Action       │+5cc  │1     │B   │Extended Error Action *REDIR* 3.10      │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr_Class        │+5cd  │1     │B   │Extended Error Class *REDIR* 3.10       │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_infoseg        │+5ce  │24    │S   │                                        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_vme            │+5f2  │1     │B   │VME Flag                                │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad3           │+5f3  │1     │B   │alignment                               │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CurrTCB             │+5f4  │2     │W   │pointer to current TCB                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CurrTSD             │+5f6  │2     │W   │pointer to current TSD                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ThisPTDA            │+5f8  │2     │W   │Selector for this ptda                  │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_NPX_em_cs      │+5fa  │2     │W   │b726833 NPX emulator CS b726833         │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_NPX_em_eip     │+5fc  │4     │D   │b726833 NPX emulator EIP b726833        │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad4           │+600  │2     │W   │alignment b726833                       │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_signature      │+602  │2     │B   │must contain "TD"                       │
└────────────────────┴──────┴──────┴────┴────────────────────────────────────────┘


[Back: Per-Task Data Area for OS/2 Warp V4.0 ALLSTRICT kernel]
[Next: Per-Task Data Area for OS/2 Warp V3.0 ALLSTRICT kernel]