Thread Swappable Data for OS/2 Warp V4.0 and OS/2 Warp V3.0 ALLSTRICT kernel

For TSD formats for other versions of OS/2 see:

Pointers

Locations VM Owner

Format

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


[Back: Thread Control Block for OS/2 V2.11]
[Next: Thread Swappable Data for OS/2 Warp V3.0 RETAIL kernel]