diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/kernel/cpumgr.H | 5 | ||||
| -rw-r--r-- | src/include/kernel/misc.H | 5 | ||||
| -rw-r--r-- | src/include/kernel/ppcconsts.S | 1 | ||||
| -rw-r--r-- | src/include/sys/misc.h | 9 |
4 files changed, 18 insertions, 2 deletions
diff --git a/src/include/kernel/cpumgr.H b/src/include/kernel/cpumgr.H index 3be17192c..4374d50a0 100644 --- a/src/include/kernel/cpumgr.H +++ b/src/include/kernel/cpumgr.H @@ -81,6 +81,11 @@ class CpuManager */ static void activateCPU(cpu_t * i_cpu); + /** @fn getCpuCount + * Return the number of active CPUs. + */ + static size_t getCpuCount() { return cv_cpuCount; } + protected: CpuManager(); diff --git a/src/include/kernel/misc.H b/src/include/kernel/misc.H index 4be79d641..f04439748 100644 --- a/src/include/kernel/misc.H +++ b/src/include/kernel/misc.H @@ -35,5 +35,10 @@ namespace KernelMisc * @brief Sequence kernel to shutdown and switch to payload. */ void shutdown(); + + /** @brief Base address (target HRMOR) of the payload. */ + extern uint64_t g_payload_base; + /** @brief Address from base of payload entry-point. */ + extern uint64_t g_payload_entry; }; #endif diff --git a/src/include/kernel/ppcconsts.S b/src/include/kernel/ppcconsts.S index 6aa53a6cd..89a52a008 100644 --- a/src/include/kernel/ppcconsts.S +++ b/src/include/kernel/ppcconsts.S @@ -156,6 +156,7 @@ .set HSPRG1,305 .set HDSISR,306 .set HDEC,310 + .set HRMOR,313 .set HSRR0,314 .set HSRR1,315 .set HMER,336 diff --git a/src/include/sys/misc.h b/src/include/sys/misc.h index d07c5afff..fcf88f08a 100644 --- a/src/include/sys/misc.h +++ b/src/include/sys/misc.h @@ -49,9 +49,14 @@ extern "C" #ifdef __HIDDEN_SYSCALL_SHUTDOWN /** @fn shutdown() * @brief Shutdown all CPUs (hardware threads) - * @param[in] i_status The status code to post + * @param[in] i_status The status code to post + * @param[in] i_payload_base The base address (target HRMOR) of the payload. + * @param[in] i_payload_entry The offset from base address of the payload + * entry-point. */ -extern "C" void shutdown(uint64_t i_status); +extern "C" void shutdown(uint64_t i_status, + uint64_t i_payload_base, + uint64_t i_payload_entry); #endif /** @enum ProcessorCoreType |

