diff options
Diffstat (limited to 'src/sys')
-rw-r--r-- | src/sys/makefile | 2 | ||||
-rw-r--r-- | src/sys/prof/gcov.C | 24 | ||||
-rw-r--r-- | src/sys/prof/idletask.C | 41 | ||||
-rw-r--r-- | src/sys/prof/makefile | 39 |
4 files changed, 105 insertions, 1 deletions
diff --git a/src/sys/makefile b/src/sys/makefile index f26ea333a..a930b8b6e 100644 --- a/src/sys/makefile +++ b/src/sys/makefile @@ -22,6 +22,6 @@ # IBM_PROLOG_END ROOTPATH = ../.. -SUBDIRS = init.d vfs.d +SUBDIRS = init.d vfs.d prof.d include ${ROOTPATH}/config.mk 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 |