hw: ease usage of the kernel log

ref #989
This commit is contained in:
Martin Stein 2014-01-20 18:24:57 +01:00 committed by Norman Feske
parent eeb2d95b1f
commit 901b3e2bb4
5 changed files with 39 additions and 30 deletions

View File

@ -203,7 +203,7 @@ class Genode::Message_tpl
enum { NAME_SIZE = sizeof(name) }; enum { NAME_SIZE = sizeof(name) };
size_t const data_size = raw_data_size + NAME_SIZE; size_t const data_size = raw_data_size + NAME_SIZE;
if (data_size > _max_data_size()) { if (data_size > _max_data_size()) {
kernel_log() << __func__ << ": oversized message outgoing\n"; Kernel::log() << "oversized message outgoing\n";
raw_data_size = _max_data_size() - NAME_SIZE; raw_data_size = _max_data_size() - NAME_SIZE;
} }
/* copy data */ /* copy data */
@ -224,7 +224,7 @@ class Genode::Message_tpl
{ {
/* limit data size */ /* limit data size */
if (_data_size > buf_size) { if (_data_size > buf_size) {
kernel_log() << __func__ << ": oversized message incoming\n"; Kernel::log() << "oversized message incoming\n";
_data_size = buf_size; _data_size = buf_size;
} }
/* copy data */ /* copy data */

View File

@ -1,5 +1,5 @@
/* /*
* \brief Print to kernel log output * \brief Print to the standard output of the kernel
* \author Martin stein * \author Martin stein
* \date 2012-04-05 * \date 2012-04-05
*/ */
@ -17,42 +17,45 @@
/* Genode includes */ /* Genode includes */
#include <kernel/interface.h> #include <kernel/interface.h>
namespace Genode namespace Kernel
{ {
/** /**
* Prints incoming streams to the kernel log output * Prints incoming streams to the standard output of the kernel
*/ */
class Kernel_log class Log
{ {
/** private:
* Print an unsigned 4 bit integer as hexadecimal value
*/
void _print_4bit_hex(unsigned char x) const
{
/* decode to ASCII char */
x &= 0x0f;
if (x > 9) x += 39;
x += 48;
/* print ASCII char */ /**
Kernel::print_char(x); * Print an unsigned 4 bit integer x as hexadecimal value
} */
void _print_4bit_hex(unsigned char x) const
{
/* decode to ASCII char */
x &= 0x0f;
if (x > 9) x += 39;
x += 48;
/* print ASCII char */
print_char(x);
}
public: public:
/** /**
* Print zero-terminated string * Print a zero-terminated string s
*/ */
Kernel_log & operator << (char const * s) Log & operator << (char const * s)
{ {
while (*s) Kernel::print_char(*s++); while (*s) print_char(*s++);
if (*--s != '\n') { print_char(' '); }
return *this; return *this;
} }
/** /**
* Print an unsigned integer as hexadecimal value * Print an unsigned integer x as hexadecimal value
*/ */
Kernel_log & operator << (unsigned int const & x) Log & operator << (unsigned int const x)
{ {
enum { enum {
BYTE_WIDTH = 8, BYTE_WIDTH = 8,
@ -91,17 +94,23 @@ namespace Genode
_print_4bit_hex(c >> 4); _print_4bit_hex(c >> 4);
_print_4bit_hex(c); _print_4bit_hex(c);
} }
print_char(' ');
return *this; return *this;
} }
/**
* Print a pointer p as hexadecimal value
*/
Log & operator << (void * const p) { return *this << (unsigned)p; }
}; };
/** /**
* Give static 'Kernel_log' reference as target for common log output * Return singleton kernel-log
*/ */
inline Kernel_log & kernel_log() inline Log & log()
{ {
static Kernel_log _log; static Log s;
return _log; return s;
} }
} }

View File

@ -116,7 +116,7 @@ namespace Genode {
inline Range_allocator * region_alloc() inline Range_allocator * region_alloc()
{ {
kernel_log() << __PRETTY_FUNCTION__ << ": Not implemented\n"; Kernel::log() << __PRETTY_FUNCTION__ << "not implemented\n";
while (1) ; while (1) ;
return 0; return 0;
} }

View File

@ -175,7 +175,7 @@ Platform::Platform()
void Core_parent::exit(int exit_value) void Core_parent::exit(int exit_value)
{ {
kernel_log() << __PRETTY_FUNCTION__ << ": Not implemented\n"; Kernel::log() << __PRETTY_FUNCTION__ << "not implemented\n";
while (1) ; while (1) ;
} }

View File

@ -62,7 +62,7 @@ Thread_base::Thread_base(const char * const label, size_t const stack_size)
Thread_base::~Thread_base() Thread_base::~Thread_base()
{ {
kernel_log() << __PRETTY_FUNCTION__ << ": Not implemented\n"; Kernel::log() << __PRETTY_FUNCTION__ << "not implemented\n";
while (1) ; while (1) ;
} }