From 7d2d758d46d0047fa4e410e62f0a4f1eeb7d3a76 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 17 Feb 2008 14:36:47 +0000 Subject: [PATCH] axeld + bonefish: Make ktrace_printf() available in the kernel, too. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23979 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/debug/tracing.cpp | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/system/kernel/debug/tracing.cpp b/src/system/kernel/debug/tracing.cpp index b1469a1c9b..5e6f1d9986 100644 --- a/src/system/kernel/debug/tracing.cpp +++ b/src/system/kernel/debug/tracing.cpp @@ -341,6 +341,25 @@ AbstractTraceEntry::AddDump(TraceOutput& out) #if ENABLE_TRACING +class KernelTraceEntry : public AbstractTraceEntry { + public: + KernelTraceEntry(const char* message) + { + fMessage = alloc_tracing_buffer_strcpy(message, 256, false); + + Initialized(); + } + + virtual void AddDump(TraceOutput& out) + { + out.Print("kern: %s", fMessage); + } + + private: + char* fMessage; +}; + + class UserTraceEntry : public AbstractTraceEntry { public: UserTraceEntry(const char* message) @@ -1087,6 +1106,23 @@ tracing_init(void) } +void +ktrace_printf(const char *format, ...) +{ +#if ENABLE_TRACING + va_list list; + va_start(list, format); + + char buffer[256]; + vsnprintf(buffer, sizeof(buffer), format, list); + + va_end(list); + + new(nothrow) KernelTraceEntry(buffer); +#endif // ENABLE_TRACING +} + + void _user_ktrace_output(const char *message) {