Thread Swappable Data for OS/2 V2.11 RETAIL kernel

┌─────────────────┬──────┬──────┬────┬────────────────────────────────────────┐
│Field NameOffsetLengthTypeDescription                             │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDUserStack     │+0    │F9C   │W   │Thread's kernel stack                   │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDUserESP       │+f9c  │4     │D   │Saved user stack pointer                │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDUserSS        │+fa0  │2     │W   │Saved user stack segment                │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDUserSSPad     │+fa2  │2     │W   │Pad word pushed by gate                 │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDKernelESP     │+fa4  │4     │D   │Saved kernel stack pointer.             │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDpTCB          │+fa8  │4     │D   │Link to TCB                             │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDpfnFault      │+fac  │4     │D   │ptr to local fault handler in effect    │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDTrapNum       │+fb0  │4     │D   │TrapNum from the last fault             │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDerrcFault     │+fb4  │4     │D   │error code from the last fault          │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDpljmp         │+fb8  │4     │D   │Buffer saved by TKCatchFault            │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDselFault      │+fbc  │2     │W   │faulting selector                       │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDCpl2_SSSize   │+fbe  │2     │W   │Size of ring 2 stack - atleast thats    │
│                 │      │      │    │what the user beleives                  │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDdescLDT       │+fc0  │8     │D   │LDT table descriptor                    │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDdescKStackSS  │+fc8  │8     │D   │SS descriptor                           │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDdescFPEM      │+fd0  │8     │D   │reserved descriptor slot                │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDdescTIB       │+fd8  │8     │D   │FS mapping to TIB                       │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDulExitCode    │+fe0  │4     │D   │Proposed Thread Exit code (for dbg)     │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDerridFault    │+fe4  │4     │D   │error id from page fault                │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDPFErr         │+fe8  │4     │D   │actual error from PGPagefault           │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDlDbgRangeStart│+fec  │4     │D   │                                        │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDlDbgRangeEnd  │+ff0  │4     │D   │                                        │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDlDbgLastAddr  │+ff4  │4     │D   │                                        │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDpPCB          │+ff8  │4     │D   │Pointer to Profile Control Block        │
├─────────────────┼──────┼──────┼────┼────────────────────────────────────────┤
│TSDpDLLTerm      │+ffc  │4     │D   │Pointer to data buffer                  │
└─────────────────┴──────┴──────┴────┴────────────────────────────────────────┘


[Back: Thread Swappable Data for OS/2 V2.11 ALLSTRICT kernel]
[Next: Local Exception Handler Long-Jump Buffer]