summaryrefslogtreecommitdiffstats
path: root/src/usr/trace
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/trace')
-rw-r--r--src/usr/trace/compdesc.C2
-rw-r--r--src/usr/trace/makefile4
-rw-r--r--src/usr/trace/runtime/makefile30
-rw-r--r--src/usr/trace/runtime/rt_service.C96
-rw-r--r--src/usr/trace/service.H4
5 files changed, 133 insertions, 3 deletions
diff --git a/src/usr/trace/compdesc.C b/src/usr/trace/compdesc.C
index ddfd860dc..35f4de0c5 100644
--- a/src/usr/trace/compdesc.C
+++ b/src/usr/trace/compdesc.C
@@ -93,6 +93,7 @@ namespace TRACE
l_rc = &iv_components.back();
}
+#ifndef __HOSTBOOT_RUNTIME // TODO: RTC 79408
// Check for special SCAN component to force enable debug trace on.
if (0 == memcmp(l_compName, "SCAN", 5))
{
@@ -107,6 +108,7 @@ namespace TRACE
l_rc->iv_debugEnabled = true;
}
}
+#endif
mutex_unlock(&iv_mutex);
return l_rc;
diff --git a/src/usr/trace/makefile b/src/usr/trace/makefile
index c58a11a4f..6195ae522 100644
--- a/src/usr/trace/makefile
+++ b/src/usr/trace/makefile
@@ -5,7 +5,7 @@
#
# IBM CONFIDENTIAL
#
-# COPYRIGHT International Business Machines Corp. 2011,2012
+# COPYRIGHT International Business Machines Corp. 2011,2013
#
# p1
#
@@ -26,6 +26,6 @@ MODULE = trace
OBJS = interface.o service.o compdesc.o buffer.o bufferpage.o daemonif.o \
debug.o assert.o
-SUBDIRS = daemon.d test.d
+SUBDIRS = daemon.d test.d runtime.d
include ${ROOTPATH}/config.mk
diff --git a/src/usr/trace/runtime/makefile b/src/usr/trace/runtime/makefile
new file mode 100644
index 000000000..6c4f21407
--- /dev/null
+++ b/src/usr/trace/runtime/makefile
@@ -0,0 +1,30 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/usr/trace/runtime/makefile $
+#
+# IBM CONFIDENTIAL
+#
+# COPYRIGHT International Business Machines Corp. 2013
+#
+# p1
+#
+# Object Code Only (OCO) source materials
+# Licensed Internal Code Source Materials
+# IBM HostBoot Licensed Internal Code
+#
+# The source code for this program is not published or otherwise
+# divested of its trade secrets, irrespective of what has been
+# deposited with the U.S. Copyright Office.
+#
+# Origin: 30
+#
+# IBM_PROLOG_END_TAG
+HOSTBOOT_RUNTIME = 1
+ROOTPATH = ../../../..
+MODULE = trace_rt
+
+OBJS = interface.o assert.o compdesc.o rt_service.o
+
+VPATH += ..
+include $(ROOTPATH)/config.mk
diff --git a/src/usr/trace/runtime/rt_service.C b/src/usr/trace/runtime/rt_service.C
new file mode 100644
index 000000000..2bb697d3e
--- /dev/null
+++ b/src/usr/trace/runtime/rt_service.C
@@ -0,0 +1,96 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/usr/trace/runtime/rt_service.C $ */
+/* */
+/* IBM CONFIDENTIAL */
+/* */
+/* COPYRIGHT International Business Machines Corp. 2013 */
+/* */
+/* p1 */
+/* */
+/* Object Code Only (OCO) source materials */
+/* Licensed Internal Code Source Materials */
+/* IBM HostBoot Licensed Internal Code */
+/* */
+/* The source code for this program is not published or otherwise */
+/* divested of its trade secrets, irrespective of what has been */
+/* deposited with the U.S. Copyright Office. */
+/* */
+/* Origin: 30 */
+/* */
+/* IBM_PROLOG_END_TAG */
+#include "../service.H"
+#include "../compdesc.H"
+#include <limits.h>
+#include <assert.h>
+#include <stdio.h>
+#include <runtime/interface.h>
+
+namespace TRACE
+{
+
+ Service::Service()
+ {
+ }
+
+ Service::~Service()
+ {
+ // No need to destruct the service.
+ assert(0);
+ }
+
+ void Service::writeEntry(ComponentDesc* i_td,
+ trace_hash_val i_hash,
+ const char * i_fmt,
+ uint32_t i_line,
+ uint32_t i_type,
+ va_list i_args)
+ {
+ if (unlikely(i_type == TRACE_DEBUG))
+ {
+ if (!i_td->iv_debugEnabled)
+ {
+ return;
+ }
+ }
+
+ char output[KILOBYTE];
+ vsprintf(output, i_fmt, i_args); // TODO: RTC 79420 :
+ // Potential buffer overrun.
+ g_hostInterfaces->puts(output);
+ }
+
+ void Service::writeBinEntry(ComponentDesc* i_td,
+ trace_hash_val i_hash,
+ uint32_t i_ine,
+ const void* i_ptr,
+ uint32_t i_size,
+ uint32_t i_type)
+ {
+ if (unlikely(i_type == TRACE_DEBUG))
+ {
+ if (!i_td->iv_debugEnabled)
+ {
+ return;
+ }
+ }
+
+ // TODO: RTC 79420
+
+ }
+
+ size_t Service::getBuffer(ComponentDesc* i_comp,
+ void * o_data,
+ size_t i_size)
+ {
+ // No way to get the buffer back in runtime.
+ return 0;
+ }
+
+ void Service::flushBuffers()
+ {
+ // No-op in runtime.
+ }
+
+}
diff --git a/src/usr/trace/service.H b/src/usr/trace/service.H
index 1f81d9a2f..61e9bc494 100644
--- a/src/usr/trace/service.H
+++ b/src/usr/trace/service.H
@@ -5,7 +5,7 @@
/* */
/* IBM CONFIDENTIAL */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012 */
+/* COPYRIGHT International Business Machines Corp. 2012,2013 */
/* */
/* p1 */
/* */
@@ -144,6 +144,7 @@ namespace TRACE
friend class TRACEDAEMON::Daemon;
private:
+#ifndef __HOSTBOOT_RUNTIME
/** Front-size buffers */
Buffer* iv_buffers[BUFFER_COUNT]; // slow / fast buffers.
/** Interface to signal daemon. */
@@ -155,6 +156,7 @@ namespace TRACE
static Service* getGlobalInstance();
/** Copy the current time into the timestamp. */
void _createTimeStamp(trace_entry_stamp_t* o_entry);
+#endif
};
}
OpenPOWER on IntegriCloud