summaryrefslogtreecommitdiffstats
path: root/src/sys/prof
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2012-01-10 18:10:40 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-02-07 15:46:33 -0600
commite457b5df08897236374bd8851d8169188e9dc1f8 (patch)
treea9c7392ea093ace963796340eb7da3074b743444 /src/sys/prof
parent859335d953a59c25de64a414c344d0a22d0911cb (diff)
downloadtalos-hostboot-e457b5df08897236374bd8851d8169188e9dc1f8.tar.gz
talos-hostboot-e457b5df08897236374bd8851d8169188e9dc1f8.zip
GCOV support
Change-Id: I73a446754cd03178055459eb75c7b2f87b51b0f3 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/635 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/sys/prof')
-rw-r--r--src/sys/prof/gcov.C24
-rw-r--r--src/sys/prof/idletask.C41
-rw-r--r--src/sys/prof/makefile39
3 files changed, 104 insertions, 0 deletions
diff --git a/src/sys/prof/gcov.C b/src/sys/prof/gcov.C
new file mode 100644
index 000000000..7f011d51f
--- /dev/null
+++ b/src/sys/prof/gcov.C
@@ -0,0 +1,24 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/sys/prof/gcov.C $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2012
+//
+// 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 other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+#include <usr/gcov.h>
diff --git a/src/sys/prof/idletask.C b/src/sys/prof/idletask.C
new file mode 100644
index 000000000..843f26628
--- /dev/null
+++ b/src/sys/prof/idletask.C
@@ -0,0 +1,41 @@
+// IBM_PROLOG_BEGIN_TAG
+// This is an automatically generated prolog.
+//
+// $Source: src/sys/prof/idletask.C $
+//
+// IBM CONFIDENTIAL
+//
+// COPYRIGHT International Business Machines Corp. 2012
+//
+// 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 other-
+// wise divested of its trade secrets, irrespective of what has
+// been deposited with the U.S. Copyright Office.
+//
+// Origin: 30
+//
+// IBM_PROLOG_END
+
+/** @file idletask.C
+ * @brief Code for the kernel idle-loop.
+ *
+ * This code exists here under the sys/prof directory to ensure that it does
+ * not get instrumented with code coverage. The idle threads run stack-less
+ * and bad things happen if they have been instrumented.
+ */
+
+#include <kernel/taskmgr.H>
+#include <arch/ppc.H>
+
+void TaskManager::idleTaskLoop(void* unused)
+{
+ while(1)
+ {
+ setThreadPriorityLow();
+ }
+}
diff --git a/src/sys/prof/makefile b/src/sys/prof/makefile
new file mode 100644
index 000000000..ee42459e4
--- /dev/null
+++ b/src/sys/prof/makefile
@@ -0,0 +1,39 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/sys/vfs/makefile $
+#
+# IBM CONFIDENTIAL
+#
+# COPYRIGHT International Business Machines Corp. 2010 - 2011
+#
+# 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 other-
+# wise divested of its trade secrets, irrespective of what has
+# been deposited with the U.S. Copyright Office.
+#
+# Origin: 30
+#
+# IBM_PROLOG_END
+
+ROOTPATH = ../../..
+
+# If code coverage profiling is enabled we need to add the gcov object to the
+# build list. This is triggered via the HOSTBOOT_PROFILE variable. We then
+# undefine that variable to ensure that none of the code in this directory is
+# instrumented itself. This is the directory where code which is unsafe to
+# instrument should go.
+
+ifdef HOSTBOOT_PROFILE
+OBJS = gcov.o
+undefine HOSTBOOT_PROFILE
+endif
+
+OBJS += idletask.o
+
+include ${ROOTPATH}/config.mk
OpenPOWER on IntegriCloud