The TIB is officially undocumented for Windows 9x. The Windows NT series DDK includes a struct NT_TIB in winnt.h that documents the subsystem independent part. Wine includes declarations for the extended (subsystem-specific part of) TIB. Yet so many Win32 programs use undocumented fields that it is effectively a part of the API.
The TIB can be used to get a lot of information on the process without calling win32 API. Examples include emulating GetLastError(), GetVersion(). Through the pointer to the PEB one can obtain access to the import tables (IAT), process startup arguments, image name, etc.
Win32 client information (NT), user32 private data (Wine), 0x60 = LastError (Win95), 0x74 = LastError (WinME)
FS:[0xC0]
4
NT
Reserved for Wow32
FS:[0xC4]
4
NT
Current Locale
FS:[0xC8]
4
NT
FP Software Status Register
FS:[0xCC]
216
NT,Wine
Reserved for OS (NT), kernel32 private data (Wine)
FS:[0x124]
4
NT
Pointer to KTHREAD (ETHREAD) structure
FS:[0x1A4]
4
NT
Exception code
FS:[0x1A8]
18
NT
Activation context stack
FS:[0x1BC]
24
NT,Wine
Spare bytes (NT), ntdll private data (Wine)
FS:[0x1D4]
40
NT,Wine
Reserved for OS (NT), ntdll private data (Wine)
FS:[0x1FC]
1248
NT,Wine
GDI TEB Batch (OS), vm86 private data (Wine)
FS:[0x6DC]
4
NT
GDI Region
FS:[0x6E0]
4
NT
GDI Pen
FS:[0x6E4]
4
NT
GDI Brush
FS:[0x6E8]
4
NT
Real Process ID
FS:[0x6EC]
4
NT
Real Thread ID
FS:[0x6F0]
4
NT
GDI cached process handle
FS:[0x6F4]
4
NT
GDI client process ID (PID)
FS:[0x6F8]
4
NT
GDI client thread ID (TID)
FS:[0x6FC]
4
NT
GDI thread locale information
FS:[0x700]
20
NT
Reserved for user application
FS:[0x714]
1248
NT
Reserved for GL
FS:[0xBF4]
4
NT
Last Status Value
FS:[0xBF8]
214
NT
Reserved for advapi32
FS:[0xE0C]
4
NT
Pointer to deallocation stack
FS:[0xE10]
256
NT
TLS slots, 4 byte per slot
FS:[0xF10]
8
NT
TLS links (LIST_ENTRY structure)
FS:[0xF18]
4
NT
VDM
FS:[0xF1C]
4
NT
Reserved for RPC
FS:[0xF28]
4
NT
Thread error mode (RtlSetThreadErrorMode)
FS maps to a TIB which is embedded in a data block known as the TDB (thread data base). The TIB contains the thread-specific exception handling chain and pointer to the TLS (thread local storage.) The thread local storage is not the same as C local storage.
It is not common to access the TIB fields by an offset from FS:[0], but rather first getting a the linear self-referencing pointer to the stored at FS:[0x18]. That pointer is used in means of pointer arithmetics or cast to a struct pointer.