diff options
Diffstat (limited to 'src/kernel/syscall.C')
-rw-r--r-- | src/kernel/syscall.C | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C index b061a4877..26a72cd35 100644 --- a/src/kernel/syscall.C +++ b/src/kernel/syscall.C @@ -96,6 +96,7 @@ namespace Systemcalls void Shutdown(task_t *t); void CpuCoreType(task_t *t); void CpuDDLevel(task_t *t); + void CpuStartCore(task_t *t); void MmAllocBlock(task_t *t); void MmRemovePages(task_t *t); void MmSetPermission(task_t *t); @@ -129,6 +130,7 @@ namespace Systemcalls &Shutdown, // MISC_SHUTDOWN &CpuCoreType, // MISC_CPUCORETYPE &CpuDDLevel, // MISC_CPUDDLEVEL + &CpuStartCore, // MISC_CPUSTARTCORE &MmAllocBlock, // MM_ALLOC_BLOCK &MmRemovePages, // MM_REMOVE_PAGES @@ -631,6 +633,13 @@ namespace Systemcalls TASK_SETRTN(t, CpuID::getCpuDD()); } + /** Prep core for activation. */ + void CpuStartCore(task_t *t) + { + TASK_SETRTN(t, + CpuManager::startCore(static_cast<uint64_t>(TASK_GETARG0(t)))); + }; + /** * Allocate a block of virtual memory within the base segment * @param[in] t: The task used to allocate a block in the base segment |