/* * \brief Genode-console backend * \author Martin Stein * \date 2011-10-17 */ /* * Copyright (C) 2011-2013 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. */ /* Genode includes */ #include #include #include /* base-hw includes */ #include "singleton.h" namespace Genode { /** * Platform specific Genode console */ class Platform_console : public Console, public Serial_log { enum { BAUD_RATE = 115200 }; protected: /** * Print a char to the console */ void _out_char(char c) { enum { ASCII_LINE_FEED = 10, ASCII_CARRIAGE_RETURN = 13, }; /* auto complete new line commands */ if (c == ASCII_LINE_FEED) Serial_log::put_char(ASCII_CARRIAGE_RETURN); /* print char */ Serial_log::put_char(c); } public: /** * Constructor */ Platform_console() : Serial_log(BAUD_RATE) { } }; } using namespace Genode; /** * Static object to print log output */ static Platform_console * platform_console() { return unsynchronized_singleton(); } /**************************** ** Genode print functions ** ****************************/ void Genode::printf(const char *format, ...) { va_list list; va_start(list, format); platform_console()->vprintf(format, list); va_end(list); } void Genode::vprintf(const char *format, va_list list) { platform_console()->vprintf(format, list); }