예제 #1
0
파일: table.c 프로젝트: ajaysundark/PureVMM
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();
}
예제 #2
0
파일: gdt.c 프로젝트: primis/redos
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);
}