summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/kernel/cpumgr.H11
-rw-r--r--src/include/kernel/syscalls.H4
-rw-r--r--src/include/sys/misc.h18
3 files changed, 30 insertions, 3 deletions
diff --git a/src/include/kernel/cpumgr.H b/src/include/kernel/cpumgr.H
index f8daf5ab3..9d741cd83 100644
--- a/src/include/kernel/cpumgr.H
+++ b/src/include/kernel/cpumgr.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2010,2018 */
+/* Contributors Listed Below - COPYRIGHT 2010,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -186,6 +186,15 @@ class CpuManager
static void startCore(uint64_t pir,uint64_t i_threads);
+ /** @fn wakeupCore
+ * Start the core, can only be run after startCore.
+ *
+ * @param[in] pir - PIR value of first thread in core.
+ * @param[in] i_threads - Bitstring of threads to enable (left-justified).
+ */
+ static void wakeupCore(uint64_t pir,uint64_t i_threads);
+
+
/** @fn forceMemoryPeriodic()
* Force the memory free / coalesce operations to be performed on the
* next "periodic" interval.
diff --git a/src/include/kernel/syscalls.H b/src/include/kernel/syscalls.H
index c606ad771..42e1a551b 100644
--- a/src/include/kernel/syscalls.H
+++ b/src/include/kernel/syscalls.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2010,2018 */
+/* Contributors Listed Below - COPYRIGHT 2010,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -99,6 +99,8 @@ namespace Systemcalls
MISC_CPUNAP,
/** cpu_master_winkle() */
MISC_CPUWINKLE,
+ /** cpu_wakeup_core() */
+ MISC_CPUWAKEUPCORE,
/** mm_alloc_block() */
MM_ALLOC_BLOCK,
diff --git a/src/include/sys/misc.h b/src/include/sys/misc.h
index 4fe0d5e44..183754f56 100644
--- a/src/include/sys/misc.h
+++ b/src/include/sys/misc.h
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2018 */
+/* Contributors Listed Below - COPYRIGHT 2011,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -252,6 +252,22 @@ int cpu_master_winkle(bool i_fusedCores);
*/
int cpu_all_winkle();
+/** @fn cpu_wakeup_core
+ * @brief Have the kernel wakeup a core that was previously started.
+ *
+ * @param[in] pir - PIR value of the first thread on the core.
+ * @param[in] i_threads - Bitstring of threads to enable (left-justified).
+ *
+ * @note The kernel will wakeup all threads on the requested core even
+ * though the callee only requests with a single PIR value.
+ *
+ * @return 0 or -(errno) on failure.
+ *
+ * @retval -ENXIO - The core ID was outside of the range the kernel is
+ * prepared to support.
+ */
+int cpu_wakeup_core(uint64_t pir,uint64_t i_threads);
+
/** @fn cpu_crit_assert
* @brief Forces a Terminate Immediate after a crit-assert is issued
* @param[in] i_failAddr - value in the linkRegister of the address
OpenPOWER on IntegriCloud