|
#define | dAcc 0x100 /* Accessed (Data or Code) */ |
|
#define | dBig 0x40 /* Default to 32 bit mode */ |
|
#define | dBiglim 0x80 /* Limit is in 4K units */ |
|
#define | dBusy 0xB00 /* Busy (TSS only) was 200 */ |
|
#define | dCall 0x0C00 /* 386 Call Gate */ |
|
#define | dCode 0x1800 /* Code Segment */ |
|
#define | dConform 0x400 /* Conforming (Code segments only) */ |
|
#define | dData 0x1000 /* Data Segment */ |
|
#define | dDpl0 0x0000 /* DPL0 or mask for DPL */ |
|
#define | dDpl1 0x2000 /* DPL1 or mask for DPL */ |
|
#define | dDpl2 0x4000 /* DPL2 or mask for DPL */ |
|
#define | dDpl3 0x6000 /* DPL3 or mask for DPL */ |
|
#define | dEexdown 0x400 /* Expand down (Data segments only) */ |
|
#define | dInt 0x0E00 /* 386 Interrupt Gate */ |
|
#define | dLdt 0x200 /* Local Descriptor Table (LDT) */ |
|
#define | dNpresent 0x8000 /* Not Present */ |
|
#define | dPresent 0x8000 /* Present */ |
|
#define | dRead 0x200 /* Readable (Code segments only) */ |
|
#define | dTask 0x500 /* Task gate */ |
|
#define | dTrap 0x0F00 /* 386 Trap Gate */ |
|
#define | dTss 0x900 /* Task State Segment (TSS) */ |
|
#define | dWrite 0x200 /* Writable (Data segments only) */ |
|
#define | SEL_GET_IDX(sel) (((sel)>>3) & 0x1FFF) /* Get Selector Index */ |
|
#define | SEL_GET_LG(sel) ((sel)&4) /* Return Local/Global Descriptor */ |
|
#define | SEL_GET_PL(sel) ((sel)&3) /* Get Priority Level Of Selector */ |
|
#define | SEL_PL_KERN 0x0 |
|
#define | SEL_PL_USER 0x3 |
|
#define | ubixDescriptorTable(name, length) union descriptorTableUnion name[length] = |
|
#define | ubixGateDescriptor(offset, selector, control) {.gate = {(offset & 0xffff), selector, (control+dPresent), (offset >> 16) }} |
|
#define | ubixStandardDescriptor(base, limit, control) {.descriptor = {(limit & 0xffff), (base & 0xffff), ((base >> 16) & 0xff), ((control + dPresent) >> 8), (limit >> 16), ((control & 0xff) >> 4), (base >> 24)}} |
|