]> git.corax.cc Git - corax/commitdiff
Add cpu_tss_debug() function to display the contents of the TSS; make cpu_debug(...
authorMatthias Kruk <m@m10k.eu>
Wed, 25 Sep 2019 10:00:29 +0000 (19:00 +0900)
committerMatthias Kruk <m@m10k.eu>
Wed, 25 Sep 2019 10:00:29 +0000 (19:00 +0900)
kernel/arch/cpu.c

index 86fe61c3f9106a4a4bc485bdaf70515b9e98e258..b931ef19a1549101f15b06aaebe08527c770328d 100644 (file)
@@ -62,6 +62,7 @@ void _segment_descriptor_set(segment_descriptor_t *sd, u32_t type, u32_t base, u
         return;
 }
 
+#if FEATURE(DEBUG)
 void cpu_debug(void)
 {
     u32_t i;
@@ -84,3 +85,28 @@ void cpu_debug(void)
 
     return;
 }
+
+void cpu_tss_debug(void)
+{
+       dbg_printf("TSS @ %p\n"
+                          " TR   = 0x%04x\n"
+                          " ESP0 = 0x%04x:%08x\n"
+                          " ESP1 = 0x%04x:%08x\n"
+                          " ESP2 = 0x%04x:%08x\n"
+                          " ESP3 = 0x%04x:%08x\n"
+                          "   CS = 0x%04x DS = 0x%04x\n"
+                          "   ES = 0x%04x FS = 0x%04x\n"
+                          "   GS = 0x%04x LD = 0x%04x\n",
+                          &(_cpu[0].cpu_tss),
+                          _cpu[0].cpu_tss.tss_tr,
+                          _cpu[0].cpu_tss.tss_esp0, _cpu[0].cpu_tss.tss_ss0,
+                          _cpu[0].cpu_tss.tss_esp1, _cpu[0].cpu_tss.tss_ss1,
+                          _cpu[0].cpu_tss.tss_esp2, _cpu[0].cpu_tss.tss_ss2,
+                          _cpu[0].cpu_tss.tss_esp, _cpu[0].cpu_tss.tss_ss,
+                          _cpu[0].cpu_tss.tss_cs, _cpu[0].cpu_tss.tss_ds,
+                          _cpu[0].cpu_tss.tss_es, _cpu[0].cpu_tss.tss_fs,
+                          _cpu[0].cpu_tss.tss_gs, _cpu[0].cpu_tss.tss_ldtr);
+
+       return;
+}
+#endif /* FEATURE(DEBUG) */