printk_foo -> printk(BIOS_FOO, ...)
[coreboot.git] / src / arch / i386 / lib / exception.c
index 5f0c4e0563e64fa152cd3142250961b368a6a5e3..eb1df20e2611cca6e033bdf34653014c0d1c81cb 100644 (file)
@@ -1,7 +1,7 @@
 #include <console/console.h>
 #include <string.h>
 
-#if CONFIG_GDB_STUB == 1
+#if defined(CONFIG_GDB_STUB) && CONFIG_GDB_STUB == 1
 
 /* BUFMAX defines the maximum number of characters in inbound/outbound buffers.
  * At least NUM_REGBYTES*2 are needed for register packets 
@@ -359,14 +359,9 @@ static void put_packet(char *buffer)
 }
 #endif /* CONFIG_GDB_STUB */
 
-struct eregs {
-       uint32_t eax, ecx, edx, ebx, esp, ebp, esi, edi;
-       uint32_t vector;
-       uint32_t error_code;
-       uint32_t eip;
-       uint32_t cs;
-       uint32_t eflags;
-};
+#include <arch/registers.h>
+
+void x86_exception(struct eregs *info);
 
 void x86_exception(struct eregs *info)
 {
@@ -377,7 +372,7 @@ void x86_exception(struct eregs *info)
        gdb_stub_registers[CS] = info->cs;
        gdb_stub_registers[PS] = info->eflags;
        signo = GDB_UNKNOWN;
-       if (info->vector < sizeof(exception_to_signal)/sizeof(exception_to_signal[0])) {
+       if (info->vector < ARRAY_SIZE(exception_to_signal)) {
                signo = exception_to_signal[info->vector];
        }
        
@@ -480,11 +475,11 @@ void x86_exception(struct eregs *info)
                put_packet(out_buffer);
        }
 #else /* !CONFIG_GDB_STUB */
-       printk_emerg(
-               "Unexpected Exception: %d @ %02x:%08lx - Halting\n"
-               "Code: %d eflags: %08lx\n"
-               "eax: %08lx ebx: %08lx ecx: %08lx edx: %08lx\n"
-               "edi: %08lx esi: %08lx ebp: %08lx esp: %08lx\n",
+       printk(BIOS_EMERG, 
+               "Unexpected Exception: %d @ %02x:%08x - Halting\n"
+               "Code: %d eflags: %08x\n"
+               "eax: %08x ebx: %08x ecx: %08x edx: %08x\n"
+               "edi: %08x esi: %08x ebp: %08x esp: %08x\n",
                info->vector, info->cs, info->eip,
                info->error_code, info->eflags,
                info->eax, info->ebx, info->ecx, info->edx,