summaryrefslogtreecommitdiffstats
path: root/src/core/debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/debug.c')
-rw-r--r--src/core/debug.c54
1 files changed, 38 insertions, 16 deletions
diff --git a/src/core/debug.c b/src/core/debug.c
index 8fca8d90d..fc90c64a1 100644
--- a/src/core/debug.c
+++ b/src/core/debug.c
@@ -21,16 +21,38 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <stdio.h>
#include <stdint.h>
#include <stdarg.h>
-#include <ipxe/io.h>
+#include <ipxe/console.h>
+
+/**
+ * Print debug message
+ *
+ * @v fmt Format string
+ * @v ... Arguments
+ */
+void dbg_printf ( const char *fmt, ... ) {
+ int saved_usage;
+ va_list args;
+
+ /* Mark console as in use for debugging messages */
+ saved_usage = console_set_usage ( CONSOLE_USAGE_DEBUG );
+
+ /* Print message */
+ va_start ( args, fmt );
+ vprintf ( fmt, args );
+ va_end ( args );
+
+ /* Restore console usage */
+ console_set_usage ( saved_usage );
+}
/**
* Pause until a key is pressed
*
*/
void dbg_pause ( void ) {
- printf ( "\nPress a key..." );
+ dbg_printf ( "\nPress a key..." );
getchar();
- printf ( "\r \r" );
+ dbg_printf ( "\r \r" );
}
/**
@@ -38,9 +60,9 @@ void dbg_pause ( void ) {
*
*/
void dbg_more ( void ) {
- printf ( "---more---" );
+ dbg_printf ( "---more---" );
getchar();
- printf ( "\r \r" );
+ dbg_printf ( "\r \r" );
}
/**
@@ -57,27 +79,27 @@ static void dbg_hex_dump_da_row ( unsigned long dispaddr, const void *data,
unsigned int i;
uint8_t byte;
- printf ( "%08lx :", ( dispaddr + offset ) );
+ dbg_printf ( "%08lx :", ( dispaddr + offset ) );
for ( i = offset ; i < ( offset + 16 ) ; i++ ) {
if ( i >= len ) {
- printf ( " " );
+ dbg_printf ( " " );
continue;
}
- printf ( "%c%02x",
- ( ( ( i % 16 ) == 8 ) ? '-' : ' ' ), bytes[i] );
+ dbg_printf ( "%c%02x",
+ ( ( ( i % 16 ) == 8 ) ? '-' : ' ' ), bytes[i] );
}
- printf ( " : " );
+ dbg_printf ( " : " );
for ( i = offset ; i < ( offset + 16 ) ; i++ ) {
if ( i >= len ) {
- printf ( " " );
+ dbg_printf ( " " );
continue;
}
byte = bytes[i];
if ( ( byte < 0x20 ) || ( byte >= 0x7f ) )
byte = '.';
- printf ( "%c", byte );
+ dbg_printf ( "%c", byte );
}
- printf ( "\n" );
+ dbg_printf ( "\n" );
}
/**
@@ -157,8 +179,8 @@ static int dbg_autocolour ( unsigned long stream ) {
* @v stream Message stream ID
*/
void dbg_autocolourise ( unsigned long stream ) {
- printf ( "\033[%dm",
- ( stream ? ( 31 + dbg_autocolour ( stream ) ) : 0 ) );
+ dbg_printf ( "\033[%dm",
+ ( stream ? ( 31 + dbg_autocolour ( stream ) ) : 0 ) );
}
/**
@@ -166,5 +188,5 @@ void dbg_autocolourise ( unsigned long stream ) {
*
*/
void dbg_decolourise ( void ) {
- printf ( "\033[0m" );
+ dbg_printf ( "\033[0m" );
}