1/*
2 * Copyright 2008-2010, François Revol, revol@free.fr. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include "keyboard.h"
8#include "toscalls.h"
9
10#include <boot/stage2.h>
11#include <boot/platform.h>
12#include <boot/stdio.h>
13#include <stdarg.h>
14
15#include <Errors.h>
16
17/*!	This works only after console_init() was called.
18*/
19void
20panic(const char *format, ...)
21{
22	const char greetings[] = "\n*** PANIC ***";
23	char buffer[512];
24	va_list list;
25
26	//platform_switch_to_text_mode();
27
28	Bconputs(DEV_CONSOLE, greetings);
29	// send to the emulator's stdout if available
30	nat_feat_debugprintf(greetings);
31	nat_feat_debugprintf("\n");
32
33	va_start(list, format);
34	vsnprintf(buffer, sizeof(buffer), format, list);
35	va_end(list);
36
37	Bconputs(DEV_CONSOLE, buffer);
38	// send to the emulator's stdout if available
39	nat_feat_debugprintf(buffer);
40	nat_feat_debugprintf("\n");
41
42	Bconputs(DEV_CONSOLE, "\nPress key to reboot.");
43
44	clear_key_buffer();
45	wait_for_key();
46	platform_exit();
47}
48
49
50void
51dprintf(const char *format, ...)
52{
53	char buffer[512];
54	va_list list;
55
56	va_start(list, format);
57	vsnprintf(buffer, sizeof(buffer), format, list);
58	va_end(list);
59
60	Bconput(DEV_AUX, buffer);
61
62	// send to the emulator's stdout if available
63	nat_feat_debugprintf(buffer);
64
65	//if (platform_boot_options() & BOOT_OPTION_DEBUG_OUTPUT)
66	if (!gKernelArgs.frame_buffer.enabled)
67		Bconput(DEV_CONSOLE, buffer);
68}
69
70
71char*
72platform_debug_get_log_buffer(size_t* _size)
73{
74	return NULL;
75}
76