1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#pragma once enum gdt_segs { SEG_null, /* order dictated by SYSENTER */ SEG_r0code, SEG_r0data, SEG_r3code, SEG_r3data, SEG_TSS, SEG_TSS2, SEG_end }; void kmain_early(void *mbi); void gdt_init(void); void idt_init(void); void timer_init(void); /* used from asm */ extern struct lgdt_arg lgdt_arg;