diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2012-07-31 10:26:12 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-08-10 11:38:42 -0500 |
commit | 99f217daf307b3cd963bcbce8eb7b025d58f734e (patch) | |
tree | 87a82faba5be946460ff25f222f0f10a03afdfce /src/include/kernel/misc.H | |
parent | da472c60655393f0bb49113713a8be2bdd2a9b6f (diff) | |
download | talos-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.H | 29 |
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 |