The following table lists the GDT assignments that are statically assigned or assigned dynamically during initialisation.
This list is subject to change from release to release but may be verified by listing symbols from OS2KRNL segment DOSGDTDATA using the Kernel Debugger LS command.
Note:
The Callgate descriptor assigmments are shown for the ALLSTRICT kernel. For the RETAIL kernel they begin at one GTD entry earlier. Thus GDT_DOSALLOCSEG through GDT_R0CSC are assigned to selectors 1d08 through 1ea0.
┌─────────┬─────────────────────────┬────────────────────────────────────────┐ │Selector │Symbol │Description │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │0 │GDT │entry 0 is reserved (invalid) │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │8 │GDT_GDT │entry 8 used to be GDT (now invalid) │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │10 │GDT_TSS │Protect mode TSS │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │18 │GDT_IDT │Protect Mode IDT │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │20 │GDT_RM_IDT │Selector for 1st 1K │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │28 │GDT_LDT │Selector for LDT │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │30 │GDT_PTDA │PTDA/TCB/TSD selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │38 │GDT_FPEM │Floating Point Emulator Work Area │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │40 │GDT_ROMDATA │ROM data at physical address 400h │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │4a │GDT_R2DS │Ring 2 Data Selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │53 │GDT_R3DS │Ring 3 Data Selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │5b │GDT_R3CS │Ring 3 Code Selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │63 │GDT_R3PDS │Ring 3 Protected Data Selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │6b │GDT_R3THKDS, │Ring 3 Thunk Data Selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │70 │GDT_SAS, │System Anchor Segment │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │78 │GDT_DOSALIAS │SAS Read/Write Alias │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │80 │GDT_SYSINFOSEG │InfosegGDT │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │88 │GDT_DFTSS │Double Fault TSS │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │90 │GDT_DFSTACK │Trap 8 stack selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │98 │GDT_VPB │VPB BMP Segment │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │a0 │GDT_RDR1 │Reserved │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │a8 │GDT_Buffers │Buffer Pool Segment │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │b0 │GDT_Unused │unused selector (used to be MFT) │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │b8 │GDT_RLR │RLR selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │c0 │GDT_SFT │SFT selector of first SFT segment │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │c8 │GDT_FSC │FSC array segment selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │d0 │GDT_mFSD │mini-FSD │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │d8 │GDT_RIPL │Remote IPL data │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │e0 │GDT_NULLIDT │Invalid descriptor for mode switch │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │e8 │GDT_INTSTACK │Interrupt stack alias │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │f0 │GDT_RMCODE │386 modesw code selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │f8 │GDT_RMDATA │386 modesw data selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │100 │DOSHLP_CODESEL │DosHlp Code Selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │108 │GDT_Pool │Start of dynamic GDT allocations │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1508 │GDT_Poolend │End of dynamic GDT allocations │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │150b │GDT_TIB │TIB selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d10 │GDT_DOSALLOCSEG │DOSALLOCSEG call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d18 │GDT_DOSALLOCPROTSEG │DOSALLOCPROTSEG call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d20 │GDT_DOSDYNAMICTRACE │DOSDYNAMICTRACE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d28 │GDT_DOSERROR │DOSERROR call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d30 │GDT_DOSFREERESOURCE │DOSFREERESOURCE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d38 │GDT_DOSQUERYABIOSSUPPORT │DOSQUERYABIOSSUPPORT call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d40 │GDT_DOS16LDRDIRTYWORKER │DOS16LDRDIRTYWORKER call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d48 │GDT_DOSFREESEG │DOSFREESEG call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d50 │GDT_DOSGETPROCADDR │DOSGETPROCADDR call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d58 │GDT_DOSIEXECPGM │DOSIEXECPGM call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d60 │GDT_DOSIQAPPTYPE │DOSIQAPPTYPE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d68 │GDT_DOSISEMWAIT │DOSISEMWAIT call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d70 │GDT_DOSLOADMODULE │DOSLOADMODULE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d78 │GDT_DOSMAKEPIPE │DOSMAKEPIPE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d80 │GDT_DOSREALLOCSEG │DOSREALLOCSEG call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d88 │GDT_DOSSICG │DOSSICG call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d90 │GDT_PANICWRITE │PANICWRITE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1d98 │GDT_DOSSETPRTY │DOSSETPRTY call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1da0 │GDT_DOSLOGMODE │DOSLOGMODE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1da8 │GDT_DOSSETCP │DOSSETCP call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1db0 │GDT_DOSGLOBALSEG │DOSGLOBALSEG call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1db8 │GDT_DOSCREATETHREAD │DOSCREATETHREAD call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1dc0 │GDT_DOSEXIT │DOSEXIT call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1dc8 │GDT_DOSEXITLIST │DOSEXITLIST call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1dd0 │GDT_DOSFREEMODULE │DOSFREEMODULE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1dd8 │GDT_DOSRESUMETHREAD │DOSRESUMETHREAD call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1de0 │GDT_DOSSLEEP │DOSSLEEP call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1de8 │GDT_DOSSUSPENDTHREAD │DOSSUSPENDTHREAD call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1df0 │GDT_DOSLIBINIT │DOSLIBINIT call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1df8 │GDT_REDIR │REDIR call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e00 │GDT_DOSCHGFILEPTR │DOSCHGFILEPTR call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e08 │GDT_DOSPROTECTCHGFILEPTR │DOSPROTECTCHGFILEPTR call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e10 │GDT_DOSCLOSE │DOSCLOSE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e18 │GDT_DOSPROTECTCLOSE │DOSPROTECTCLOSE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e20 │GDT_DOSDELETE │DOSDELETE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e28 │GDT_DOSDEVIOCTL │DOSDEVIOCTL call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e30 │GDT_DOSDEVIOCTL2 │DOSDEVIOCTL2 call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e38 │GDT_DOSDUPHANDLE │DOSDUPHANDLE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e40 │GDT_DOSICOPY │DOSICOPY call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e48 │GDT_DOSIREAD │DOSIREAD call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e50 │GDT_DOSIPROTECTREAD │DOSIPROTECTREAD call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e58 │GDT_DOSISETRELMAXFH │DOSISETRELMAXFH call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e60 │GDT_DOSIWRITE │DOSIWRITE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e68 │GDT_DOSIPROTECTWRITE │DOSIPROTECTWRITE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e70 │GDT_DOSMOVE │DOSMOVE call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e78 │GDT_DOSOPEN │DOSOPEN call gate │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e88 │GDT_MSSTACK │ │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e90 │GDT_OS2LDR │os2ldr's data │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1e98 │GDT_NWDTSS │NMI TSS │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1ea0 │GDT_NWDSTACK │NMI Stack Selector │ ├─────────┼─────────────────────────┼────────────────────────────────────────┤ │1ea8 │GDT_R0CSC │R0 Code Selector for Init DDs │ └─────────┴─────────────────────────┴────────────────────────────────────────┘