xref: /haiku/src/system/boot/platform/efi/debug.cpp (revision bd6068614473f87449dfa2eaa67fad1527c61e11)
1 /*
2  * Copyright 2016 Haiku, Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 
7 #include <string.h>
8 
9 #include <boot/platform.h>
10 #include <boot/stage2.h>
11 #include <boot/stdio.h>
12 
13 #include "efi_platform.h"
14 #include "serial.h"
15 
16 
17 static void
18 dprintf_args(const char *format, va_list args)
19 {
20 	char buffer[512];
21 	int length = vsnprintf(buffer, sizeof(buffer), format, args);
22 	if (length == 0)
23 		return;
24 
25 	serial_puts(buffer, length);
26 }
27 
28 
29 extern "C" void
30 dprintf(const char *format, ...)
31 {
32 	va_list args;
33 
34 	va_start(args, format);
35 	dprintf_args(format, args);
36 	va_end(args);
37 }
38 
39 
40 extern "C" void
41 panic(const char *format, ...)
42 {
43 	va_list args;
44 
45 	platform_switch_to_text_mode();
46 
47 	puts("*** PANIC ***");
48 
49 	va_start(args, format);
50 	vprintf(format, args);
51 	va_end(args);
52 
53 	while (true)
54 		kBootServices->Stall(1000000);
55 }
56 
57 
58 char*
59 platform_debug_get_log_buffer(size_t *_size)
60 {
61 	return NULL;
62 }
63