// IBM_PROLOG_BEGIN_TAG // This is an automatically generated prolog. // // $Source: src/lib/syscall_misc.C $ // // IBM CONFIDENTIAL // // COPYRIGHT International Business Machines Corp. 2011 // // p1 // // Object Code Only (OCO) source materials // Licensed Internal Code Source Materials // IBM HostBoot Licensed Internal Code // // The source code for this program is not published or other- // wise divested of its trade secrets, irrespective of what has // been deposited with the U.S. Copyright Office. // // Origin: 30 // // IBM_PROLOG_END #define __HIDDEN_SYSCALL_SHUTDOWN #include #include using namespace Systemcalls; void shutdown(uint64_t i_status) { _syscall1(MISC_SHUTDOWN, reinterpret_cast(i_status)); } ProcessorCoreType cpu_core_type() { return static_cast( reinterpret_cast(_syscall0(MISC_CPUCORETYPE))); } uint8_t cpu_dd_level() { return reinterpret_cast(_syscall0(MISC_CPUDDLEVEL)); } size_t cpu_thread_count() { size_t threads = 0; ProcessorCoreType core_type = cpu_core_type(); switch(core_type) { case CORE_POWER7: case CORE_POWER7_PLUS: threads = 4; break; case CORE_POWER8_MURANO: case CORE_POWER8_VENICE: threads = 8; break; default: break; } return threads; }