Code: Select all
non-conforming segment, dpl != cpl, cpl = 0, dpl = 3
or is my idt wrong?
Any help would be great, thanks!
Code: Select all
non-conforming segment, dpl != cpl, cpl = 0, dpl = 3
Code: Select all
00009368140e[CPU0 ] interrupt(long mode): gate descriptor is not valid sys seg
00009368140e[CPU0 ] interrupt(long mode): IDT entry extended attributes DWORD4 TYPE != 0
Code: Select all
/*
* Interrupt Descriptor Structure
*/
typedef struct {
u64bit baseLow : 16;
u64bit selector : 16;
u64bit ist : 3;
u64bit zeroOne : 5;
u64bit type : 4;
u64bit zeroTwo : 1;
u64bit dpl : 2;
u64bit present : 1;
u64bit baseHigh : 48;
u64bit reserved : 32;
} idtEntry;
/*
* Interrupt Descriptor Pointer
*/
struct idtPointerStruct {
u16bit limit;
u64bit base;
} __attribute__((packed));
typedef struct idtPointerStruct idtPointer;