aboutsummaryrefslogtreecommitdiffstats
path: root/roms/skiboot/doc/opal-api/opal-query-cpu-status-42.rst
blob: b33edddc6ceb01f93884c89922e27d821620a665 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
.. _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.