Page 1 of 1

Invalid Gate Descriptor: Long Mode Code

Posted: Mon Nov 27, 2006 3:55 pm
by Fear
I haven't solved my problem with the externals quite yet, but I think I've found the problem. I initially discounted these errors, thinking that Bochs was just emulating slightly improperly, but the more I think about it, the more it makes sense that those errors would occur. See, Bochs is reporting this error to me:

Code: Select all

interrupt(long mode): gate descriptor is not valid sys seg
So, to my understanding something is wrong with the long mode code section in my GDT. I'm not really sure why this is happening, but I guess something is just a drop off (or maybe a lot off). My whole GDT looks like:

Code: Select all

GDT:
	.GDTNull:
		DD 		0
		DD 		0
    
	.GDTData:
		DW 		0FFFFh
		DW 		0
		DB 		0
		DB 		10010010b
		DB 		10001111b
		DB 		0
	
	.GDTCode:
		DW 		0FFFFh
		DW 		0
		DB 		0
		DB 		10011010b
		DB 		11001111b
		DB 		0
		
	.GDTLong:
		DW 		0FFFFh
		DW 		0
		DB 		0
		DB 		10011010b
		DB		10101111b
		DB		0
GDTEnd:
So, does anyone see whats causing the error?

EDIT: Turns out, I found a workaround for the external things, nothing permanent but it'll do for now. But still, is there a reason Bochs is giving me this error (maybe its not actually an error)?

Posted: Tue Nov 28, 2006 4:48 am
by Combuster
Since it regards an interrupt, posting the IDT would probably be more helpful.

I haven't found any issues in the GDT though...