summaryrefslogtreecommitdiffstats
path: root/src/include/kernel/misc.H
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2012-07-31 10:26:12 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-08-10 11:38:42 -0500
commit99f217daf307b3cd963bcbce8eb7b025d58f734e (patch)
tree87a82faba5be946460ff25f222f0f10a03afdfce /src/include/kernel/misc.H
parentda472c60655393f0bb49113713a8be2bdd2a9b6f (diff)
downloadtalos-hostboot-99f217daf307b3cd963bcbce8eb7b025d58f734e.tar.gz
talos-hostboot-99f217daf307b3cd963bcbce8eb7b025d58f734e.zip
Support for master winkle.
RTC: 44730 Change-Id: Ifaeecc659e1bfd8ded4744dc591fc993471519ba Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1471 Tested-by: Jenkins Server Reviewed-by: Mark W. Wenning <wenning@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/include/kernel/misc.H')
-rw-r--r--src/include/kernel/misc.H29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/include/kernel/misc.H b/src/include/kernel/misc.H
index ebec9cc48..c970c337e 100644
--- a/src/include/kernel/misc.H
+++ b/src/include/kernel/misc.H
@@ -30,6 +30,8 @@
#include <stdint.h>
#include <usr/vmmconst.h>
+#include <kernel/deferred.H>
+#include <kernel/task.H>
namespace KernelMisc
{
@@ -59,5 +61,32 @@ namespace KernelMisc
}
return true;
}
+
+ /** @class WinkleCore
+ *
+ * @brief DeferredWork class for implementing cpu_master_winkle.
+ */
+ class WinkleCore : public ::DeferredWork
+ {
+ public:
+ /** ctor
+ *
+ * @param i_caller - Task calling cpu_master_winkle to be
+ * restored after winkle is complete.
+ */
+ WinkleCore(task_t* i_caller) :
+ iv_caller(i_caller), iv_timebase(0) {};
+
+ void masterPreWork();
+ void activeMainWork();
+ void masterPostWork();
+ void nonactiveMainWork();
+
+ private:
+ /** Caller of cpu_master_winkle() */
+ task_t* iv_caller;
+ /** Current time-base value for restore after winkle. */
+ uint64_t iv_timebase;
+ };
};
#endif
OpenPOWER on IntegriCloud