diff options
author | Patrick Williams <iawillia@us.ibm.com> | 2012-05-16 12:51:22 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2012-07-16 19:05:48 -0500 |
commit | 3bba9a3ff18b6991bba4247898f4c26fa944a676 (patch) | |
tree | da3462c53eaf0670670b37f094c17444f1ce5c4c /src/kernel/syscall.C | |
parent | 2aa5e0afac73384aaabe1fe1529898601be1155f (diff) | |
download | talos-hostboot-3bba9a3ff18b6991bba4247898f4c26fa944a676.tar.gz talos-hostboot-3bba9a3ff18b6991bba4247898f4c26fa944a676.zip |
Support for core_activate via IPI.
RTC: 37009
Change-Id: I56669805c86d9659a20ad7c26e5e9860c7a248c7
Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/1087
Tested-by: Jenkins Server
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
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 |