void set_gdt(uint32_t addr, uint16_t limit);
void set_task_reg(uint16_t tss_selector);
+/*
static void dbg_print_gdt(void);
static void print_desc(desc_t *desc);
+*/
/* our global descriptor table */
static desc_t gdt[NUM_SEGMENTS] __attribute__((aligned(8)));
set_gdt((uint32_t)gdt, sizeof gdt - 1);
setup_selectors(selector(SEGM_CODE, 0), selector(SEGM_DATA, 0));
-
- dbg_print_gdt();
}
/* constructs a GDT selector based on index and priviledge level */
TSS_TYPE_BITS; /* XXX busy ? */
desc->d[3] = ((limit >> 16) & 0xf) | ((base >> 16) & 0xff00) | BIT_GRAN;
}
-#endif
static void dbg_print_gdt(void)
{
printf("base:%x lim:%x dpl:%d type:%s %dbit\n", base, limit, dpl,
desc->d[2] & BIT_CODE ? "code" : "data", desc->d[3] & BIT_BIG ? 32 : 16);
}
+#endif