Per-Task Data Area for OS/2 V2.11 ALLSTRICT kernel
┌────────────────────┬──────┬──────┬────┬────────────────────────────────────────┐
│Field Name │Offset│Length│Type│Description │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│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_pgpc │+a8 │400 │S │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pmemstatcur │+4a8 │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_memstat │+4ac │3C │S │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pPVDBPrc │+4e8 │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pSGSList │+4ec │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pexllist │+4f0 │4 │D │ Flat pointer to exit list data │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_cdllterm │+4f4 │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│WFP_Start │+4f8 │2 │W │ TASKAREA offset for working string │
│ │ │ │ │*REDIR* │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Ren_WFP │+4fa │2 │W │ WFB pointer for rename destination │
│ │ │ │ │*REDIR* │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│WFP_Path_End │+4fc │2 │W │ End of Path component of string. │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Curr_Dir_End │+4fe │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CDS_Handle │+500 │34 │W │ *REDIR* │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│OEMPtr │+534 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│LIS_Fgnd │+536 │1 │B │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│FgndOnly │+537 │1 │B │ foreground only flag │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pTCBCritSec │+538 │4 │D │ TCB that did enter CritSec │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pTCBPriQCritSec│+53c │4 │D │ TCBs awaiting CritSec wakeup │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_cCritSec │+540 │2 │W │ Critical Section Count │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CurrentPDB │+542 │2 │W │ Currently active PDB (V86 segment) │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│DTAddr │+544 │4 │D │ User's I/O transfer address *REDIR* │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│seltss │+548 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│VolID │+54a │1 │B │ !0 if vol ID found in dir search │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│NoSetDir │+54b │1 │B │ If TRUE, do not set directory │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SpaceFlag │+54c │1 │B │ Embedded spaces allowed in FCB │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│VerFlg │+54d │1 │B │ Initialize with verify off │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│LCurDrv │+54e │1 │B │ Logical current drive - Default A: │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│PCurDrv │+54f │1 │B │ physical drive after assign mapping │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Creating │+550 │1 │B │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│DelAll │+551 │1 │B │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│FoundDel │+552 │1 │B │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Found_dev │+553 │1 │B │ true => search found a device 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│fSplice │+554 │1 │B │ true => do a splice in transpath 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ClusFac │+555 │1 │B │ sectors/cluster used in dir search │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│cMeta │+556 │1 │B │ components found 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│PathNameType │+557 │1 │B │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│DevPt │+558 │4 │D │ Address of device found by DevName │
│ │ │ │ │*REDIR* │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│DirSec │+55c │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│DirStart │+560 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│NxtClusNum │+562 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│EntFree │+564 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│EntLast │+566 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│LastEnt │+568 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ProcFlag │+56a │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 │+56c │4 │D │ pending action bits │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ulExitCode │+570 │4 │D │ Exit code of last task │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ulExitType │+574 │4 │D │ Type of exit │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ulExitTID │+578 │4 │D │ Exit Thread ID (32-bit exceptions) │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ThisCDS │+57c │4 │D │ Address of current CDS *REDIR* 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pCDS │+580 │2 │W │SS relative pointer to a curdir struct │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CDSsize │+582 │2 │W │ Size of CDS pointed to by ThisCDS ONLY │
│ │ │ │ │used for CDS entries in RMP seg │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sattrib │+584 │2 │W │ Storage for search attrs *REDIR* 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│sPCB │+586 │2 │W │Selector of Profile Control Block │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pPCB │+588 │4 │D │Pointer to Profile Control Block │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Max │+58c │2 │W │ highest JFN used so far │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│NextSrchH │+58e │2 │W │Next value to use for search handle │
│ │ │ │ │First value used will be 2. │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SrchRmp │+590 │4 │D │ Handle & Selector for RMP segment we │
│ │ │ │ │keep search handles in. │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│FNotifyLocal_First │+594 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│FNotifyLocal_Count │+596 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_ignf │+598 │2 │W │ bit vector of ignored signals │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_hndf │+59a │2 │W │ bit vector of handled signals │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_errf │+59c │2 │W │ bit vector of error generating signals │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_attempted │+59e │2 │W │ bit vector of signals we've tried to │
│ │ │ │ │handle with 32-bit exceptions │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_arg │+5a0 │10 │W │ byte vector of signal arguments │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_termtid │+5b0 │2 │W │'Terminator' TID for APTERM. │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│HoldSigCnt │+5b2 │2 │W │ DOSHOLDSIGNAL counter │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SigFocusCnt │+5b4 │2 │W │PUBLIB DOS32SETSIGNALEXCEPTIONFOCUS │
│ │ │ │ │count │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Table │+5b6 │28 │W │default handle table │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Flags │+5de │14 │B │ default JFN flags table │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_rasflag │+5f2 │2 │W │ RAS trace indicator │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SysSemPTDATbl │+5f4 │100 │S │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SavedHardErr │+6f4 │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ptdasem │+6f8 │C │S │ PTDA semaphore that is, inter-thread │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_DLMsem │+704 │C │S │ b732954 Edd PTDA semaphore that is, │
│ │ │ │ │inter-thread │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_lidt │+710 │6 │W │current IDT limit/base │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Csid │+716 │2 │W │ Command Subtree ID │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Behav_bit │+718 │2 │W │ program behavior bits │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│MSW │+71a │2 │W │ CPU matching status word │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_rsrclist │+71c │4 │D │ far pointer to local resource list │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pldrdldHead │+720 │4 │D │ loader demand load data list │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pPrSemTbl │+724 │4 │D │ (void * => PSEM) pointer to private │
│ │ │ │ │semaphore table │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulPrTblSize │+728 │4 │D │ size of pPrSemTbl in dwords │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulPrTotUsed │+72c │4 │D │ number of entries in pPrSemTbl │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulPrNextFree │+730 │4 │D │ next free slot in pPrSemTbl │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│hksPrTbl │+734 │4 │D │ kernel semaphore handle for private │
│ │ │ │ │semaphore table │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│pShSemBmp │+738 │4 │D │ pointer to private bitmap for the │
│ │ │ │ │shared semaphore table │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulShBmpSize │+73c │4 │D │ size of pShSemBmp in bits │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│hksShBmp │+740 │4 │D │ kernel semaphore handle for private │
│ │ │ │ │semaphore table │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ulMtxOwned │+744 │4 │D │ number of mutex owned by this process │
│ │ │ │ │in the two sem tables │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ShareRetriesLeft │+748 │2 │W │number of share/lock viol retries │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│RetryCount │+74a │2 │W │num of share/lock retries to do │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad1 │+74c │2 │W │alignment │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pSrchBuf │+74e │2 │W │internal search buffer │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_LibiError │+750 │2 │W │reuse same field to hold library init │
│ │ │ │ │errors │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pOpenBuf │+752 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Cons_Loc │+754 │A │S │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SysCallSfcn │+75e │1 │B │ Value of AL on system entry │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│SysCall │+75f │1 │B │ Last system call processed │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│KBD_Mode │+760 │1 │B │ Keyboard input mode │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_NewFiles │+761 │1 │B │If bit one is set, process supports // │
│ │ │ │ │54400 new files (long names) │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│AutoFail │+762 │1 │B │ Non-zero if I 24 FAILed magically │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_direntry │+763 │20 │S │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CP_Flgs │+783 │1 │B │Default is no codepage in system. │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Sig_vec │+784 │20 │D │ signal handlers │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Exc_vec │+7a4 │1C │D │ OSOLETE exception vectors │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_timerhead │+7c0 │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Attrib │+7c4 │2 │W │ storage for file attributes *REDIR* │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtFCB │+7c6 │1 │B │ Extended FCB │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_extsig │+7c7 │1 │B │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_lanman_sec │+7c8 │4 │D │ Used by LANMAN & HPFS for security. │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad2 │+7cc │2 │W │alignment │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ppgdata │+7ce │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_child │+7d0 │2 │W │ New child PTDA handle (Child being │
│ │ │ │ │Exec'ed) │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_childalias │+7d2 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_handle │+7d4 │2 │W │ handle to this segment │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_module │+7d6 │2 │W │ program module handle for process │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ldthandle │+7d8 │2 │W │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ldtpgmap │+7da │2 │W │ Bitmap of valid LDT pages │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_ldtaddr │+7dc │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CP_CaseMapTbl │+7e0 │4 │D │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│codepage_tag │+7e4 │2 │W │ the current code page │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Length │+7e6 │2 │W │Size of JFN table in bytes │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_pTable │+7e8 │4 │D │ PM pointer to JFN table │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│JFN_Flg_Ptr │+7ec │4 │D │ pointer to JFN flags │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│Joins │+7f0 │1 │B │ number of joins │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr_Locus │+7f1 │1 │B │ Extended Error Locus *REDIR* 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr │+7f2 │2 │W │ Extended Error code *REDIR* 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr_Action │+7f4 │1 │B │ Extended Error Action *REDIR* 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ExtErr_Class │+7f5 │1 │B │ Extended Error Class *REDIR* 3.10 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_infoseg │+7f6 │24 │S │ │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad3 │+81a │2 │W │alignment │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CurrTCB │+81c │2 │W │ pointer to current TCB │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│CurrTSD │+81e │2 │W │ pointer to current TSD │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ThisPTDA │+820 │2 │W │ Selector for this ptda │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_NPX_em_cs │+822 │2 │W │ b726833 NPX emulator CS b726833 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_NPX_em_eip │+824 │4 │D │ b726833 NPX emulator EIP b726833 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_pad4 │+828 │2 │W │alignment b726833 │
├────────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│ptda_signature │+82a │2 │B │must contain "TD" │
└────────────────────┴──────┴──────┴────┴────────────────────────────────────────┘
[Back: Per-Task Data Area for OS/2 Warp V3.0 RETAIL kernel]
[Next: Per-Task Data Area for OS/2 V2.11 RETAIL kernel]