void installGDT() { gptr.limit = (sizeof(struct gdt_entry) * 3) - 1; gptr.base = (u32)&gdt; gdtSetGate(0, 0, 0, 0, 0); gdtSetGate(1, 0, 0xFFFFFFFF, 0x9A, 0xCF); gdtSetGate(2, 0, 0xFFFFFFFF, 0x92, 0xCF); gdtFlush(); }
void gdtInit() { gdtPointer.limit = (sizeof(gdt_entry_t)*5) - 1; gdtPointer.base = (unsigned int)&gdt; gdtSetGate(0, 0, 0, 0, 0); gdtSetGate(1, 0, 0xFFFFFFFF, 0x9A, 0xCF); gdtSetGate(2, 0, 0xFFFFFFFF, 0x92, 0xCF); gdtSetGate(3, 0, 0xFFFFFFFF, 0xFA, 0xCF); gdtSetGate(4, 0, 0xFFFFFFFF, 0xF2, 0xCF); gdt_flush((unsigned int)&gdtPointer); }