From 0342e03073e74309d9a41dab7f11dcfd197502dd Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Tue, 6 Sep 2016 00:22:00 +0200 Subject: [PATCH] Add debug uart utility functions. --- kernel/uart.cpp | 21 ++++++++++++++++++++- kernel/uart.h | 5 ++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/kernel/uart.cpp b/kernel/uart.cpp index 0d346b08..597bbfb6 100644 --- a/kernel/uart.cpp +++ b/kernel/uart.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 Jonas 'Sortie' Termansen. + * Copyright (c) 2011, 2016 Jonas 'Sortie' Termansen. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -148,6 +148,25 @@ void WriteChar(char c) outport8(PORT + IER, ier); } +void WriteString(const char* str) +{ + Write(str, strlen(str)); +} + +static size_t WriteCallback(void*, const char* chars, size_t size) +{ + Write(chars, size); + return size; +} + +void WriteF(const char* format, ...) +{ + va_list list; + va_start(list, format); + vcbprintf(NULL, WriteCallback, format, list); + va_end(list); +} + int TryPopChar() { // Save the IER and disable interrupts. diff --git a/kernel/uart.h b/kernel/uart.h index dfc4e588..73c92a2d 100644 --- a/kernel/uart.h +++ b/kernel/uart.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 Jonas 'Sortie' Termansen. + * Copyright (c) 2011, 2016 Jonas 'Sortie' Termansen. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -27,6 +27,9 @@ void Init(); void Read(uint8_t* buffer, size_t size); void Write(const void* buffer, size_t size); void WriteChar(char c); +void WriteString(const char* str); +__attribute__((format(printf, 1, 2))) +void WriteF(const char* format, ...); int TryPopChar(); } // namespace UART