/*** DESCRIPTOR TABLES ***/
-.globl idt
-.globl gdt
-
.align 8, 0xCC
multiboot_ptr:
.long 0
.word 0
gdt_descr:
.word LAST_RESERVED_GDT_BYTE
-gdt:
.quad gdt_table - FIRST_RESERVED_GDT_BYTE
.word 0,0,0
idt_descr:
.word 256*16-1
-idt:
.quad idt_table
ENTRY(stack_start)
#endif
extern struct desc_struct gdt_table[];
-extern struct desc_struct *gdt;
-extern idt_entry_t *idt;
struct Xgt_desc_struct {
unsigned short size;
unsigned long address __attribute__((packed));
};
-#define idt_descr (*(struct Xgt_desc_struct *)((char *)&idt - 2))
-#define gdt_descr (*(struct Xgt_desc_struct *)((char *)&gdt - 2))
-
extern void set_intr_gate(unsigned int irq, void * addr);
extern void set_system_gate(unsigned int n, void *addr);
extern void set_task_gate(unsigned int n, unsigned int sel);