21 lines
		
	
	
		
			309 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			309 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "idt.h"
 | |
| 
 | |
| static struct idt idt = { 0 };
 | |
| 
 | |
| static void load_idt()
 | |
| {
 | |
|     struct idt_r idtr;
 | |
|     idtr.addr = (uint32_t)&idt;
 | |
|     idtr.limit = IDT_SIZE - 1;
 | |
| 
 | |
|     asm volatile("lidt %0\n"
 | |
|                  :
 | |
|                  : "m" (idtr)
 | |
|                  : "memory");
 | |
| }
 | |
| 
 | |
| void init_idt()
 | |
| {
 | |
|     load_idt();
 | |
| }
 |