.. _OPAL_QUERY_CPU_STATUS: OPAL_QUERY_CPU_STATUS ===================== .. code-block:: c #define OPAL_QUERY_CPU_STATUS 42 enum OpalThreadStatus { OPAL_THREAD_INACTIVE = 0x0, OPAL_THREAD_STARTED = 0x1, OPAL_THREAD_UNAVAILABLE = 0x2 /* opal-v3 */ }; int64_t opal_query_cpu_status(uint64_t server_no, uint8_t *thread_status); Sets `thread_status` to be the state of the `server_no` CPU thread. CPU threads can be owned by OPAL or the OS. Ownership changes based on :ref:`OPAL_START_CPU` and :ref:`OPAL_RETURN_CPU`. ``OPAL_THREAD_INACTIVE`` Active in skiboot, not in OS. Skiboot owns the CPU thread. ``OPAL_THREAD_STARTED`` CPU has been started by OS, not owned by OPAL. ``OPAL_THREAD_UNAVAILABLE`` CPU is unavailable. e.g. is guarded out. Returns ------- :ref:`OPAL_PARAMETER` Invalid address for `thread_status`, invalid CPU, or CPU not in OPAL or OS. :ref:`OPAL_SUCCESS` Successfully retreived status.