blob: b33edddc6ceb01f93884c89922e27d821620a665 [file] [log] [blame]
.. _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.