Fix debug output code.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23361 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
François Revol
2008-01-10 22:02:03 +00:00
parent 4f9d8b0eb9
commit 93879b9abf
2 changed files with 22 additions and 7 deletions
+10 -7
View File
@@ -4,7 +4,6 @@
*/
#include "serial.h"
#include "keyboard.h"
#include "toscalls.h"
@@ -19,17 +18,21 @@
void
panic(const char *format, ...)
{
char buffer[512];
va_list list;
int length;
platform_switch_to_text_mode();
//platform_switch_to_text_mode();
puts("*** PANIC ***");
Bconputs(DEV_CONSOLE, "*** PANIC ***");
va_start(list, format);
vprintf(format, list);
length = vsnprintf(buffer, sizeof(buffer), format, list);
va_end(list);
puts("\nPress key to reboot.");
Bconputs(DEV_CONSOLE, buffer);
Bconputs(DEV_CONSOLE, "\nPress key to reboot.");
clear_key_buffer();
wait_for_key();
@@ -48,10 +51,10 @@ dprintf(const char *format, ...)
length = vsnprintf(buffer, sizeof(buffer), format, list);
va_end(list);
serial_puts(buffer, length);
Bconputs(DEV_AUX, buffer);
if (platform_boot_options() & BOOT_OPTION_DEBUG_OUTPUT)
fprintf(stderr, "%s", buffer);
Bconputs(DEV_CONSOLE, buffer);
}
@@ -71,6 +71,18 @@ struct tosbpb {
#define Drvmap() (uint32)bios(10)
#define Kbshift(mode) bios(11, (uint16)mode)
/* handy shortcut */
static inline int Bconputs(int16 handle, const char *string)
{
int i, err;
for (i = 0; string[i]; i++) {
err = Bconout(string[i]);
if (err)
return i;
}
return i;
}
/*
* Atari XBIOS calls
*/