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 "nextrom.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
17void mon_put(const char *s)
18{
19	while (s && *s)
20		mg->mg_putc(*s++);
21}
22
23void mon_puts(const char *s)
24{
25	mon_put(s);
26	mg->mg_putc('\n');
27}
28
29/*!	This works only after console_init() was called.
30*/
31void
32panic(const char *format, ...)
33{
34	const char greetings[] = "\n*** PANIC ***";
35	char buffer[512];
36	va_list list;
37
38	//platform_switch_to_text_mode();
39
40	mon_puts(greetings);
41
42	va_start(list, format);
43	vsnprintf(buffer, sizeof(buffer), format, list);
44	va_end(list);
45
46	mon_puts(buffer);
47
48	mon_puts("\nPress key to reboot.");
49
50	clear_key_buffer();
51	wait_for_key();
52	platform_exit();
53}
54
55
56void
57dprintf(const char *format, ...)
58{
59	char buffer[512];
60	va_list list;
61
62	va_start(list, format);
63	vsnprintf(buffer, sizeof(buffer), format, list);
64	va_end(list);
65
66	//if (platform_boot_options() & BOOT_OPTION_DEBUG_OUTPUT)
67	if (!gKernelArgs.frame_buffer.enabled)
68		mon_put(buffer);
69}
70
71
72char*
73platform_debug_get_log_buffer(size_t* _size)
74{
75	return NULL;
76}
77